【PowerShell】Windows環境をPowerShellでリモート操作する初期設定方法
こんにちは!インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE)です。
本記事では、Windows環境をPowerShellを使用してリモート操作するための初期設定手順を解説します。接続元と接続先の両方に設定が必要です。
Windows環境をPowerShellでリモート操作する初期設定
接続先の初期設定
手順1 接続先のWindows環境にログインし、PowerShellを管理者として起動します。「PowerShell」を右クリックし、「スタート」→「その他」→「管理者として実行」をクリックします。
手順2 以下のコマンドを実行してリモート操作を受信するよう設定します。
PS > Enable-PSRemoting -SkipNetworkProfileCheck WinRM は要求を受信するように更新されました。 WinRM サービスの種類を正しく変更できました。 WinRM サービスが開始されました。
手順3・4 Administrator以外のユーザーを使用する場合は、「Remote Management Users」グループへの追加が必要です。「スタート」を右クリック →「コンピューターの管理」→「ローカルユーザーとグループ」→「ユーザー」で該当ユーザーを右クリックし、「プロパティ」→「所属するグループ」で「Remote Management Users」を追加します。
接続元の初期設定
手順1 接続元のWindows環境にログインし、同様にPowerShellを管理者として起動します。
手順2 リモート操作を受信するよう設定してから、信頼できる接続先を設定します(以下はALL許可の例)。
PS > Enable-PSRemoting -SkipNetworkProfileCheck WinRM は要求を受信するように更新されました。 WinRM サービスの種類を正しく変更できました。 WinRM サービスが開始されました。 PS > Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
特定の接続先のみを許可したい場合は、カンマ区切りでIPアドレスまたはFQDNを指定します。
# 特定ホストのみ許可 PS > Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.0.10, Windows10.intra.local" # 信頼済み接続先の確認 PS > Get-Item WSMan:\localhost\Client\TrustedHosts # 信頼済み接続先の全削除 PS > Clear-Item WSMan:\localhost\Client\Trustedhosts
実際にPowerShellを使用してリモート操作する
手順1 接続先とユーザー名を指定してリモート接続します。
PS > Enter-PSSession -ComputerName 192.168.0.10 -Credential admin [192.168.0.10]: PS C:\Users\admin\Documents>
手順2 hostname コマンドなどで動作確認します。
[192.168.0.10]: PS C:\Users\admin\Documents> hostname
windows10
手順3 exit コマンドで切断します。
[192.168.0.10]: PS C:\Users\admin\Documents> exit
PS >
よくあるエラーと解決方法
エラー:ネットワーク接続の種類を Domain または Private に変更して、やり直してください。
Set-WSManQuickConfig : このコンピューターのネットワーク接続の種類の 1 つが Public に設定されているため、
WinRM ファイアウォール例外は機能しません。
ネットワーク接続の種類を Domain または Private に変更して、やり直してください。
解決方法:引数に -SkipNetworkProfileCheck を指定してネットワークプロファイルのチェックをスキップします。
PS > Enable-PSRemoting -SkipNetworkProfileCheck WinRM は要求を受信するように更新されました。 WinRM サービスの種類を正しく変更できました。 WinRM サービスが開始されました。
エラー:Enter-PSSession : リモート サーバーへの接続に失敗し、アクセスが拒否されました。
Enter-PSSession : リモート サーバー 192.168.0.10 への接続に失敗し、次のエラー メッセージが返されました:
アクセスが拒否されました。
解決方法:接続先のユーザーを「Remote Management Users」グループに所属させます。Administrators グループへの所属だけでは不十分です。「コンピューターの管理」→「ローカルユーザーとグループ」→「ユーザー」から該当ユーザーのプロパティを開き、「Remote Management Users」を追加してください。
# 成功例
PS > Enter-PSSession -ComputerName 192.168.0.10 -Credential admin
[192.168.0.10]: PS C:\Users\admin\Documents>
まとめ
本記事ではWindows環境をPowerShellでリモート操作するための初期設定として、接続先・接続元それぞれの Enable-PSRemoting 設定、TrustedHosts 設定、Remote Management Users グループへの追加手順と、よくあるエラーの解決方法を解説しました。同様の設定で困っている方はTwitterでご連絡ください。
カユラ(@kayura_SE)

コメント