【问题标题】: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 以满足您的需求。我喜欢第二种方法,因为它使参数在冗长的代码中更容易阅读。

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

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多