2016-07-20 51 views
1

我想運行powershell腳本來安裝使用msiexec.exe的應用程序。使msiexec等到安裝完成

msiexec.exe的/一個 「C:\用戶\ tempuser \桌面\ AppInstall.msi」/被動等待

所以我想移動的命令的休息之前完成安裝以防止搞亂整個自動化過程。

一旦我運行我的腳本,它會彈出一個窗口安裝程序菜單,顯示所有msiexec選項。我想我在行尾使用了不正確的wait參數。已經花了這麼多谷歌搜索任何解決方案...我會很感激任何幫助。

回答

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以符合您的需求。我喜歡第二種方法,因爲它使冗長的代碼更容易閱讀。

作爲一個流程或工作運行可能對你沒有任何影響,但如果他們這樣做,那麼只需選擇一個最適合你的需求。