我正在使用以下行根据其产品ID卸载Office 2007

Start-Process C:\Windows\System32\msiexec.exe -ArgumentList "/uninstall {90120000-0030-0000-0000-0000000FF1CE}"

我想在卸载完成后强制重新启动,但是使用-Wait或将结果传递到Out-Null不要等到卸载完成后再处理下一行即重新启动。我也尝试使用cmd进行卸载,但结果相同。
cmd /c "msiexec.exe /uninstall {90120000-0030-0000-0000-0000000FF1CE}"

有什么方法可以强制Powershell等待卸载完成,然后再处理Restart-Computer命令?我在想可能要写一些东西来检测setup.exe进程何时停止才能进行重启?

最佳答案

启动过程具有一个等待参数:

Start-Process C:\Windows\System32\msiexec.exe -ArgumentList "/uninstall {90120000-0030-0000-0000-0000000FF1CE}" -wait

卸载misexec.exe后重新启动的解决方案是将/forcerestart参数添加到msiexec调用中,而不是尝试在powershell中重新启动(信贷给Matt):
Start-Process C:\Windows\System32\msiexec.exe -ArgumentList @("/uninstall {90120000-0030-0000-0000-0000000FF1CE}", "/forcerestart")

08-26 23:35