让msiexec等到安装完成

时间:2016-07-20 12:56:02

标签: powershell msiexec

我正在尝试运行powershell脚本来使用msiexec.exe安装应用程序。

  

msiexec.exe / a“C:\ Users \ tempuser \ Desktop \ AppInstall.msi”/被动等待

所以我希望在继续执行其他命令之前完成安装,以防止搞乱整个自动化过程。

运行我的脚本后,会弹出一个显示所有msiexec选项的Windows安装程序菜单。我想我在行尾不正确地使用了wait参数。已经花了很多谷歌搜索任何解决方案...我很感激任何帮助。

1 个答案:

答案 0 :(得分: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以符合您的需求。我喜欢第二种方法,因为它使参数更容易在冗长的代码中阅读。

作为流程或工作运行可能对您没有任何影响,但如果他们这样做,那么只需选择最适合您需求的那个。