SCCM - Wartung des WSUS Vorgehen und Probleme

Die meisten von uns kennen das. Man setzt einmal den WSUS auf, da er Voraussetzung für den Software Update Point ist, trifft seine Einstellungen und dann wird er erst wieder betrachtet, wenn etwas nicht funktioniert.

Viele vergessen hierbei, dass auch der WSUS eine regelmäßige Wartung benötigt. Geschieht dies nicht, kann es schnell problematisch für den Configuration Manager werden. Darunter leidet vor allem die Performance des WSUS bzw. SUP Servers. Diese Leistungseinbußen verursachen Verfügbarkeitsprobleme des WSUS, wodurch wiederum Clients keine Updates mehr beziehen können.

Daher sollte man direkt von Anfang an die WSUS Wartung regelmäßig durchführen.

Hierbei sollte Folgendes beachtet werden:

  • Microsoft empfiehlt, ein WSUS Cleanup und das anschließende Reindexieren einmal monatlich durchlaufen zu lassen. Dies hat den Grund, dass Updates erst gelöscht werden, wenn 30 Tage lang kein Client nach diesen angefragt hat. Dieser Vorgang ist auch mit Windows Boardmitteln automatisierbar.

  • Mit der Automatisierung sollte man zwei Cleanup Phasen warten. Die Begründung hierfür liegt darin, dass der erste Cleanup noch sehr lange dauert und der zweite Durchlauf einen besseren Indikator für die Durchlaufzeit ergibt.

  • Beachten Sie die Reihenfolge der Wartung bei Downstreamservern, da ansonsten durch die Synchronisation die getätigten Änderungen wieder überschrieben werden. Das kann zu Inkonsistenzen zwischen den Daten führen, die im Upstream- und im Downstream Server sind und Synchronisationsfehler nach sich ziehen. D.h. der Upstreamserver sollte der letzte Server des Cleanups sein.

  • Hier sieht man noch einmal die Wichtigkeit der Wartungslänge. Die SUPs sollten nicht während des Wartungsprozesses synchronisieren, da es möglich ist, dass dann Teile der Wartung überschrieben werden und der Prozess noch einmal durchgeführt werden muss. Dementsprechend sollte der SUP Sync Plan für die Zeit auf „manuell“ umgestellt werden.
Wie geht man nun also am besten bei der Wartung vor?

Vorgehensweise bei der Wartung:

  1. Erstellung eines Backup der WSUS Datenbank
  2. Ausführen des WSUS Server Cleanup Wizard
  3. Reindexieren der WSUS Datenbank
  4. Verwerfen abgelöster Updates
Falls eine Wartung noch nie durchgeführt wurde, sollten das Cleanup und das Reindexieren erneut durchgeführt werden. Nachdem das Cleanup durchgelaufen ist, erscheint ein Report über die gelöschten Items.

Cleanup Timeout

Prinzipiell kann die Wartung mehrere Stunden dauern, ohne dass ein Fortschritt erkennbar ist. Wer seinen WSUS allerdings lange nicht mehr gewartet hat, wird vermutlich in ein Cleanup Timeout laufen. Das Timeout äußert sich dann so, dass auch nach einer erheblich langen Wartezeit kein Fortschritt erkennbar ist oder am Ende der Report keine gelöschten Items auflistet.

Um ein Timeout möglichst zu vermeiden, müssen die einzelnen Bereiche beim Cleanup-Assistenten zur Bereinigung auch einzeln ausgewählt werden. D.h. es werden insgesamt fünf Cleanups durchgeführt. Der Bereich „Unneeded update files“ wird hier voraussichtlich am meisten Zeit in Anspruch nehmen.

Doch was kann ich tun, wenn ein Cleanup gar nicht mehr möglich ist, auch wenn bereits jeder einzelne Bereich ausgewählt wurde? Es stehen einem dann meistens nur noch zwei Methoden zur Verfügung.

Entweder man setzt einen WSUS mit frischer Datenbank neu auf.

Oder man erstellt zunächst ein Backup und führt eine Reindexierung durch. Anschließend setzt man einen SQL Befehl ab, welcher ein spezifisches Cleanup durchführt.
DECLARE @var1 INT
DECLARE @msg nvarchar(100)
CREATE TABLE #results (Col1 INT)
INSERT INTO #results(Col1) EXEC spGetObsoleteUpdatesToCleanup
DECLARE WC Cursor
FOR
SELECT Col1 FROM #results
OPEN WC
FETCH NEXT FROM WC
INTO @var1
WHILE (@@FETCH_STATUS > -1)
BEGIN SET @msg = ‘Deleting ‘ + CONVERT(varchar(10), @var1)
RAISERROR(@msg,0,1) WITH NOWAIT EXEC spDeleteUpdate @localUpdateID=@var1
FETCH NEXT FROM WC INTO @var1 END
CLOSE WC
DEALLOCATE WC
DROP TABLE #results

Das Skript kann dem Artikel unter [1] entnommen werden.
Schließlich führt man das Cleanup wieder wie gewohnt aus, bzw. mit der Auswahl der einzelnen Cleanup-Bereiche.

Decline Superseded Updates

Der Bereich Decline superseded updates kann selbst definiert werden. Probleme treten dann auf, wenn ein Update als „declined“ makiert wurde, obwohl dies nicht der Fall sein sollte. Das Update kann dann durch Rechtsklick und „Approve“ wieder in die Verwendung überführt werden mit einem anschließenden Resync. Hier sollte man jedoch wieder die Synchronisationsreihenfolge beachten, um Inkonsistenzen zu vermeiden. Zudem kann es vorkommen, dass das Update nicht mehr in der Liste auftaucht. Dann bleibt nur noch der Weg dieses manuell aus dem Microsoft Update Catalog zu beziehen.

Sollte das Cleanup erfolgreich durchgelaufen sein, muss die SUSDB wieder reindexiert werden. Grund hierfür ist die Performance. Achten Sie hierbei darauf, dass es sich um das richtige Skript handelt. Das Kommando hat sich zwischen den Serverversionen Windows Server 2008 und 2012 geändert. Beim Vorgehen muss zudem unterschieden werden, ob ein SQL Server oder eine Windows Internal Database verwendet wird.

Das Skript zur Reindexierung der WSUS Datenbank befindet sich unter [2].

Das passende Video zum Thema "WSUS in Kombination mit Configuration Manager und Probleme hierbei" finden Sie im Channel 9 unter dem Link [3].

[1]https://blogs.technet.microsoft.com/configurationmgr/2016/01/26/the-complete-guide-to-microsoft-wsus-and-configuration-manager-sup-maintenance/
[2]https://technet.microsoft.com/library/dd939795(WS.10).aspx
[3]https://channel9.msdn.com/Series/Tipps--Tricks-fr-ausgewhlte-SystemCenter-Produkte/WSUS-in-Kombination-mit-Configuration-Manager-und-Probleme-hierbei