NetLogonGuard im Einsatz: Entra AutoLogon Race Condition fixen
Wenn du Kiosk, Shared Device oder Signage mit Entra Konto betreibst, kennst du das Problem: Windows versucht den AutoLogon, bevor Netzwerk und Internet wirklich bereit sind. Ergebnis ist oft ein gescheiterter Cloud Login und du landest am Lock Screen.
Das Projekt NetLogonGuard setzt genau dort an.
Was das Tool löst
NetLogonGuard adressiert eine klassische Start Race Condition:
- System bootet
- Logon startet sehr früh
- DHCP oder WLAN ist noch nicht fertig
- Entra Tokenvalidierung scheitert
Damit bricht der unbeaufsichtigte AutoLogon Ablauf, obwohl die Konfiguration eigentlich korrekt ist.
Wie NetLogonGuard technisch arbeitet
NetLogonGuard ist ein Windows Credential Provider Filter in C++. Der Filter hängt sich in den Logon Ablauf und blockiert die Rückgabe im Logon Szenario, bis entweder Internet erkannt wurde oder ein Timeout erreicht ist.
Kernpunkte:
- Trigger nur für Logon Szenario
- Netzcheck über INetworkListManager
- Polling Intervall alle 500 ms
- Fail Safe über Timeout
- Default Timeout laut Projekt 120 Sekunden
Das Entscheidende ist: Es wird auf echte Internet Verfügbarkeit gewartet, nicht nur auf Link Up.
Erwartetes Verhalten auf dem Gerät
Wichtig für Techniker und Service Desk:
- Während der Wartephase kann der Logon Screen leer wirken
- Das ist erwartetes Verhalten, nicht automatisch ein Freeze
- Sobald Netzwerk steht, geht der Ablauf weiter
- Wenn Timeout erreicht wird, wird freigegeben und normaler Login ist wieder möglich
Deployment Ablauf in der Praxis
Ein minimaler Deployment Pfad sieht so aus:
- DLL bauen oder aus vertrauenswürdiger Build Pipeline beziehen
- Nach System32 kopieren
- Mit regsvr32 registrieren
- Optional Timeout in Registry setzen
- Reboot durchführen
Beispiel Befehle als Admin:
copy /Y "x64\Release\NetLogonGuard.dll" "%SystemRoot%\System32\NetLogonGuard.dll"
regsvr32 "%SystemRoot%\System32\NetLogonGuard.dll"Optional Timeout setzen:
New-Item -Path "HKLM:\SOFTWARE\NetLogonGuard" -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\NetLogonGuard" -Name "TimeoutSeconds" -Value 60 -PropertyType DWord -ForceIntune Empfehlung
Wenn du das über Intune verteilst, dann in kontrollierten Wellen:
- Pilotgruppe mit wenigen Testgeräten
- Monitoring auf Bootdauer und Login Erfolgsquote
- Helpdesk informieren, dass ein leerer Screen während der Wartezeit by design sein kann
- Erst danach breite Zuweisung
Risiken und Guardrails
NetLogonGuard greift tief in den Login Pfad ein. Deshalb sauber absichern:
- Nur signierte und geprüfte Binaries verwenden
- Rollback Plan vorbereiten mit unregister und Datei entfernen
- Timeout nicht zu hoch setzen
- Dokumentation für Betrieb und Incident Response pflegen
Rollback Beispiel:
regsvr32 /u "%SystemRoot%\System32\NetLogonGuard.dll"
del "%SystemRoot%\System32\NetLogonGuard.dll"Fazit
Für Entra basierte Kiosk und Shared Device Szenarien kann NetLogonGuard ein sehr wirksamer Fix sein, wenn AutoLogon am frühen Netzwerkstatus scheitert. Das Projekt ist klein, fokussiert und technisch klar aufgebaut.