PowerShell での WS-Management (WSMan) リモート処理

リモート エンドポイントの作成手順

Windows 用 PowerShell パッケージには、WinRM プラグイン (pwrshplugin.dll) とインストール スクリプト (Install-PowerShellRemoting.ps1) が含 $PSHomeまれています。 これらのファイルにより、そのエンドポイントが指定されている場合、PowerShell が受信の PowerShell リモート接続を受け入れるようになります。

目的

PowerShell をインストールすると、New-PSSessionEnter-PSSession を使用したリモート コンピューターへの PowerShell セッションを確立できます。 PowerShell でリモートからの受信接続を受け入れるようにするには、ユーザーが WinRM リモート エンドポイントを作成する必要があります。 これは、ユーザーが Install-PowerShellRemoting.ps1 を実行し、WinRM エンドポイントを作成することを明示的に選択するシナリオです。 このインストール スクリプトは、Enable-PSRemoting に同じアクションを実行する機能が追加されるまでの短期的なソリューションです。 詳細については、問題 #1193 を参照してください。

[スクリプト操作]

スクリプトは、以下のことを行います

  1. $env:windir\System32\PowerShell 内にプラグイン用のディレクトリを作成します
  2. この場所に pwrshplugin.dll をコピーします
  3. 構成ファイルを生成します
  4. WinRM にそのプラグインを登録します

登録

このスクリプトは、管理者レベルで PowerShell セッション内で実行される必要があり、次の 2 つのモードで実行されます。

登録する PowerShell インスタンスによって実行されます

Install-PowerShellRemoting.ps1

登録するインスタンスの代わりの別の PowerShell インスタンスによって実行されます

<path to powershell>\Install-PowerShellRemoting.ps1 -PowerShellHome "<absolute path to the instance's $PSHOME>"

たとえば次のようになります。

Set-Location -Path 'C:\Program Files\PowerShell\6.0.0\'
.\Install-PowerShellRemoting.ps1 -PowerShellHome "C:\Program Files\PowerShell\6.0.0\"

注意

リモート処理登録スクリプトによって、WinRM が再起動されます。 既存のすべての PSRP セッションは、スクリプトの実行直後に終了します。 リモート セッションの間も実行していると、スクリプトによって接続が終了されます。

新しいエンドポイントに接続する方法

-ConfigurationName "some endpoint name" を指定して、新しい PowerShell エンドポイントに対して PowerShell セッションを作成します。 上記の例から、PowerShell インスタンスに接続するには、次のいずれかを使用します。

New-PSSession ... -ConfigurationName "powershell.6.0.0"
Enter-PSSession ... -ConfigurationName "powershell.6.0.0"

なお、-ConfigurationName が指定されていない New-PSSessionEnter-PSSession の呼び出しは、既定の PowerShell のエンドポイントである microsoft.powershell をターゲットとします。