
Domain Controller sind zwar bekannterweise Rudeltiere, werden allerdings hier und da gerne mal als Einzelgänger gehalten. 🙁 In diesem Fall ist die Chance recht hoch, dass der einzelne Domain Controller bootet und sein Netzwerk als „Unidentified network“ / „Nicht identifiziertes Netzwerk“ bzw. „Öffentlich“ / „Public“ erkennt. Das ist nahezu immer unschön und kontraproduktiv. 🙂
In the wild sind mir mittlerweile auch Umgebungen mit mehreren Domain Controllern und dem gleichen Problem untergekommen, dass nach Reboot eines einzelnen Windows Server 2025 Domain Controller, das Netzwerk als „Unidentified network“ bzw. „Nicht identifiziertes Netzwerk“ erkannt wurde. Nach ein wenig Recherche, habe ich in der Microsoft Tech Community den am 21.03.2025 geupdateten Post gefunden: When is Network Profile Issue for Domain Controllers going to be at least acknowledged? | Microsoft Community Hub
I did hear back from my Microsoft contact on what it exactly is that’s causing it. It’s an LDAP packet that’s trying to get to ::1 (Loopback) over the IPv6 interface, and it’s being dropped, and one thing that breaks 2025 out of the box, is turning off IPv6, or even setting it to prefer IPv4 using the proper registry keys, not turning it off in the IP stack settings in the NIC configuration. Never turn off IPv6 in the NIC configuration settings.
This condition is leading to a timeout with connection to loopback being dropped, and therefore it is causing this behavior of the domain controller taking an extended time to boot as well as have the improper NLA detection for the NIC and firewall profile.
It was first recognized in Windows Server 2019, but fixed in 2022, and it’s surfaced again in 2025. They state pretty much what you line up with in a fix coming very soon, but they have to be certain before it rolls to global distribution channels.
Um dieses Malheur zu korrigieren werden drei Registry Keys und ein kleines PowerShell Script benötigt, welches mit kurzer Verzögerung beim Systemstart des einzelnen Domain Controllers startet. Fangen wir mit den drei Registry Keys („AlwaysExpectDomainController„, „MaxNegativeCacheTtl“ und „NegativeCachePeriod„) an:
New-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters" `
-Name "AlwaysExpectDomainController" `
-PropertyType Dword `
-Value 1 `
-Force
New-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" `
-Name "MaxNegativeCacheTtl" `
-PropertyType Dword `
-Value 0 `
-Force
New-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" `
-Name "NegativeCachePeriod" `
-PropertyType Dword `
-Value 0 `
-Force
Als nächsten wird natürlich das PowerShell Script „ReEnable-Ms_TcpIp6.ps1“ benötigt, dass beim Systemstart mit 30 Sekunden oder einer Minute Verzögerung ausgeführt wird. Das Script geht her und sucht sich die Netzwerkadapter* den Netzwerkadapter raus, die sich derzeit in die Kategorie (NetworkCategory) „Public“ eingeordnet haben. Für die ermittelten Adapter wird dann das Binding „ms_tcpip6“ deaktiviert, zwei Sekunden gewartet und im Anschluss wird das Binding wieder reaktiviert.
Get-NetConnectionProfile |
Where-Object { $_.NetworkCategory -eq "Public" } |
ForEach-Object {
Disable-NetAdapterBinding -Name $_.InterfaceAlias `
-ComponentID ms_tcpip6
Start-Sleep -Seconds 2
Enable-NetAdapterBinding -Name $_.InterfaceAlias `
-ComponentID ms_tcpip6
}
- Get-NetConnectionProfile (NetConnection) | Microsoft Learn
- Disable-NetAdapterBinding (NetAdapter) | Microsoft Learn
- Enable-NetAdapterBinding (NetAdapter) | Microsoft Learn
Zum Schluss muss das Script nur noch in einen Task mit dem Trigger „At Startup“ und 0,5 bis 1 Minute Verzögerung geplant werden. Für die Ausführung des Tasks bietet sich „SYSTEM“ an und folgende Action „Start program“ kann genutzt werden:
Program / script: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Add arguments (optional): -ExecutionPolicy Bypass -NoLogo -NoProfile -File C:\<Pfad zum Script>\ReEnable-Ms_TcpIp6.ps1
Et voila! Aus dem „Unidentified network“ wurde erkanntes Domänen Netzwerk:



*) Ja, korrekt. Das Script sucht theoretisch nach mehreren Netzwerkadaptern. An dieser Stelle ein kleines ABER zum Thema „Multihomed Domain Controller„:

Schreibe einen Kommentar