Run MsiExec from PowerShell and get Return Code Run MsiExec from PowerShell and get Return Code powershell powershell

Run MsiExec from PowerShell and get Return Code


I would wrap that up in Start-Process and use the ExitCode property of the resulting process object. For example

(Start-Process -FilePath "msiexec.exe" -ArgumentList "<<whatever>>" -Wait -Passthru).ExitCode


$LastExitCode

or

$?

depending on what you're after. The former is an integer, the latter just a boolean. Furthermore, $LastExitCode is only populated for native programs being run, while $? generally tells whether the last command run was successful or not – so it will also be set for cmdlets.

PS Home:\> cmd /c "echo foo"; $?,$LASTEXITCODEfooTrue0PS Home:\> cmd /c "ech foo"; $?,$LASTEXITCODE'ech' is not recognized as an internal or external command,operable program or batch file.False1


You can also use the powershell app deployment kit which provides several things.

Then you can use for example

Execute-MSI -Action 'Install' -Path "$dirFiles\your.msi" -AddParameters "INSTALLFOLDER=C:\$appFolder"

info http://psappdeploytoolkit.com/