首页 > 解决方案 > 使用 PowerShell 远程安装时获取 MSI 退出代码

问题描述

我使用以下示例在远程计算机上安装一些软件

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

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

请问有什么想法吗?

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

标签: powershellwindows-installer

解决方案


Start-Process -Passthru命令括在(...).ExitCode

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

-PassThru指示Start-Process输出一个System.Diagnostics.Process表示已启动进程的实例,并且如果-Wait也使用该实例,则.ExitCode可以立即访问其属性。


推荐阅读