WindowsでWinRMを有効にするのは、特にPowerShellやコマンドプロンプトに慣れていない場合は、少し戸惑うかもしれません。Windowsがまるで優しくしてくれないような、デフォルト設定でフォートノックスのように厳重にロックされているように感じることがあります。リモート管理を設定しようとしてうまくいかない場合、特にワークグループやドメイン環境では、まさにこのような状況に陥ります。ここでの目標は、WinRMサービスを起動して適切なポートでリッスンし、ファイアウォールがトラフィックをブロックしていないことを確認することです。このプロセスは環境によって多少異なりますが、これらの手順でほとんどのシナリオに対応できます。
Windows で WinRM を有効にして構成する方法
PowerShell またはコマンドプロンプトを使用して WinRM を有効にする
最近のWindowsのほとんどのエディション(Windows 10/11や一部のWindows Serverバージョンなど)では、WinRMはデフォルトで有効になっていません。以下のコマンドで、WinRMがリッスンしているかどうかを確認してください。
WinRM enumerate winrm/config/listener
エラーが発生したり、何も表示されない場合は、それが対処の合図です。Windowsは当然のことながら、必要以上に複雑にしているからです。PowerShellまたはcmdで次のコマンドを実行してください。
winrm quickconfig
この小さなツールは、面倒な作業をすべて実行します。サービスの自動起動設定、HTTP(ポート5985)のリッスン、必要なファイアウォールルールの追加などです。エラーが発生した場合や動作しない場合は、PowerShellを管理者として実行し、以下の手順を試してください。
Enable-PSRemoting –Force
このコマンドは基本的に同じ機能を実行しますが、PowerShellとの親和性が高くなっています。また、TCP 5985と5986のファイアウォールルールがまだ設定されていない場合は、それらも設定します。一部のマシンでは最初は失敗する可能性がありますが、再起動または再実行することで解決できます。少し奇妙に思えるかもしれませんが、Windowsを正常に動作させるには、単に再起動が必要な場合もあります。
WinRM がリッスンし構成されていることを確認する
これらのコマンドを実行したら、WinRMが実際にリッスンしているかどうかを確認する必要があります。次の手順に従ってください。
winrm enumerate winrm/config/listener
すべて問題がなければ、グループポリシーで設定されている場合、「Source=”GPO”」のリスナーセクションが表示されます。HTTPSが有効になっているかどうかを確認するには、完全な設定を取得することもできます(セキュリティ上推奨されますが、設定は複雑です)。
winrm get winrm/config
セキュリティをさらに強化したい場合は、リスナーのIPアドレス、ポート、SSLが有効になっているかどうかを確認してください。なぜそうなるのかは分かりませんが、一部のマシンでは構成がすぐに更新されない場合があり、WinRMサービスをすぐに再起動するか手動で起動すると改善する場合があります。
Restart-Service WinRM
接続をテストして動作を確認する
WinRM セットアップが正しく通信しているか確認したいですか? PowerShell を使用して以下を実行します。
Test-WsMan
製品情報とプロトコルを含む応答が返ってきたら、WinRM は正常に動作しています。そうでない場合は、接続に問題があることが通知されます。ファイアウォールのルールや権限によってブロックされている可能性があります。
ファイアウォールについてですが、WinRM の TCP ポート 5985 と TCP ポート 5986 への受信トラフィックを許可するルールが設定されていることを確認してください。セキュリティが強化された Windows Defender ファイアウォール で既存のルールを確認し、必要に応じてこれらのポートへのトラフィックを許可する新しい受信ルールを作成できます。
よくある失敗とその修正方法
- 「アクセスが拒否されました」というメッセージが表示される場合は、権限を再確認してください。Administrators または Remote Management Users グループに属しており、権限が正しく設定されている必要があります。
Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft. PowerShell必要に応じて権限を確認および変更してください。 - ファイアウォールがポートをブロックしていますか?受信ルールを再確認してください。GPOやローカルポリシーによって手動設定が上書きされる場合もあるため、正しいルールが設定され、有効になっていることを確認してください。
- WinRM サービスが起動しない場合は、手動で起動する
Start-Service WinRMか、グループ ポリシーの競合がないか確認してください。
また、HTTPS でセキュリティを強化したい場合は、証明書と専用リスナーの構成という追加の手順が必要になりますが、最初は基本的なテストには HTTP を使用してください。HTTP は暗号化されておらず、信頼できないネットワークでは脆弱であることに注意してください。
要点はそこだと思います。それでもダメな場合は、アンインストールして再インストールしたり、ローカルセキュリティポリシーを確認したりすることで改善することもあります。場合によっては、少しの忍耐と試行錯誤で解決できることもあります。