web-dev-qa-db-ja.com

リモートマシンで利用可能なpowershellスクリプトを実行する方法は?

リモートコンピューターでスクリプトを実行しようとしていました。

やった "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 } "はリモート側で動作し、結果をクライアント側に返しました。クライアント側で実行されている戻り値を見ることで誤解しました。

23
Samselvaprabu

あなたが書くとき:

invoke-command -computer $MachineName -filepath "C:\hello.ps1"

スクリプト C:\hello.ps1は、クライアントコンピューターから取得され、サーバーに送られて実行されます。 Invoke-Commandはクライアントコンピューターでファイルを探しているため、エラーファイルが存在しませんが表示されます。

13
JPBlanc

PowerShellリモート処理のクイックスタート については、こちらをご覧ください。

1
David Brabant

私はまったく同じプローブを持っていて、[WMICLASS] 's create()Start-Processの組み合わせで解決しました。

私の答えを確認してください こちら

0
Ocelot

私は同じエラーを受け取りましたが、リモートセッションをコードの変数にフックし、最終的に機能するものがあります:

$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential

Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1}

無数のInvokeなどのソルトンがありますが、私にとっては最も簡単なものが最終的に機能しました。おかげさまで。

0
JustJohn