Windows Server 2025 を実行しているドメインコントローラー (DC) や一部のメンバーサーバーで、再起動後にネットワークプロファイルがドメインからパブリックに切り替わってしまうという、ちょっとした問題が頭を悩ませることがあります。特に、適切なプロファイルが必須のファイアウォールルールを設定している場合はなおさらです。この問題は全く新しいものではなく、2019 や 2022 などのバージョンでも発生していましたが、Windows Server 2025 では、ネットワークロケーション認識 (NLA) がデフォルトで無効になるなど、いくつかの変更が加えられているようです。基本的に、サーバーは何らかの対策を講じない限り、自分がドメインに属していることを認識せず、ネットワークやセキュリティ設定に悪影響を与える可能性があります。そこで、いくつかの設定で有効な対策と、すべてを適切なプロファイルに保つために留意すべき点をご紹介します。
Windows Server 2025 でネットワーク プロファイルの誤認識を修正する方法
方法1: ネットワークロケーション認識サービスを再起動する
この昔ながらのトリックは、Windowsが再起動後に「実はドメインに参加している」と認識するのに役立ちます。プロファイル切り替えの原因は多くの場合NlaSvcサービス(Network Location Awareness)であるため、このサービスを再起動すると、サーバーはネットワークの種類を再評価するようになります。マシンによってはすぐに機能しますが、他のマシンでは再起動や手動での再起動が必要になる場合があります。
- 管理者権限でPowerShellを開きます。コンソールに直接アクセスできない場合は、RDP経由またはWinRM経由のPowerShellでも問題ありません。
- 走る:
Restart-Service NlaSvc
再起動後、以下のコマンドを実行してGet-NetConnectionProfile、プロファイルがDomainAuthenticatedに変更されているかどうかを確認してください。変更されていない場合は、「ネットワークとインターネット」>「ネットワーク接続」またはコマンドラインから、ネットワークアダプターを無効化してから再度有効化してみてください。
Get-NetAdapterアダプタを一覧表示するには、Disable-NetAdapter -Name "Ethernet"に続くEnable-NetAdapter -Name "Ethernet"
これにより、ネットワークの新規検出が強制的に実行されます。少し奇妙に思えますが、一部の環境ではうまくいきます。ただし、適切なプロファイルにインストールしたら、ファイアウォールルールやセキュリティポリシーが機能しているかどうかを確認してください。ある環境では、サービスをすぐに再起動するだけで動作しましたが、別の環境では再起動または再ログインが必要でした。
方法2: ネットワークロケーション認識設定を有効化または調整する
Windows Server 2025 のデフォルトの動作では NLA が無効になっていますが、ネットワークの種類を自動的に判別するはずのNLAは少々不便です。レジストリ編集やグループポリシーを使って手動で再度有効にすることもできますが、簡単な対策としては、サーバーがドメインコントローラーの役割をより積極的に期待するように指示するレジストリキーを設定する方法があります。
- PowerShell を管理者として開きます。
- 次のコマンドを実行します。
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters" -Name "AlwaysExpectDomainController" -Value 1 -Type DWORD
これにより、NlaSvc はドメインコントローラーを想定するようになり、再起動後にサーバーが正しく自身を分類できるようになります。これは便利ですが、念頭に置いておいてください。その後、ネットワークの動作に異常が見られる場合は、この設定を元に戻すか、ネットワークプロファイルのポリシーを確認することをお勧めします。
方法3: DNSとネットワークアダプタの問題を修正して、間違ったネットワークタイプが割り当てられないようにする
場合によっては、問題はNLAだけでなくDNSにも関係していることがあります。DCが自身をDNSサーバーとして利用している場合、起動時のDNSクエリへの応答が遅い可能性があります。つまり、ドメインへの接続を確認できないため、Windowsはそれをパブリックネットワークと認識してしまうのです。解決策は?セカンダリDNSが他のドメインコントローラーを指していることを確認し、起動後にDNS解決が超高速になるようにしてください。
また、複数のDCを同時に再起動するのは避けてください。DNSレコードとネットワーク認識が安定する時間を確保するために、再起動を分散させてください。Windowsは当然ながら、必要以上に再起動を難しくするからです。
方法4: タスクスケジューラでPowerShellスクリプトを使用してネットワークの再検出を自動化する
やり過ぎのように思えるかもしれませんが、多数のDCを管理している場合は、DNSの起動を待ってからネットワークアダプターを再起動するスケジュールタスクを作成して、修正を自動化しましょう。一度設定してしまえば、かなり信頼性が高くなります。
- このコマンドを実行するスケジュールされたタスク (SYSTEM として実行) を作成します。
powershell.exe -ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -command "do {$status = (Get-Service dns)} until ($status. Status -eq 'Running'); Get-NetAdapter -Physical | Restart-NetAdapter"
このスクリプトは、DNSの準備が整うまで辛抱強く待機し、その後すべての物理ネットワークアダプターを再起動して、Windowsにネットワークの状態を再評価させます。このスクリプトはGPO経由ですべてのドメインコントローラーに展開するか、待ちきれない場合は各ドメインコントローラーで手動で実行してください。必ずしも即座に実行されるわけではありませんが、ほとんどの環境では問題なく機能し、ネットワークプロファイルの一貫性を維持できます。
正直なところ、これらの修正はパッチワークのようなものですが、さまざまな環境で機能するようです。環境によっては、NlaSvc サービスを再起動するだけで問題が解決します。また、レジストリを少し調整するだけで、サーバーが最初からドメインに属しているように認識されるようになる場合もあります。また、DNS やアダプターの状態がずれている場合は、それらを同期させることが真の解決策となることが多いです。重要なのは忍耐です。サーバーが自分の所属先を認識するには、ちょっとした刺激が必要な場合もあります。
まとめ
- ネットワーク プロファイルの再評価を強制するには、NlaSvc サービスを再起動します。
- ‘AlwaysExpectDomainController’ などのレジストリ設定を調整して、ドメイン検出の期待値を厳しくします。
- DNS 設定が正しいこと、および複数の再起動が一度に発生しないことを確認します。
- 多数のサーバーを管理する場合は、自動化のために PowerShell スクリプトとタスク スケジューラを使用します。
まとめ
全体的に少し面倒ですが、ほとんどの修正はサーバーがドメインの一部であることを再認識させることに集約されます。手動でサービスを再起動する、レジストリキーを調整する、スクリプトで自動化するなど、これらのアプローチはネットワークプロファイルを適切な状態に保つのに役立つようです。この方法が、ネットワークプロファイルの切り替えによる終わりのないピンポン現象を回避するのに役立つことを願っています。完璧ではありませんが、第一歩です。