Best Practices für Windows Server Update Services

Dieser Artikel enthält Tipps zum Vermeiden von Konfigurationen, bei denen aufgrund von Entwurfs- oder Konfigurationseinschränkungen in WSUS eine schlechte Leistung auftritt.

Originalversion des Produkts: Configuration Manager (Current Branch), Windows Server Update Services
Ursprüngliche KB-Nummer: 4490414

Kapazitätsgrenzen

Obwohl WSUS 100.000 Clients pro Server unterstützen kann (150.000 Clients, wenn Sie Configuration Manager verwenden), wird davon abgeraten, diesen Grenzwert zu erreichen.

Erwägen Sie stattdessen eine Konfiguration von 2 bis 4 Servern, die dieselbe SQL Server Datenbank verwenden. Auf diese Weise haben Sie Sicherheit in Zahlen. Wenn ein Server ausfällt, verdirbt das nicht sofort Ihr Wochenende, da kein Client aktualisiert werden kann, während Sie mit dem neuesten Zero-Day-Exploit aktualisiert sein müssen.

Das Szenario der freigegebenen Datenbank verhindert auch einen Scansturm.

Ein Scansturm kann auftreten, wenn viele Clients WSUS-Server ändern und die Server keine Datenbank gemeinsam nutzen. WSUS verfolgt Aktivitäten in der Datenbank nach, sodass beide wissen, was sich seit der letzten Überprüfung eines Clients geändert hat, und nur Metadaten senden, die seitdem aktualisiert werden.

Wenn Clients zu einem anderen WSUS-Server wechseln, der eine andere Datenbank verwendet, müssen sie einen vollständigen Scan durchführen. Ein vollständiger Scan kann große Übertragungen von Metadaten verursachen. Übertragungen von mehr als 1 GB pro Client können in diesen Szenarien auftreten, insbesondere, wenn der WSUS-Server nicht ordnungsgemäß gewartet wird. Das kann genügend Last erzeugen, um Fehler zu verursachen, wenn Clients mit einer WSUS-Instanz kommunizieren. Und Clients versuchen es in diesem Fall wiederholt.

Das Freigeben einer Datenbank bedeutet, dass beim Wechsel eines Clients zu einer anderen WSUS-Instanz, die dieselbe Datenbank verwendet, der Scan nicht erforderlich ist. Die Laststeigerungen sind nicht die große Strafe, die Sie für das Wechseln von Datenbanken zahlen.

Configuration Manager-Clientscans stellen mehr Anforderungen an WSUS als die eigenständigen automatischen Updates. Configuration Manager enthält eine Prüfung der Compliance und fordert daher Scans mit Kriterien an, die alle Updates in gleich welchem Status auswerfen, außer denen, die abgelehnt wurden.

Wenn der Agent für automatische Updates seinen Scan durchführt oder Sie in der Systemsteuerung Updates suchen auswählen, sendet der Agent Kriterien, damit nur die Updates abgerufen werden, deren Installation genehmigt ist. Die ausgeworfenen Metadaten sind in der Regel geringer, als wenn der Scan durch Configuration Manager eingeleitet wird. Der Update-Agent speichert die Daten im Cache zwischen, und die nächsten Scananforderungen werfen die Daten aus dem Clientcache aus.

Deaktivieren des Recyclings und Konfigurieren von Speichergrenzwerten

WSUS stellt einen internen Cache bereit, der die Metadaten für Updates aus der Datenbank abruft. Dieser Vorgang ist teuer und sehr arbeitsspeicherintensiv. Dies kann dazu führen, dass der IIS-Anwendungspool, der WSUS hostet (WSUSPool), wiederverwendet wird, wenn WSUSPool die standardmäßigen privaten und virtuellen Speichergrenzwerte überschreitet.

Wenn der Pool wiederverwendet wird, wird der Cache entfernt und muss neu erstellt werden. Das ist kein großes Problem, wenn Clients Delta-Scans durchführen. Wenn Sie jedoch in einem Scansturmszenario landen, wird der Pool ständig wiederverwendet. Und Clients erhalten Fehler, wenn Sie Scans anforders, wie etwa diesen: HTTP 503

Wir empfehlen, dass Sie die standardmäßige Warteschlangenlänge erhöhen und den Grenzwert für virtuellen und privaten Arbeitsspeicher deaktivieren, indem Sie diese auf 0 festlegen. IIS führt alle 29 Stunden ein automatisches Recycling des Anwendungspools, Ping- und Leerlauftimeouts durch, die alle deaktiviert werden sollten. Diese Einstellungen finden Sie in den IIS-Manager->Anwendungspools.> Wählen Sie WsusPool und klicken Sie dann im rechten Bereich des IIS-Managers auf den Link Erweiterte Einstellungen.

