PowerShellからmsiexecを実行して、戻りコードを取得します
-
29-09-2019 - |
質問
と BAT/CMD
スクリプトは単に使用できます "msiexec /i <whatever.msi> /quiet /norestart"
そして、チェックします %errorlevel%
結果のために。
と VBScript
, 、を使用します Wscript.Shell
物体 Run()
方法、私は次のような結果を得ることができます:
"result = oShell.Run("msiexec /i ...", 1, True)"
PowerShellでこれを行うにはどうすればよいですか?
解決
Start-Processでそれをまとめて、結果のプロセスオブジェクトのExitCodeプロパティを使用します。例えば
(Start-Process -FilePath "msiexec.exe" -ArgumentList "<<whatever>>" -Wait -Passthru).ExitCode
他のヒント
$LastExitCode
また
$?
あなたが何を求めているのかによって異なります。前者は整数であり、後者はただのブール値です。さらに、 $LastExitCode
ネイティブプログラムが実行されるためにのみ入力されますが、 $?
一般に、最後のコマンドランが成功したかどうかを示します。そのため、CMDLETSにも設定されます。
PS Home:\> cmd /c "echo foo"; $?,$LASTEXITCODE
foo
True
0
PS Home:\> cmd /c "ech foo"; $?,$LASTEXITCODE
'ech' is not recognized as an internal or external command,
operable program or batch file.
False
1
また、いくつかのことを提供するPowerShellアプリ展開キットを使用することもできます。
その後、たとえば使用できます
Execute-MSI -Action 'Install' -Path "$dirFiles\your.msi" -AddParameters "INSTALLFOLDER=C:\$appFolder"
所属していません StackOverflow