Tags: WSUS, System-Management, PowerShell
Ein regelmäßiges Entfernen von nicht mehr benötigten oder ersetzten Updates ist wichtig, um WSUS in einem funktionsfähigen Zustand zu halten. Das manuelle Ausführen des Assistenten für die Serverbereinigung 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.
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\"
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
Verwandte Beiträge
- Import von Updates nach WSUS erfolgt nun mit PowerShell
- ScriptRunner Portal Edition R5: Konfiguration von Abfragen, OpenID-Support, Web-API statt IIS
- Fehler in geplanten Aufgaben finden mit PowerShell
- Programme (remote) mit PowerShell deinstallieren
- PowerShell 7 über Windows Update oder WSUS aktualisieren
Weitere Links