2012-11-08 17 views
6

में MSIEXEC निकास कोड पुनर्प्राप्त करने के लिए मुझे PowerShell से MSIEXEC कमांड लाइन चलाने की आवश्यकता है और जांचें कि स्थापना सफल थी या नहीं।PowerShell

अगर मैं कार्य करें:

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

(जहां निर्दिष्ट MSI मौजूद नहीं है - कि परीक्षण प्रयोजनों के लिए है)

मैं 1

OTOH एक की $LASTEXITCODE मिलता है, अगर मैं कार्य करें:

[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 

मैं %ERRORLEVEL% 1619 के रूप में (एक ही मिलता है अगर मैं आदेश ली चलाने CMD से)।

कैसे $LASTEXITCODE गलत है?

उत्तर

7

इस प्रयास करें:

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