2016-03-25 8 views
0

私はPowerShellの専門家ではありませんが、私は学んでいます。 MSPとMSUファイルをインストールするためにこのコードを作成しましたが、何もインストールされません。PowershellでWinパッチをインストールすると、スクリプトは実行されますが何もインストールされません。

$p=Start-Process -FilePath wusa.exe -ArgumentList "$($f.FullName) /quiet /norestart" -PassThru -wait 
+0

'Start-Process'は必要ありません。実行したいコマンドを入力し、Enterキーを押してください。 –

+0

昇格したプロンプトからもこれを行う必要があります。 – Eris

+0

質問をクリアし、コードセクションにコードを入れてください – zx485

答えて

-1

のようなもの、起動式を試してみてください。

invoke-expression "& 'wusa.exe' '[path to patch]' '/quiet /norestart'" 

がここで使用するために適切なものWusa.exeによりですか?私はほとんどのパッチが.msi(または.cab?)ファイルとして終わると思うので、Windowsインストーラでこれらのファイルを呼び出すことはできますが、どのプログラムを開くかは明示的には言いませんが、システムのデフォルトがあれば開きますそれは危険だと感じている。

+0

これを行うには 'Invoke-Expression'は必要ありません。 "/ quiet/norestart'にパッチを当てる' wusa 'パスを入力し、 'Enter'を押してください。 PowerShellはシェルです。 cmd.exeと同じように、コマンドを入力してEnterキーを押して実行することができます。 –

+0

コマンドプロンプトでできることはすべて実行できますが、ここではinvoke-expressionを使用したくない理由を説明できますか?私は似たような状況を見てきましたが、なぜそれだけを使うことができなかったのかをよく理解していません。 – nkasco

+0

この例の 'Invoke-Expression'は、コマンドを読みにくくする以外は何も行いません。 –

関連する問題