Health-Status von WSUS überprüfen mit wsusutil.exe und Eventlog

    Fehler und Warnungen im Ereignisprotokoll von WSUSReibungs­los funktio­nierende Windows Server Update Services (WSUS) sind ein wich­tiger Bei­trag zur Sicher­heit von Windows-PCs. Ein eigener Health Monitoring Service prüft die WSUS daher regel­mäßig auf mög­liche Probleme. Diese Health-Checks lassen sich mit wsusutil.exe konfi­gurieren und aus­führen.

    Die WSUS sind ein relativ komplexes System aus mehreren Kompo­nenten und Features. In größeren Umgebungen synchro­nisieren gleich mehrere Server die Updates unter­einander. Eine regel­mäßige Wartung der WSUS ist daher unver­zichtbar. Bis dato muss sich der Admini­strator aber selbst um diese Aufgaben kümmern, eine Automa­tisierung durch eingebaute Routinen ist kaum gegeben.

    Wiederkehrende Wartungsaufgaben

    Zu diesen Tätigkeiten gehört etwa die periodische Reindizierung der Datenbank, das Bereinigen von nicht benötigten Updates oder das Backup. Darüber hinaus empfiehlt es sich, die Ergebnisse des Health-Service regelmäßig zu beobachten. Auf diese Weise können einige Probleme schon im Vorfeld erkannt und abgewendet werden.

    So ist der Verbrauch von Speicherplatz durch Updates ein ständiges Thema. Wenn man ihm nicht genügend Aufmerk­samkeit schenkt, dann kann die Platte des WSUS-Servers schnell volllaufen. Ein weiterer kritischer Punkt ist die Synchro­nisierung mit Microsoft Update oder einem Upstream-Server. Schlägt sie fehl, dann erhalten der WSUS-Server und somit auch die Clients keine Updates mehr.

    Health Monitoring Service prüft alle Komponenten

    Der Health Monitoring Service prüft diese und zahlreiche andere Aspekte von WSUS. Sie betreffen sowohl die Kernfunktionen als auch die Datenbank, die Web-Services und die Clients. Einige der Informationen, die man auf diesem Weg erhält, liefert auch das integrierte Reporting. Das betrifft etwa Probleme mit der Synchronisierung.

    Standard­mäßig sind alle Checks aktiviert bzw. mit plausiblen Vorgabewerten belegt. Die aktuelle Konfiguration lässt sich mit Hilfe von wsusutil.exe anzeigen. Dazu übergibt man dem Kommando­zeilen-Tool den Parameter healthmonitoring zusammen mit einer bestimmten Einstellung, also zum Beispiel

    wsusutil.exe healthmonitoring DiskSpaceInMegabytes

    Dieser Aufruf zeigt an, bei welchen Schwellen­werten ein Fehler bzw. eine Warnung wegen zu wenig Plattenplatz erzeugt würde. Möchte man diesen Wert ändern, dann fügt man die neuen Limits an den obigen Aufruf hinzu:

    wsusutil.exe healthmonitoring DiskSpaceInMegabytes 250 500

    Die Zahlen stehen für die noch verfügbaren MB Speicherplatz, bei der ein Fehler bzw. eine Warnung ausgelöst wird. Änderungen werden nach dem Neustart des WSUS-Dienstes wirksam.

    Die meisten Optionen erlauben aber nur ein on oder off. Eine detaillierte Beschreibung aller unterstützten Parameter findet sich auf Microsoft Docs.

    Alle Einstellungen anzeigen

    Wenn man sich einen Überblick über die gesamte Konfiguration des Health Monitoring verschaffen möchte, dann stößt man auf eine Beschränkung des Tools, welches immer nur ein Argument zulässt. Hier kann man sich mit ein bisschen PowerShell behelfen:

    $param = ("DiskSpaceInMegabytes", "CatalogSyncIntervalInDays", "InstallUpdatesInPercent", "InventoryInPercent", "SilentClientsInPercent", "SilentClientsInDays", "TargetComputersInPercent", "CheckAcls", "CheckForLowDiskSpace", "CheckForCatalogSyncFailures", "CheckForContentSyncFailures", "CheckForEmailNotificationFailures", "CheckSelfUpdate", "CheckClientsExist", "CheckForUpdateInstallFailures", "CheckForInventoryFailures", "CheckForSilentClients", "CheckForTooManyClients", "CheckReportingWebService", "CheckApiRemotingWebService", "CheckServerSyncWebService", "CheckClientWebService", "CheckSimpleAuthWebService", "CheckDssAuthWebService", "CheckContentDirWebAccess")

    $param | %{ $_; wsusutil.exe healthmonitoring $_;"`n"}

    Das Array $param enthält alle verfügbaren Parameter für wsusutil healthmonitoring. Der zweite Befehl ruft das Tool in einer Schleife mit jeweils einem weiteren Wert auf.

    Ausgabe aller Einstellungen für den WSUS Health Monitoring Service

    Health-Check manuell anstoßen

    Auftretende Fehler und Warnungen schreibt der Health Monitoring Service selbständig in das Eventlog. Man kann aber diesen Vorgang für alle Checks auch manuell auslösen, und zwar durch den Aufruf von

    wsusutil checkhealth

    Führt man diesen Befehl aus, dann erhält man keinen Report, sondern nur den Hinweis, dass er die Ergebnisse in das Ereignis­protokoll geschrieben habe.

    wsusutil checkhealth schreibt seine Ausgabe in das Ereignisprotokoll

    Die entsprechenden Einträge kann man dann (remote) über die Ereignis­anzeige unter Windows-Protokolle => Anwendung einsehen.

    Die Meldungen für WSUS finden sich im Log unter Anwendungen

    Logfile auswerten

    Wenn man die von WSUS erzeugten Events regelmäßig prüfen möchte, dann empfiehlt sich das Einrichten einer benutzer­definierten Ansicht. Dafür wählt man unter Protokolle Anwendung und unter Quellen Windows Server Update Services aus.

    Benutzerdefinierte Ansicht in der Ereignisanzeige für WSUS

    Alternativ kann man die Log-Einträge von WSUS auch über PowerShell auslesen:

    Get-EventLog -Source "Windows Server Update Services" `
    -LogName Application -After 04.07.2018 -EntryType Warning,Error |
    select Index, EntryType, Message, TimeGenerated | fl

    Dieses Kommando würde alle Einträge vom Typ Fehler und Warnung ausgeben, die nach dem 4. Juli 2018 erzeugt wurden.

    Keine Kommentare