Getting MSI exit code when installing remotely using PowerShell

Darren Rose 496 Reputation points
2021-01-12T17:14:14.31+00:00

Hi

I use the following example to install some software on a remote computer

I would like to get the exit code back from the MSI so I can determine if successful or if not what the error was

I assume $result would contain the information I need but I am obviously missing something

Ideas please?

$Result = Invoke-Command -computername MYREMOTEPC -ScriptBlock { Start-Process "msiexec" -ArgumentList "/i C:\tmp\MYSOFTWARE.msi /quiet /norestart" -Wait -Passthru }
Windows for business Windows Server User experience PowerShell
0 comments No comments
{count} votes

Accepted answer
  1. Darren Rose 496 Reputation points
    2021-01-12T19:24:41.183+00:00

    Solved with the aid of a reply on another forum - thanks mklement0

    Just wrap the Start-Process in brackets and add .ExitCode and it works fine e.g.

     $Result = Invoke-Command -computername MYREMOTEPC -ScriptBlock {(Start-Process "msiexec" -ArgumentList "/i C:\tmp\MYSOFTWARE.msi /quiet /norestart" -Wait -Passthru).ExitCode}
    

    More info:

    -PassThru instructs Start-Process to output a System.Diagnostics.Process instance representing the launched process, and given that -Wait is also used, its .ExitCode property can be accessed right away

    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.