Heute habe ich zum ersten Mal WSUS (Windows Server Update Services) unter Windows Server 2016 installiert. Ich betreibe WSUS seit mehreren Windows-Generationen und habe damit eigentlich gute Erfahrungen gemacht, doch unter Windows Server 2016 wollte es von Anfang an nicht so richtig funktionieren. Die Installation ist genauso einfach wie früher auch: WSUS Rolle installieren, Post Installation Wizard ausführen, Initial Syncronization laufen lassen und Updates approven.
Nun sollten die WSUS-Clients verbinden und Updates installieren können. Dachte ich, doch es trat bei jedem Sync folgender Fehler auf:
Im Prinzip ist das ein genersicher Timeout. Die Clients waren in der WSUS Console sichtbar, aber hatten alle den Status "Not reported yet". Also prinzipiell konnten sie zum WSUS Service verbinden, aber dann sind sie in ein Timeout gelaufen.
Wie üblich begann ich das Problem einzugrenzen, was ja seit Windows 10 / Windows Server 2016 ganz schön schwierig geworden ist, da man nicht mehr live die Logfiles des Windows Update Clients mitlesen kann (ETL sei dank). Powershell und Get-WindowsUpdateLogs sind nun zu verwenden. Wie komfortabel, wenn man das alle 2 Minuten neu ausführen muss wenn man die aktuellen Log-Einträge lesen will. Das Zeug das die in Redmond gesoffen haben, als sie sich das ausgedacht haben, würde ich gerne mal probieren... ;-)
Dank Google und diversen Foren kam ich nach Stunden des Stöberns und Tüftelns auf die Lösung des Problems:
In der IIS Console muss am WSUS Application Pool (Advanced Settings) folgendes geändert werden:
- General\Queue Length: 2500
- CPU\Limit interval (minutes): 15
- Rapid-Fail Protection\"Service Unavailable" Response: TcpLevel
- Recycling\Private Memory Limit (KB): 0
Danach konnten die Clients die Updates herunterladen und installieren.