使用 PowerShell 远程安装时获取 MSI 退出代码

Getting MSI exit code when installing remotely using PowerShell

我使用下面的例子在远程计算机上安装一些软件

我想从 MSI 取回退出代码,以便确定是否成功或失败是什么错误

我假设 $result 会包含我需要的信息,但我显然遗漏了一些东西

有什么想法吗?

$Result = Invoke-Command -computername MYREMOTEPC -ScriptBlock { Start-Process "msiexec" -ArgumentList "/i C:\tmp\MYSOFTWARE.msi /quiet /norestart" -Wait -Passthru }

(...).ExitCode中包含Start-Process -Passthru命令:

$Result = Invoke-Command -computername MYREMOTEPC -ScriptBlock { 
 (
   Start-Process "msiexec" -ArgumentList "/i C:\tmp\MYSOFTWARE.msi /quiet /norestart" -Wait -PassThru
 ).ExitCode
}

-PassThru 指示 Start-Process to output a System.Diagnostics.Process 代表启动进程的实例,并且鉴于 -Wait 也被使用,它的 .ExitCode 属性 可以立即访问.