WSUS-Bereinigung als geplante Aufgabe ausführen


    Tags: , ,

    BildEin regelmäßiges Entfernen von nicht mehr benötigten oder ersetzten Updates ist wichtig, um WSUS in einem funktions­fähigen Zustand zu halten. Das manuelle Ausführen des Assistenten für die Server­bereinigung kommt im Admin-Alltag aber oft zu kurz. Zuverlässiger funktioniert das Aufräumen, wenn man dafür eine Scheduled Task einrichtet.

    Wenn man die Wartung eines WSUS-Servers vernachlässigt, dann belegen die Update-Dateien irgendwann nicht nur das gesamten Plattenplatz, sondern alle Zugriffe auf die Datenbank, etwa für das Filtern der Updates, werden sehr langsam. Vor allem wird es dann schwierig, den Assistenten für die Serverbereinigung überhaupt noch erfolgreich auszuführen.

    PowerShell-Cmdlet für die Scheduled Task verwenden

    Während man den GUI-basierten Wizard zum Aufräumen von WSUS nicht automatisieren kann, lässt sich das PowerShell-Gegenstück Invoke-WsusServerCleanup ohne weiteres über eine geplante Aufgabe regelmäßig ausführen.

    Das Cmdlet unterstützt fünf Parameter:

    • CleanupObsoleteComputers
    • CleanupObsoleteUpdates
    • CleanupUnneededContentFiles
    • DeclineExpiredUpdates
    • DeclineSupersededUpdates

    Man kann nun überlegen, ob man es gleich mit allen Schaltern starten möchte oder die einzelnen Aufgaben für die Bereinigung auf mehrere Aufrufe verteilen will.

    Task per PowerShell anlegen

    Um die geplante Aufgabe auch unter Server Core einrichten zu können, empfiehlt sich die Verwendung von PowerShell für diese Aufgabe.

    Dazu definiert man im ersten Schritt einen Auslöser für die Task, das ist in unserem Fall das Erreichen einer bestimmten Uhrzeit:

    $trigger = New-ScheduledTaskTrigger -Daily -At 00:00

    Nun erzeugt man die Aktion für die Scheduled Task:

    $action = New-ScheduledTaskAction `
    -Execute C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe `
    -Argument "-Command 'Invoke-WsusServerCleanup -DeclineExpiredUpdates -DeclineSupersededUpdates'"

    Dieser Aufruf beschränkt sich auf das Ablehnen von abgelaufenen und ersetzten Updates.

    Geplante Aufgabe für die WSUS-Bereinigung mit PowerShell erstellen

    Für das Löschen von Dateien oder nicht verwendeten Updates würde man das Cmdlet separat (in einer eigenen Task) mit den entsprechenden Parametern aufrufen. Die Definition der Aktion sieht dann so aus:

    $action = New-ScheduledTaskAction `
    -Execute C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe `
    -Argument "-Command 'Invoke-WsusServerCleanup -CleanupObsoleteUpdates -CleanupUnneededContentFiles'"

    Den Parameter UpdateServer kann man weglassen, weil die Aufgabe ja auf dem lokalen Server läuft.

    Schließlich trägt man die neue Aufgabe in das System ein:

    Register-ScheduledTask -TaskName WSUSCleanup -TaskPath "\WSUS\" `
    -Action $action -Trigger $trigger -user "NT AUTHORITY\SYSTEM"

    Geplante Aufgabe testen

    Nun bietet es sich an, die neue Task manuell zu starten und zu prüfen, ob sie fehlerfrei läuft. Das kann man so erledigen:

    Start-ScheduledTask -TaskPath "\WSUS" -TaskName "WSUSCleanup"

    Anschließend lässt man sich das Ergebnis der geplanten Aufgabe anzeigen:

    Get-ScheduledTaskInfo -TaskName "WSUSCleanup" -TaskPath "\WSUS\"

    Testen der neuen geplanten Aufgabe zur Bereinigung eines WSUS-Servers

    Hier sollte sich unter LastTaskResult der Wert 0 finden, jeder andere verweist auf einen Fehler. Eine Übersicht über diverse Fehlercodes findet sich auf Microsofts Website.

    Zusammenfassung

    Um eine regelmäßige Bereinigung eines WSUS-Servers von nicht mehr benötigten Updates zu gewährleisten, kann man eine geplante Aufgabe mit dem Aufruf von Invoke-WsusServerCleanup einrichten. Dies lässt sich mit PowerShell erledigen und klappt somit auch auf Server Core.

    Eine Scheduled Task funktioniert zuverlässiger als der wiederkehrende manuelle Start der GUI-Assistenten auf der WSUS-Konsole. Auf diese Weise beugt man Problemen mit einem überlasteten WSUS-Server vor.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links