【问题标题】:Make msiexec wait until the installation completes让 msiexec 等到安装完成
【发布时间】:2016-11-23 17:32:43
【问题描述】:
我正在尝试运行 powershell 脚本以使用 msiexec.exe 安装应用程序。
msiexec.exe /a "C:\Users\tempuser\Desktop\AppInstall.msi" /被动等待
所以我希望在继续执行其余命令之前完成安装,以防止弄乱整个自动化过程。
一旦我运行我的脚本,它会弹出一个显示所有 msiexec 选项的 Windows 安装程序菜单。我想我在行尾错误地使用了等待参数。已经花了很多时间在谷歌上搜索任何解决方案......如果有任何帮助,我将不胜感激。
【问题讨论】:
标签:
powershell
windows-installer
【解决方案1】:
你可以使用
$myJob = Start-Job {[your msiexec call]}
Wait-Job $myJob
或者
$params = @{
"FilePath" = "$Env:SystemRoot\system32\msiexec.exe"
"ArgumentList" = @(
"/x"
"$($productCodeGUID)"
"/qn"
"REMOVE=ALL"
"/norestart"
)
"Verb" = "runas"
"PassThru" = $true
}
$uninstaller = start-process @params
$uninstaller.WaitForExit()
调整params 以满足您的需求。我喜欢第二种方法,因为它使参数在冗长的代码中更容易阅读。
作为一个流程或工作运行可能对您没有任何影响,但如果他们这样做,那么只需选择最适合您需求的一个。