[PowerShell V2] リモーティングを有効化する設定方法
最近 Windows PowerShell V2 のリモーティングを検証している人が周囲でも増えてきたようで、リモーティングを有効化する方法を聞かれることがありますので、メモしておきます。
操作自体は、コマンドレット一発です。管理者権限で立ち上げた Windows PowerShell から、以下のコマンドレットを動かします。
PS C:\> Set-WSManQuickConfig
動かすと、設定の内容が表示されます。このコマンドレットは、リモーティングの有効化に必要な複数の設定を一度に行うためのものです。
WinRM Quick Configuration
Running the Set-WSManQuickConfig command has significant security implications, as it enables remote management through the WinRM service on this computer.
This command:
1. Checks whether the WinRM service is running. If the WinRM service is not running, the service is started.
2. Sets the WinRM service startup type to automatic.
3. Creates a listener to accept requests on any IP address. By default, the transport is HTTP.
4. Enables a firewall exception for WS-Management traffic.
Do you want to enable remote management through the WinRM service on this computer?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"):
説明にある通り、4つの設定が行われます。
- WinRM サービスが開始されているか確認。停止している場合は開始
- WinRM サービスのスタートアップの種類を、自動に設定
- リクエストを受け付けるためのリスナーを作成
- WS-Management 通信について、ファイアウォールの例外を作成
Y を入力すると、リモーティングが有効化され、以下のように表示されます。(システムの設定によりメッセージが異なる場合があります。)
WinRM は既にこのコンピューター上で要求を受信するように設定されています。
WinRM はリモート管理用に更新されました。
このコンピューター上のあらゆる IP への WS-Man 要求を受け付けるため、HTTP://* 上に WinRM リスナーを作成しました。
ところで、HTTP 経由でリモーティングを受け付けるわけですが、http.sys で受け付けるため、IIS が追加されていなくても大丈夫です。netsh コマンドで確認すると、
C:\> netsh http show urlacl
(中略)
予約済み URL : https://+:5986/wsman/
(中略)
予約済み URL : http://+:5985/wsman/
(中略)
というように、特定の URL で HTTP/HTTPS リスナーが作成され、待ち受け状態になっていることがわかります。なお、WS-Man のデフォルトポートは、Windows 7 RC, Windows Server 2008 R2 RC から、5985(http)/5986(https) に変更になっています。