Windows PowerShellリモート処理
WS-Managementプロトコルを使用するWindows PowerShellリモート処理を使用すると、1つ以上のリモートコンピューターで任意のWindows PowerShellコマンドを実行できます。永続的な接続を確立し、1:1の対話型セッションを開始し、複数のコンピューターでスクリプトを実行できます。Windows PowerShellリモート処理を使用するには、リモートコンピューターをリモート管理用に構成する必要があります。Windows PowerShellリモート処理を構成すると、多くのリモート処理戦略を利用できます。このドキュメントの残りの部分では、それらのほんの一部をリストしています。
対話型セッションを開始する
単一のリモートコンピューターとの対話型セッションを開始するには、Enter-PSSessionコマンドレットを使用します。たとえば、Server01リモートコンピューターとの対話型セッションを開始するには、次のように入力します。
Enter-PSSession Server01
コマンドプロンプトが変わり、接続しているコンピューターの名前が表示されます。それ以降、プロンプトで入力したコマンドはリモートコンピューターで実行され、結果がローカルコンピューターに表示されます。
インタラクティブセッションを終了するには、次のように入力します。
Exit-PSSession
リモートコマンドを実行する
1つまたは複数のリモートコンピューターでコマンドを実行するには、Invoke-Commandコマンドレットを使用します。たとえば、Server01およびServer02リモートコンピューターでGet-UICultureコマンドを実行するには、次のように入力します。
invoke-command -computername Server01, Server02 {get-UICulture}
出力がコンピューターに返されます。
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) server01.corp.fabrikam.com
1033 en-US English (United States) server02.corp.fabrikam.com
スクリプトを実行する
1つ以上のリモートコンピューターでスクリプトを実行するには、Invoke-CommandコマンドレットのFilePathパラメーターを使用します。スクリプトは、ローカルコンピューター上にあるか、ローカルコンピューターからアクセスできる必要があります。結果はローカルコンピューターに返されます。
たとえば、次のコマンドは、Server01およびServer02リモートコンピューターでDiskCollect.ps1スクリプトを実行します。
invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1
永続的な接続を確立する
データを共有する一連の関連コマンドを実行するには、リモートコンピューターでセッションを作成し、Invoke-Commandコマンドレットを使用して、作成したセッションでコマンドを実行します。リモートセッションを作成するには、New-PSSessionコマンドレットを使用します。
たとえば、次のコマンドは、Server01コンピューターでリモートセッションを作成し、Server02コンピューターで別のリモートセッションを作成します。セッションオブジェクトを$ s変数に保存します。
$s = new-pssession -computername Server01, Server02
セッションが確立されたので、セッションで任意のコマンドを実行できます。また、セッションは永続的であるため、1つのコマンドでデータを収集し、それを後続のコマンドで使用できます。
たとえば、次のコマンドは、$ s変数のセッションでGet-Hotfixコマンドを実行し、結果を$ h変数に保存します。$ h変数は、$ sの各セッションで作成されますが、ローカルセッションには存在しません。
invoke-command -session $s {$h = get-hotfix}
これで、次のような後続のコマンドで$ h変数のデータを使用できます。結果はローカルコンピューターに表示されます。
invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"} }