在PowerShell中检索MSIEXEC退出代码

时间:2012-11-08 10:38:04

标签: powershell msiexec

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

如果我这样做:

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

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

我得到$LASTEXITCODE 1

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 

如果我从%ERRORLEVEL%运行命令行,我会得到1619(与CMD相同。)

$LASTEXITCODE怎么不对?

1 个答案:

答案 0 :(得分:11)

试试这个:

(Start-Process -FilePath msiexec.exe -ArgumentList $parms -Wait -Passthru).ExitCode