我需要从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
怎么不对?
答案 0 :(得分:11)
试试这个:
(Start-Process -FilePath msiexec.exe -ArgumentList $parms -Wait -Passthru).ExitCode