eightban's memo

残しておきたい記事をまとめてみました。

windows

WinRM(Windows リモート管理 ) ~ windows

投稿日:

WinRM(Windows リモート管理、Windows Remote Management )は別なコンピュータをリモート操作することを可能にする仕組みです。

WS-Management プロトコルを実装し、Windows OS以外(例えばUnix)などにも接続ができます。

リモート操作するだけでなく、別なコンピュータからシェルを実行できるなど使用するととても便利な機能です。

WinRMを使用するための準備

  • ホストの設定(リモートされる側)
  • クライアントの設定(リモートする側)

リモートされる側(Windowsサーバ[ホスト]) WinRMを有効

PowerShellを管理者として実行

Enable-PSRemoting

※Windows2012R2の場合はデフォルトで有効になっていますので設定する必要はありません。

ネットワークがプライベートでない場合は

Enable-PSRemoting -SkipNetworkProfileCheck

強制的に起動する場合は

Enable-PSRemoting -Force

 

リモートする側(WindowsPC[クライアント]) WinRMを有効

PowerShellを管理者として実行

Enable-PSRemoting

うまく動かない場合は

winrm quickconfig

下記コマンドが自動で流れる場合があります。

Enable-PSRemoting -Force

すると次のメッセージがでます。

 

localhostへのリモート

試しに自分のPCに接続(loacalhost)する場合は

Enter-PSSession -ComputerName localhost

接続すると[localhost]となり、リモートできていることが分かります。

そこでdirコマンドを入れます。

[localhost]: PS D:\Users\Adminstrator\Documents>dir

リモートから抜けるときは

[localhost]: PS D:\Users\Adminstrator\Documents>Exit-PSSession

TrustedHostsの確認と設定

TrustedHostsはホスト側で行うのではなく、クライアント側で行います。そこが不思議なのですが、自分のつなげたいコンピュータのIPを指定します。

TrustedHostsの確認

Get-Item WSMan:\localhost\Client\TrustedHosts

設定されていないことが分かります。

TrustedHostsの設定

すべて対象にするには

Set-Item WSMan:\localhost\Client\TrustedHosts -Value *

 

個別に対応するには

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 接続先のIPアドレス1
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "接続先のIPアドレス1,接続先のIPアドレス2"

解除するには

Clear-Item WSMan:\localhost\Client\Trustedhosts

とりあえず、すべて対象にしておけばよいと思います。

別なコンピュータへのリモート接続

TrustedHostsが設定されているので、リモート接続するにはIPとユーザIDを入れます。

Enter-PSSession 接続先のIPアドレス -Credential 接続先ユーザID
(例)Enter-PSSession 192.168.100.1 -Credential Administrator

つながると次のようになります。

[192.168.100.1]: PS D:\Users\Adminstrator\Documents>

抜けるときは「Exit-PSSession」または「exit」

コマンドをリモートで投げる

別なPCにあるプログラム実行したい場合は、WinRSコマンドを使用します。

winrs -r:接続先のIPアドレス -u:接続先ユーザID -p:接続先パスワード コマンド
(例)winrs -r:192.168.100.1 -u:Administrator -p:xxxxx d:\bat\test.bat

WiinRMを無効にする(使用を止めるとき)

Trustedhostsの解除

Clear-Item WSMan:\localhost\Client\Trustedhosts

WinRMを無効にする

Disable-PSRemoting

何かあいまいな表現です。

QuickConfigでは次のメッセージがでます。

行わなくても良いのですが、気になる人は次のものも実行しておくと良いと思います。

WinRMリスナーポートの確認

Get-Item WSMan:\localhost\Listener\*\Port

WinRM  ポートTCP 5985

WinRMを使用するにはファイアウォールで「ポート5985」が開いていることが必要です。

WinRMを行わない場合、不要ですので無効にしてください。

リスナーの削除

不要の場合はリスナーを削除してください。

リスナーの削除

Remove-WSManInstance winrm/config/listener -SelectorSet @{Address="*";Transport="HTTP"}

リスナーの追加(参考)

New-WSManInstance winrm/config/listener -SelectorSet @{Address="*";Transport="HTTP"}

自分(ローカル・ループバック・アドレス)のリスナーの追加(参考)

New-WSManInstance winrm/config/listener -SelectorSet @{Address="IP:127.0.0.1";Transport="HTTP"}

自分(NIC[LANカード])のリスナーの追加(参考)

New-WSManInstance winrm/config/listener -SelectorSet @{Address="IP:xxx.xxx.xxx.xxx";Transport="

リスナーの確認

get-WSManInstance winrm/config/listener -SelectorSet @{Address="*";Transport="http"}

レジストリLocalAccountTokenFilterPolicy の値を変更

「HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy」のレジストリを「1」から「0」に変更

PowerShellで変更

確認

get-ItemProperty -Name LocalAccountTokenFilterPolicy -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

変更

set-ItemProperty -Name LocalAccountTokenFilterPolicy -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System  -value 0

新規(参考)

new-ItemProperty -Name LocalAccountTokenFilterPolicy -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -propertyType DWord -value 0

-windows

Copyright© eightban's memo , 2018 All Rights Reserved Powered by STINGER.