Powershell リモートコンピュータでコマンドライン引数を使用してリモートexeを実行する 質問する

Powershell リモートコンピュータでコマンドライン引数を使用してリモートexeを実行する 質問する

あちこち検索して、さまざまなコマンドのバリエーションを試してみましたが、まだ解決していません。

私の目標は、リモート マシンに既に存在する exe を実行し、コマンド ライン引数を渡すことです。invoke-command を試しましたが、構文で引数を認識できないようです。

試した方法:

  1. Win32_Process.Create()
  2. 呼び出しコマンド
  3. プロセスの開始
  4. [診断プロセス]::開始
  5. WmiMethod を呼び出す

私のテストでは、次のコマンドで最も近い結果が得られます。

$command = "program.exe -r param"
Invoke-Command -ComputerName $server -ScriptBlock {$command}

コマンドはエラーや戻りコードなしで完了しましたが、リモート マシンでは引数付きで実行されませんでした。一重引用符/二重引用符を試して変化があるかどうかを確認しましたが、変化はありませんでした。

ベストアンサー1

次のパラメータを使用してみましたか-ArgumentList:

invoke-command -ComputerName studio -ScriptBlock { param ( $myarg ) ping.exe $myarg } -ArgumentList localhost   

http://technet.microsoft.com/ja-jp/library/dd347578.aspx より

パス内に存在せず、フォルダー パスにスペースがあるプログラムを呼び出す例:

invoke-command -ComputerName Computer1 -ScriptBlock { param ($myarg) & 'C:\Program Files\program.exe' -something $myarg } -ArgumentList "myArgValue"

引数の値が静的な場合は、次のようにスクリプト ブロックで値を指定できます。

invoke-command -ComputerName Computer1 -ScriptBlock { & 'C:\Program Files\program.exe' -something "myArgValue" } 

おすすめ記事