3 powershell windows-installer
我编写了一个小 PowerShell 脚本,它调用不同的 MSI 文件来安装软件。有时我从 Windows Installer 中收到以下错误:
正在安装另一个程序。请等待安装完成,然后再次尝试安装该软件。
在调用 MSI 文件之前如何防止此错误?我尝试将其与 TrustedInstaller 进程关联起来。我认为当电脑正在安装阻止我安装的东西时,该进程就会出现。但不幸的是,有时我的安装工作正常,尽管进程正在运行。有没有可以用 PS 捕获的明确指示?
您想查看_MSIExecute Mutex是否已设置。
仅检查正在运行的 msiexec.exe 不会告诉您,因为 a) msiexec 可能正在处理不会阻止您的 UI 序列,或者 b) msiexec 可能已完成安装并等待 10 分钟才能停止其服务。
try
{
$Mutex = [System.Threading.Mutex]::OpenExisting("Global\_MSIExecute");
$Mutex.Dispose();
Write-Host "An installer is currently running."
}
catch
{
Write-Host "An installer is not currently runnning."
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6627 次 |
| 最近记录: |