#PowerShell script to wait while any MSI process is running

while($true)
{
 try
 {
   $mutex = [System.Threading.Mutex]::OpenExisting('Global\_MSIExecute')
   $mutex = $null
   Sleep 10
   'MSI running...' | Out-Default
 }
 catch [System.Threading.WaitHandleCannotBeOpenedException]
 {
   # Mutex not found; MSI isn't running
   break
 }
}
Advertisements