WinRM(Windows リモート管理 ) ~ windows
WinRM(Windows リモート管理、Windows Remote Management )は別なコンピュータをリモート操作することを可能にする仕組みです。
WS-Management プロトコルを実装し、Windows OS以外(例えばUnix)などにも接続ができます。
リモート操作するだけでなく、別なコンピュータからシェルを実行できるなど使用するととても便利な機能です。
WinRMを使用するための準備
- ホストの設定(リモートされる側)
- クライアントの設定(リモートする側)
リモートされる側(Windowsサーバ[ホスト]) WinRMを有効
PowerShellを管理者として実行
※Windows2012R2の場合はデフォルトで有効になっていますので設定する必要はありません。
ネットワークがプライベートでない場合は
強制的に起動する場合は
リモートする側(WindowsPC[クライアント]) WinRMを有効
PowerShellを管理者として実行
うまく動かない場合は
下記コマンドが自動で流れる場合があります。
すると次のメッセージがでます。
WinRM は要求を受信するように更新されました。 WinRM サービスの種類を正しく変更できました。 WinRM サービスが開始されました。 WinRM はリモート管理用に更新されました。 WinRM ファイアウォールの例外を有効にしました。 ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成しました。
localhostへのリモート
試しに自分のPCに接続(loacalhost)する場合は
接続すると[localhost]となり、リモートできていることが分かります。
そこでdirコマンドを入れます。
[localhost]: PS D:\Users\Adminstrator\Documents>dir -a---- 2016/12/03 0:33 312 Log1.log -a---- 2016/11/16 22:07 408 Log2.log
リモートから抜けるときは
TrustedHostsの確認と設定
TrustedHostsはホスト側で行うのではなく、クライアント側で行います。そこが不思議なのですが、自分のつなげたいコンピュータのIPを指定します。
TrustedHostsの確認
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client Type Name SourceOfValue Value ---- ---- ------------- ----- System.String TrustedHosts
設定されていないことが分かります。
TrustedHostsの設定
すべて対象にするには
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client Type Name SourceOfValue Value ---- ---- ------------- ----- System.String TrustedHosts *
個別に対応するには
解除するには
とりあえず、すべて対象にしておけばよいと思います。
別なコンピュータへのリモート接続
TrustedHostsが設定されているので、リモート接続するにはIPとユーザIDを入れます。
つながると次のようになります。
抜けるときは「Exit-PSSession」または「exit」
コマンドをリモートで投げる
別なPCにあるプログラム実行したい場合は、WinRSコマンドを使用します。
WiinRMを無効にする(使用を止めるとき)
Trustedhostsの解除
WinRMを無効にする
警告: セッション構成を無効にしても、Enable-PSRemoting または Enable-PSSessionConfiguration コマンドレットによる変更がすべて元に戻るわけではありません。次の手順に従って、手動で変更を元に戻す必要がある可能性があります。 1. WinRM サービスを停止または無効にします。 2. IP アドレスを使用して要求を受け付けるリスナーを削除します。 3. WS-Management 通信用のファイアウォール例外を無効にします。 4. LocalAccountTokenFilterPolicy の値を 0 に戻します。これにより、リモート アクセスがこのコンピューターのAdministrators グループのメンバーに制限されます。
何かあいまいな表現です。
QuickConfigでは次のメッセージがでます。
Windows リモート管理 (WinRM) サービスを使用して、このコンピューターのリモート管理を有効にするコマンド "Set-WSManQuickConfig" を実行します。 これには、次の処理が含まれます: 1. WinRM サービスを開始または (既に開始されている場合は) 再起動します。 2. WinRM サービスのスタートアップの種類を [自動] に設定します。 3. どの IP アドレスでも要求を受け付けるリスナーを作成します。 4. WS-Management トラフィック用の Windows ファイアウォールの受信規則の例外を有効にします (HTTP のみ)。
行わなくても良いのですが、気になる人は次のものも実行しておくと良いと思います。
WinRMリスナーポートの確認
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Listener\Listener_1084132640 Type Name SourceOfValue Value ---- ---- ------------- ----- System.String Port 5985
WinRM ポートTCP 5985
WinRMを使用するにはファイアウォールで「ポート5985」が開いていることが必要です。
WinRMを行わない場合、不要ですので無効にしてください。
リスナーの削除
不要の場合はリスナーを削除してください。
リスナーの削除
リスナーの追加(参考)
自分(ローカル・ループバック・アドレス)のリスナーの追加(参考)
自分(NIC[LANカード])のリスナーの追加(参考)
リスナーの確認
レジストリLocalAccountTokenFilterPolicy の値を変更
「HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy」のレジストリを「1」から「0」に変更
PowerShellで変更
確認
変更
新規(参考)
ディスカッション
コメント一覧
まだ、コメントがありません