【PowerShell】Windows環境をPowerShellでリモート操作する初期設定方法
こんにちは!
インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。
今回は、Windows環境をPowerShellを使用してリモート操作する初期設定について紹介したいと思います。
- 【PowerShell】Windows環境をPowerShellでリモート操作する初期設定方法
- Windows環境をPowerShellでリモート操作する初期設定方法
- 実際にPowerShellを使用してリモート操作します
- よくあるエラーを紹介します。(私も困ったトラブル事例です。)
Windows環境をPowerShellでリモート操作する初期設定方法
従来は「コマンドプロンプト」が主流だったWindows環境ですが、最近は「PowerShell」での操作が推奨になってきております。
この機会に「PowerShell」の操作を身に着けて見ましょう。
リモート操作を行うためには、接続元と接続先にそれぞれ初期設定が必要になります。
接続先の初期設定
手順1
接続先のWindows環境にログインし、「PowerShell」を管理者として起動しましょう。
※「PowerShell」を右クリックし、「スタート」-「その他」-「管理者として実行」をクリックします。
手順2
コマンドを実行して、以下の設定を行います。
リモート操作を受信するように変更します。
PS >Enable-PSRemoting -SkipNetworkProfileCheck
WinRM は要求を受信するように更新されました。
WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
注意点Administrator以外のユーザーを使用する場合は、ユーザーを「Remote Management Users」グループへの追加が必要です。
手順3
「スタート」を右クリックし、「コンピューターの管理」-「ローカルユーザーとグループ」-「ユーザー」で該当ユーザーを右クリックします。
手順4
「プロパティ」を選択し、「所属するグループ」にて「Remote Management Users」を追加します。
接続元の初期設定
手順1
接続元のWindows環境にログインし、「PowerShell」を管理者として起動しましょう。
※「PowerShell」を右クリックし、「スタート」-「その他」-「管理者として実行」をクリックします。
手順2
コマンドを実行して、以下の設定を行います。
リモート操作を受信するように変更します。
PS >Enable-PSRemoting -SkipNetworkProfileCheck
WinRM は要求を受信するように更新されました。
WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
信頼できるリモート操作の接続先を設定します。(ALL許可にしています。)
PS >Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*"
WinRM セキュリティの構成。
このコマンドは WinRM クライアントの TrustedHosts の一覧を変更します。TrustedHosts
の一覧内にあるコンピューターは認証されない可能性があります。クライアントはこれらのコンピューターに資格情報を送信する可
能性があります。この一覧を変更しますか?
[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 に変更して、やり直してください。
実際に表示されたエラー
PS >Enable-PSRemoting
WinRM は要求を受信するように更新されました。
WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
Set-WSManQuickConfig : <f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150859113" M
achine="localhost"><f:Message><f:ProviderFault provider="Config provider" path="%systemroot%\system32\WsmSvc.dll"><f:WS
ManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150859113" Machine="Windows10"><f:Messag
e>このコンピューターのネットワーク接続の種類の 1 つが Public に設定されているため、WinRM ファイアウォール例外は機能しま
せん。 ネットワーク接続の種類を Domain または Private に変更して、やり直してください。 </f:Message></f:WSManFault></f:P
roviderFault></f:Message></f:WSManFault>
発生場所 行:116 文字:17
+ Set-WSManQuickConfig -force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Set-WSManQuickConfig]、InvalidOperationException
+ FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManQuickConfigCommand
解決方法引数に「-SkipNetworkProfileCheck」を指定し、ネットワークプロファイルのチェックをスキップします。
成功例:
PS >Enable-PSRemoting -SkipNetworkProfileCheck
WinRM は要求を受信するように更新されました。
WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
Enter-PSSession : リモート サーバー 192.168.0.10 への接続に失敗し、次のエラー メッセージが返されました: アクセスが拒否されました。
実際に表示されたエラー
PS >Enter-PSSession -ComputerName 192.168.0.10 -Credential admin
Enter-PSSession : リモート サーバー 192.168.0.10 への接続に失敗し、次のエラー メッセージが返されました: アクセスが拒否
されました。詳細については、about_Remote_Troubleshooting のヘルプ トピックを参照してください。
発生場所 行:1 文字:1
+ Enter-PSSession -ComputerName 192.168.0.10 -Credential admin
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (192.168.0.10:String) [Enter-PSSession]、PSRemotingTransportException
+ FullyQualifiedErrorId : CreateRemoteRunspaceFailed
解決方法接続先のユーザーを「Remote Management Users」グループに所属させます。
(Administratorsだけでは不十分なんです)。
成功例:
PS >Enter-PSSession -ComputerName 192.168.0.10 -Credential admin
[192.168.0.10]: PS C:\Users\admin\Documents>
Windows環境をPowerShellでリモート操作する初期設定方法の手順は以上となります。
次回はPowerShellの活用方法について説明したいと思います。
現在悩んでいる方はTwitterでご連絡ください。
私も辛い日々を経験したのであなたの助けになりたいです。
カユラ(@kayura_SE )