Hier ist eine Zusammenfassung der empfohlenen Änderungen und ein zugehöriger Screenshot. Weitere Informationen finden Sie unter Planen von Softwareupdates im Configuration Manager.

Name der Einstellung Value
Warteschlangenlänge 2000 (aufwärts ab dem Standardwert von 1000)
Leerlauftimeout (Minuten) 0 (abwärts ab dem Standardwert von 20)
Ping aktiviert Falsch (von standardmäßig Wahr)
Grenzwert für privaten Speicher (KB) 0 (unbegrenzt, aufwärts ab dem Standardwert von 1.843.200 KB)
Regelmäßiges Zeitintervall (Minuten) 0 (zur Verhinderung eines Recyclings, und geändert vom Standardwert 1740)

Screenshot der Einstellungen im Fenster „Erweiterter Einstellungen“.

In einer Umgebung mit etwa 17.000 zwischengespeicherten Updates werden möglicherweise mehr als 24 GB Speicher benötigt, da der Cache so lange eingerichtet wird, bis er sich stabilisiert (bei etwa 14 GB).

Überprüfen, ob die Komprimierung aktiviert ist (wenn Sie Bandbreite sparen möchten)

WSUS verwendet einen Komprimierungstyp namens Xpress-Codierung. Er implementiert die Komprimierung von Updatemetadaten und kann zu erheblichen Bandbreiteneinsparungen führen.

Die Xpress-Codierung ist in IIS ApplicationHost.config mit dieser Zeile unter dem Element <httpCompression> und einer Registrierungseinstellung aktiviert:

  • ApplicationHost.Config

    <scheme name="xpress" doStaticCompression="false" doDynamicCompression="true" dll="C:\Program Files\Update Services\WebServices\suscomp.dll" staticCompressionLevel="10" dynamicCompressionLevel="0" />

  • Registrierungsschlüssel

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\IIsDynamicCompression

Wenn beides nicht vorhanden ist, kann es durch Ausführen dieses Befehls und anschließendes Neustarten des WsusPool-Anwendungspools im IIS aktiviert werden.

cscript "%programfiles%\update services\setup\DynamicCompression.vbs" /enable "%programfiles%\Update Services\WebServices\suscomp.dll"

Die Xpress-Codierung führt zu einem gewissen CPU-Overhead und kann deaktiviert werden, wenn die Bandbreite kein Problem darstellt, die CPU-Auslastung aber schon. Der folgende Befehl schaltet sie aus.

cscript "%programfiles%\update services\setup\DynamicCompression.vbs" /disable

Konfigurieren von Produkten und Kategorien

Wenn Sie WSUS konfigurieren, wählen Sie nur die Produkte und Kategorien aus, die Sie bereitstellen möchten. Sie können Kategorien und Produkte, die Sie später benötigen, jederzeit synchronisieren. Das Hinzufügen von Produkten, deren Bereitstellung nicht geplant ist, erhöht die Größe der Metadaten und den Overhead auf den WSUS-Servern.

Deaktivieren Sie Itanium-Updates und andere unnötige Updates

Dies sollte nicht mehr lange ein Hindernis sein, da Windows Server 2008 R2 die letzte Version war, die Itanium unterstützte. Aber es ist erwähnenswert.

Passen Sie dieses Skript an und verwenden Sie es in Ihrer Umgebung, um Updates für die Itanium-Architektur zurückzuweisen. Das Skript kann auch Updates ablehnen, die Preview oder Beta im Updatetitel enthalten.

Es führt dazu, dass die WSUS-Konsole schneller reagiert, hat aber keine Auswirkungen auf den Client-Scan.

Ablehnen überholter Updates und Ausführen der Wartungsarbeiten

Eine der wichtigsten Maßnahmen, die Sie ergreifen können, damit WSUS besser läuft. Die Hauptursache für WSUS-Leistungsprobleme ist die Tatsache, dass überholte Updates länger als nötig aufbewahrt werden (z. B. nachdem Sie sie nicht mehr bereitstellen). Es ist in Ordnung, sie zu behalten, wenn Sie sie noch bereitstellen. Entfernen Sie sie, wenn Sie sie nicht mehr benötigen.

Informationen zum Ablehnen von überholten Updates und anderen WSUS-Wartungselementen finden Sie in dem Artikel Die vollständige Anleitung zur WSUS- und Configuration-Manager-SUP-Wartung.

WSUS mit SSL-Setup

