リモートコンピューターでスクリプトを実行しようとしていました。
やった "Enable-PSremoting
"リモートマシンで。
スクリプトを配置しましたhello.ps1
リモートマシン。
[私のクライアントマシンはWindows XPで、リモートコンピューターはWindows 2003です]
次に、クライアントコンピューターからスクリプトを実行しようとしました。
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
次のエラーが表示されました。
Invoke-Command:パス 'C:\ hello.ps1'が存在しないため、見つかりません。
クライアントマシンからスクリプトを見つけようとしていると思います。
実行しようとした場合
invoke-command -computer $MachineName -command { C:\hello.ps1 }
、クライアント側のリモートマシンで利用可能なスクリプトを実行します。
しかし、リモートマシン自体でリモートスクリプトを実行したいと思います。
リモートマシンで利用可能なスクリプトを実行するにはどうすればよいですか?
更新しました:
実際、このコマンド「invoke-command -computer $MachineName -command { C:\hello.ps1 }
"はリモート側で動作し、結果をクライアント側に返しました。クライアント側で実行されている戻り値を見ることで誤解しました。
あなたが書くとき:
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
スクリプト C:\hello.ps1
は、クライアントコンピューターから取得され、サーバーに送られて実行されます。 Invoke-Commandはクライアントコンピューターでファイルを探しているため、エラーファイルが存在しませんが表示されます。
PowerShellリモート処理のクイックスタート については、こちらをご覧ください。
私はまったく同じプローブを持っていて、[WMICLASS] 's create()
とStart-Process
の組み合わせで解決しました。
私の答えを確認してください こちら 。
私は同じエラーを受け取りましたが、リモートセッションをコードの変数にフックし、最終的に機能するものがあります:
$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential
Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1}
無数のInvokeなどのソルトンがありますが、私にとっては最も簡単なものが最終的に機能しました。おかげさまで。