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

4 Kommentare

  • 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert