Vor einiger Zeit bin ich bei einem Kunden auf ein seltsames Phänomen gestoßen.
Jeden Morgen nach dem nächtlichen Restart konnten sich die Benutzer nicht per Citrix auf den Terminalserver verbinden. Die Authentifizierung war erfolgreich, der Citrix Desktop Viewer öffnete sich auch, blieb aber beim Willkommen-Bildschirm stehen, lief irgendwann in einen Timeout und hat sich wieder geschlossen.
Nach etlichen Versuchen klappte es dann irgendwann.
Bei der Analyse des Problems ist aufgefallen, dass das kein Citrix Problem ist, sondern das gleiche Phänomen auch bei einer Verbindung über RDP auftritt.
Während das Problem besteht, sieht man auch im vCenter, dass etwas nicht stimmt. Die VMWare Tools werden als “nicht ausgeführt” angezeigt, obwohl die Maschine läuft:
Nach einigen Minuten beruhigt sich die Situation, das Kind ist dann aber schon in den Brunnen gefallen und am Helpdesk trudeln schon die Beschwerden ein.
Nach längerer Suche bin ich dann mehr oder weniger per Zufall darauf gestoßen, dass die Windows Firewall auf dem Terminalserver zwar deaktiviert war, trotzdem aber sehr viele Regeln beinhaltete. Und zwar so viele Regeln, dass die Konsole diese nicht mehr auflisten konnte….”Not Responding”
Jetzt hatten wir mal einen Anhaltspunkt.
Tatsächlich gibt es ein Windows Update, das genau diesen Bug adressiert. Es handelt sich dabei um die KB4467684 vom 27.11.2018!!!!
Hier ist folgendes zu lesen:
Behebt das Problem, dass aufgrund einer großen Anzahl von Windows-Firewallregeln die Serverleistung reduziert wird oder der Server nicht mehr reagiert. Um die Änderungen zu aktivieren, fügen Sie den neuen Registrierungsschlüssel „DeleteUserAppContainersOnLogoff“ (DWORD) in „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy“ mithilfe von Regedit hinzu, und legen Sie ihn auf den Wert „1“ fest.
Dieses Update war natürlich auf dem System bereits installiert, war es doch schon über 2 Jahre alt.
Wird aber der Regkey nicht manuell gesetzt, ist der Bug auch nicht behoben. Es muss also folgender Regkey auf dem System erstellt werden:
Pfad: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy
DeleteUserAppContainerOnLogoff (DWORD) = 1
Damit wird jetzt zwar verhindert, dass weitere Regeln bei jeder Anmeldung hinzukommen, bereinigt wird dadurch aber auch nichts.
Mit folgendem Befehl aus einer administrativen Shell kann man aber die Windows Firewall zurücksetzen:
netsh advfirewall reset
Etwas vorsichtig müsst ihr damit aber sein. War die Firewall deaktiviert, wird sie durch diesen Befehl wieder aktiviert!
Hattet ihr eigene Regeln konfiguriert, werden diese gelöscht!
Die Firewall wird also komplett zurückgesetzt und alle Regeln werden gelöscht.
Im Citrix Umfeld sieht man dieses Problem selten, da im Normalfall Provisionierungslösungen wie MCS oder PVS zum Einsatz kommen.