よくばりすなシステムエンジニアのブログ

サーバー・ネットワークエンジニア向けに発信しますっ!

【PowerShell】Windows環境をPowerShellでリモート操作する初期設定方法

【PowerShell】Windows環境をPowerShellでリモート操作する初期設定方法

こんにちは!

インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。

今回は、Windows環境を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 )