Standardmäßig ist WSUS nicht für die Verwendung von SSL für die Clientkommunikation konfiguriert. Der erste Schritt nach der Installation sollte die Konfiguration von SSL auf WSUS sein, um die Sicherheit der Kommunikation zwischen Server und Client zu gewährleisten.

Sie müssen eine der folgenden Aktionen durchführen:

  • Erstellen Sie ein selbstsigniertes Zertifikat. Dies ist nicht ideal, da jeder Client diesem Zertifikat vertrauen muss.
  • Beziehen Sie eines von einem Drittanbieter von Zertifikaten.
  • Beziehen Sie eines von Ihrer internen Zertifikatsinfrastruktur.

Ihr Zertifikat muss den kurzen Servernamen, den FQDN und die SAN-Namen (Aliasnamen) enthalten, unter denen es läuft.

Nachdem Sie das Zertifikat installiert haben, aktualisieren Sie die Gruppenrichtlinie (oder die Clientkonfigurationseinstellungen für Softwareupdates im Configuration-Manager), um die Adresse und den SSL-Port des WSUS-Servers zu verwenden. Der Port ist in der Regel 8531 oder 443.

Konfigurieren Sie zum Beispiel das Gruppenrichtlinienobjekt Internen Pfad für den Microsoft Updatedienst angeben auf <https://wsus.contoso.com:8531>.

Weitere Informationen finden Sie unter Schützen von WSUS mit dem Secure Sockets Layer-Protokoll.

Konfigurieren von Antivirusausschlüssen

Informationen zu kumulativen Updates und monatlichen Rollups

Möglicherweise werden die Begriffe Monatliche Rollups und Kumulatives Update für Windows-Betriebssystemupdates verwendet. Sie können synonym verwendet werden. Rollups beziehen sich auf die für Windows 7, Windows 8.1, Windows Server 2008 R2 und Windows Server 2012 R2 veröffentlichten Updates, die nur teilweise kumulativ sind.

Weitere Informationen finden Sie in den folgenden Blogbeiträgen:

Bei Windows 10 und Windows Server 2016 waren die Updates von Anfang an kumulativ:

Kumulativ bedeutet: Sie installieren die endgültige Produktversion des Betriebssystems und müssen nur das neueste kumulative Update anwenden, um vollständig gepatcht zu werden. Für die älteren Betriebssysteme gibt es solche Updates noch nicht, obwohl dies die Richtung ist, in die wir steuern.

Für Windows 7 und Windows 8.1 bedeutet dies, dass nach der Installation des neuesten monatlichen Rollups noch weitere Updates erforderlich sind. Hier ist ein Beispiel für Windows 7 und Windows Server 2008 R2, das zeigt, was nötig ist, um ein fast vollständig gepatchtes System zu haben.

Die folgende Tabelle enthält die Liste der monatlichen Rollups und kumulativen Updates für Windows. Sie können sie auch finden, indem Sie nach Windows <Version> Updateverlauf suchen.

Windows-Version Update
Windows 7 SP1 und Windows Server 2008 R2 SP1 Updateverlauf für Windows 7 SP1 und Windows Server 2008 R2 SP1
Windows 8.1 and Windows Server 2012 R2 Updateverlauf für Windows 8.1 und Windows Server 2012 R2
Windows 10 und Windows Server 2016 Updateverlauf für Windows 10 und Windows Server
Windows Server 2019 Updateverlauf für Windows 10 und Windows Server 2019

Ein weiterer zu berücksichtigenden Punkt ist, dass nicht alle Updates veröffentlicht werden, sodass sie automatisch mit WSUS synchronisiert werden. Die kumulativen Updates der C- und D-Woche sind beispielsweise Vorschauupdates. Sie werden nicht mit WSUS synchronisiert und müssen stattdessen manuell importiert werden. Weitere Informationen finden Sie im Abschnitt Monatliche Qualitätsupdates des Windows 10-Update-Wartungszeitplan.

Verwenden von PowerShell zur Verbindung mit einem WSUS-Server

Hier ist nur ein Codebeispiel, das Ihnen den Einstieg in PowerShell und die WSUS-API erleichtern soll. Sie kann dort ausgeführt werden, wo die WSUS-Verwaltungskonsole installiert ist.

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$WSUSServer = 'WSUS'
# This is your WSUS Server Name
$Port = 8530
# This is 8531 when SSL is enabled
$UseSSL = $False
#This is $True when SSL is enabled
Try
{
    $Wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($WSUSServer,$UseSSL,$Port)
}
Catch
{
    Write-Warning "$($WSUSServer)<$($Port)>: $($_)"
    Break
}

References