2012-11-08 15 views
6

Tôi cần chạy dòng lệnh MSIEXEC từ PowerShell và kiểm tra xem cài đặt có thành công hay không.Truy xuất mã thoát MSIEXEC trong PowerShell

Nếu tôi làm:

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

(nơi MSI định không tồn tại - đó là cho mục đích thử nghiệm)

tôi nhận được một $LASTEXITCODE của 1

OTOH, nếu tôi làm:

[email protected]("/qn", "/l*v", "e:/tmp/surfaceruntime.log";"/i";"\\nas\lui\tools\surfaceruntime2.msi") 

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

Tôi nhận 1619 (giống như %ERRORLEVEL% nếu tôi chạy lệnh li ne từ CMD).

Làm cách nào để $LASTEXITCODE không chính xác?

Trả lời

7

Hãy thử điều này:

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