Windows: … und ewig schleicht die Netzwerkkategorie
Ein bombiger Titel, ich weiß 😛 Schätzungsweise nahezu jeder Windows-Administrator hat sich schon einmal damit herumschlagen dürfen, das nach einem Neustart, meist nach den aktuellen Windows Updates, als Netzwerkkategorie “Öffentliches Netzwerk” statt “Privates Netzwerk” oder “Domänennetzwerk” angezeigt bzw. angewendet wird.
Im Domänennetzwerk sieht man des Öfteren auch “Privates Netzwerk” statt eben “Domänennetzwerk”. Dieses Verhalten tritt nicht überall auf und die Server-Version oder -Edition spielt ebenfalls keine Rolle. Auf Clients habe ich dieses “Fehlverhalten” nicht allzu oft bislang gesehen.
Im Laufe der Jahre gab es zu diesem Thema bereits mehrere Beiträge in diesem Blog, unter anderem wie man die Netzwerkkategorie via Powershell ändert. An der zugrundeliegenden Problematik hat sich (leider) selbst unter Windows Server 2019 nichts geändert.
In der Regel reicht es aus den Dienst
NLA (Network Location Awareness)“ (Dienstname: "NlaSvc")
neu zu starten. Damit man dies nicht immer manuell tun muss, kann man das Ganze als Aufgabe hinterlegen. Es hat sich bis hierhin gezeigt, das eine Verzögerung bevor die Aufgabe “Beim Start” ausgeführt wird nicht verkehrt ist:
Zudem ist eine kurze Pause zwischen Dienst-Stopp und -Start hilfreich um erfolgreich ans Ziel zu gelangen. Die notwendigen Befehle packt man in ein simples Batch-Skript, das die Aufgabe dann ausführt:
@echo off rem Netzwerklistendienst und NLA beenden net stop netprofm net stop NlaSvc rem Kurze Pause ping 127.0.0.1 -n 10 > nul rem Dienste erneut starten net start netprofm net start NlaSvc
Als neues Phänomen ist unter Windows Server 2019 hinzugekommen, das ein installierter DHCP-Server nach dem Wechsel der Netzwerkkategorie von “Öffentlich” oder “Privat” zu “Domänennetzwerk” dennoch nicht erreichbar ist und folglich keine IP-Adressen verteilen kann. Hier hilft ebenfalls ein Dienst-Neustart. Als Gesamtkunstwerk kann das so aussehen:
@echo off rem DHCP-Server, Netzwerklistendienst und NLA beenden net stop DHCPServer net stop netprofm net stop NlaSvc rem Kurze Pause ping 127.0.0.1 -n 10 > nul rem Dienste erneut starten net start netprofm net start NlaSvc net start DHCPServer
Hinweis: Auf “timeout” wurde bewusst verzichtet und stattdessen der klassische Trick mit “ping” als Pause verwendet, da der erstgenannte Befehl in Aufgaben oder Skripten ohne angemeldeten Benutzer und aktiver Sitzung nicht funktioniert.
Update 03.02.2023
In den Kommentaren (Vielen Dank dafür) zu diesem und dem Beitrag
Windows: Nach Neustart bei Netzwerkkategorie kein Domänennetzwerk mehr
wurde vielfach vorgeschlagen eine Abhängigkeit vom DNS-Dienst zu erstellen. Dies geht in der Eingabeaufforderung wie folgt:
sc config nlasvc depend= NSI/RpcSs/TcpIp/Dhcp/Eventlog/DNS/NTDS

Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Hallo Andy,
ich habe es bei Windows Server 2022 mit einem einfachen PowerShell-Skript in der Aufgabenplanung geloest.
Als Netzwerkprofil wurde immer privat angezeigt
Auf meinem Mainboard X11SPM-F befinden sich 2 Netzwerkadapter, einer ist deaktiviert (Ethernet).
Der deaktivierte Adapter wird 90 Sekunden nach dem Start aktiviert und nach 2 Sekunden wieder deaktiviert:
Enable-Netadapter -Name “Ethernet”
Start-Sleep -Seconds 2
Disable-Netadapter -Name “Ethernet”
Danach wird das Netzwerkprofil Domaene angezeigt (Adapter Ethernet2).
Das hat den Vorteil, dass es zu keiner Netzwerkunterbrechung kommt und somit keinen Fehler in der Ereignisanzeige erzeugt (Anwendungs- und Dienstprotokolle / DNS-Server)
Gruss
Peter
Hallo,
noch eine kurze Anmerkung zur Mail vom 26.08.2022:
Damit das Skript immer fehlerfrei durchlaeuft, sollte es wie folgt ergaenzt werden:
Enable-NetAdapter -Name “Ethernet” -Confirm:$false
Start-Sleep -Seconds 2
Disable-NetAdapter -Name “Ethernet” -Confirm:$false
Gruss
Peter
Einfachere Lösung als das Script:
sc config nlasvc depend= NSI/RpcSs/TcpIp/Dhcp/Eventlog/DNS/NTDS
das geht nur in der cmd.exe, nicht in Powershell, und setzt eine Dependency für den Network Location Awareness Service auf DNS und Domain Services, d.h. er wird erst gestartet, wenn eine Domain vorhanden ist.
Pingback: Windows: Nach Neustart bei Netzwerkkategorie kein Domänennetzwerk mehr – Andy's Blog