2012-11-08 63 views
6

MSIEXECコマンドラインをPowerShellから実行して、インストールが成功したかどうかを確認する必要があります。PowerShellでMSIEXEC終了コードを取得する

私が行う場合:

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

(ここで指定されたMSIが存在しません - それはテストの目的のためです)

私がしなければ、私は、$LASTEXITCODE

1の大藤を取得します:

[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 

私は1619になります(コマンドliを実行すると%ERRORLEVEL%と同じです)。 ne from CMD)。

どうして$LASTEXITCODEが間違っていますか?

答えて

7

これを試してみてください:

(Start-Process -FilePath msiexec.exe -ArgumentList $parms -Wait -Passthru).ExitCode 
関連する問題