* リモート接続のためのサービスとプロトコル WinRMとWS-MAN [#p8a6c0a1]
** リモート接続で使われるサービスとプロトコル [#o6a1ba46]
*** Web Services for Management (WS-MAN) [#x1d959c8]
PowerShellのコミュニケーションプロトコル。HTTP/HTTPS上で動作するのでファイヤウォールの設定を変えずとも動作しやすい。他のシェル環境でのTelnetやSSHに相当する。
*** Windows Remote Management (WinRM) [#h6d68998]
Windows ServerやWindows(7/8/10のようなクライアントOS)に搭載されているサービスで、WS-MANにリモートマネジメント機能を提供する。Windows Serverではデフォルトでオンだが、Windows(クライアント)ではデフォルトでオフ。
** WinRMとWS-MAN [#d082d183]
---------------
| クライアントPC
---------------
↓ WS-MAN(HTTP)
---------------
| リモートPC
| ↓
| WinRM
| ↓
| PowerShell
---------------
- クライアントはWS-MANプロトコルを利用してリモートPCと通信する。
- WS-MANはHTTPをなので、ファイヤウォールの設定変更する必要がないことが多く、扱いやすい。(デフォルトのポートはHTTP5985、HTTPS5986)
- WS-MAN(HTTP)の中身はXML。クライアントPCとリモートPCはそれぞれPowerShellオブジェクトをXMLにシリアライスしつつ、通信する。
- WinRMはPowerShell専用ではない。
- PowerShellリモーティングでは、WinRMがPowerShellを呼び出すように設定して、使う。
- 今後、WS-MANに加えて、SSHでも通信できるようになる予定。
** PowerShellリモーティングはドメインネットワークで行う [#e68c874f]
- PowerShellリモーティングでは、対象のPC群はActive Directoryで管理されていて、同じドメインネットワークに参加している前提になっている。
- ドメイン環境でなくともPowerShellリモーティングは可能だが、設定が複雑になり、セキュリティに問題が起きるかもしれない。詳しくは、help about_remote_troubleshooting を参考にする。