12

我需要MSIEXEC从 PowerShell 运行命令行并检查安装是否成功。

如果我做:

msiexec.exe /qn /l*v e:/tmp/surfaceruntime.log  /i '\\nas\lui\tools\surfaceruntime2.msi'

(指定的 MSI 不存在 - 用于测试目的)

我得到一个$LASTEXITCODE1

OTOH,如果我这样做:

$parms=@("/qn", "/l*v", "e:/tmp/surfaceruntime.log";"/i";"\\nas\lui\tools\surfaceruntime2.msi") 

$run=[System.Diagnostics.Process]::Start("msiexec",$parms) 
$run.WaitForExit() 
$run.ExitCode 

我得到 1619(就像%ERRORLEVEL%我从 运行命令行一样CMD)。

怎么会$LASTEXITCODE不正确?

4

1 回答 1

17

尝试这个:

(Start-Process -FilePath msiexec.exe -ArgumentList $parms -Wait -Passthru).ExitCode
于 2012-11-08T12:18:44.203 回答