前提
Windowsサーバーを管理するときに、毎回リモートデスクトップでログインしてから操作をするのは大変です。
特に複数のサーバーを管理している場合は尚更です。
それを解決するためにWinRM(Windows Remote Management) という、Windowsを遠隔操作をする仕組みを使ってコマンドを実行します。
環境
使用マシン
用途 | マシン |
---|---|
操作する側 | Windows10 |
操作される側 | Windows Server 2012 R2 |
使用技術
- PowerShell
- WinRM
設定方法
操作される側
この手順は、操作される側のサーバーに実際にログインするか、リモートデスクトップでログインして行ってください。
1. 管理者権限でPowerShellを開く
2. WinRMを有効にする
下記コマンドを実行してください。
Enable-PSRemoting
WinRMを使うにあたって必要な設定を一括で行ってくれます。
※ファイアウォールの例外TCP 5985
が有効になります。TCP 5985
はWinRMが使用するポート番号です。
以上で操作される側の設定は完了です。
操作する側
続いて操作する側です。
1. 管理者権限でPowerShellを開く
2. WinRMを有効にする
操作される側とは異なるコマンドを実行します
net start WinRM
3. 操作される側のIPを信頼できるホストとして登録する
TrustedHostsに登録します。
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "操作される側のIP"
以上で操作する側の設定も完了です。
一度設定をすれば次回からは不要です。
使い方
1. PowerShellを開く(管理者権限でなくてOK)
2. セッションを開始する
下記コマンドを実行します。
Enter-PSSession -ComputerName 操作される側のIP -Credential ログイン名
パスワードの入力が求められるので入力してログインします。
これでリモートでコマンドが実行できるようになりました。
3. コマンドを実行する
ここでは試しにipconfig
を実行してみます。
ipconfig
接続先のipアドレスが確認できれば、問題なく実行できています。
4. セッションを終了する
使い終わったら、念のためセッションを切りましょう。
Exit-PSSession
または
exit
参考
-
Microsoft - Windows Remote Management
WinRMに関するMicrosoftドキュメント。日本語版はありませんでした。 -
Microsoft - PowerShell - Enable-PSRemoting
Enable-PSRemoting
で行われる内容の詳細が確認できます。こちらも日本語版はありませんでした。