Microsoft Server Update Services (WSUS)

WSUS - der Nachfolger von SUS
Im Juni 2005 hat Microsoft den Nachfolger WSUS veröffentlich, der SUS ablöst und nun nicht nur Windows, sondern auch Exchange, SQL etc patchen kann und auch ein besseres Reporting erlaubt.

Es ist mitten im Sommer 2005, also Microsoft den lange erwarteten Nachfolger von SUS und anderen Update Strategien endlich als finale Version heraus gebracht hat. Es hat ganz schönlange gedauert, bis nach SUS und SUS SP1 nach über 2 Jahren und vielem Hin und Her endlich WSUS Einzug hält. Ich habe etwas das Gezerre zwischen Entwicklern, Marketing und Rechtabteilung mitbekommen, weil die Entwickler gerne mehr Funktionen eingebaut hätten, aber das Marketing noch Luft für SMS angemahnt hat, während die Anwälte natürlich besorgt waren, dass "eine Updatelösung von Microsoft" wieder den Verfechtern einer Zwangsteilung des Konzerns zugearbeitet hätte. Sicher auch ein Grund für die Verzögerungen. Gleich vorneweg:

Jede Firma sollte WSUS einsetzen, es sei denn sie haben eine bessere Patchverteilung und Inventarisierung, wie z.B.: SMS etc.

Die Unterstützung von Software Update Services (SUS) entfällt ab dem 06. Dezember 2006
(siehe  http://www.microsoft.com/windowsserversystem/updateservices/evaluation/faqs.mspx)

Achtung Download
Wenn Sie WSUS nicht korrekt konfigurieren, werden mehr als die 8 Gigabyte Daten (DE und EN) herunter geladen. Das kostet Internetbandbreite und vielleicht verärgert es nur ihr Anwender.

WSUS kostet nichts, wenn Sie die passenden Windows Clients CALs haben und kann im Gegensatz zu SUS und anderen Ansätzen in der ersten Auslieferung die folgenden Microsoft Produkte zentral aktualisieren:

  • Windows 2000 Workstation, Server
  • Windows XP
  • Windows 2003 (auch 64bit)
  • Exchange 2000 und Exchange 2003
  • Office XP (2002) und 2003
  • SQL-Server

Der Umfang erstreckt sich aber nicht nur über Hotfixe und Security Updates, sondern auch Treiber, Tools, Servicepacks und andere Komponenten sind aktualisierbar. Da das Prinzip modular ist, ist zu erwarten, dass auch weitere Produkte von Microsoft über WSUS zukünftig aktualisiert werden können.

Da WSUS zudem kostenfrei und ziemlich einfach zu installieren ist, wird es sicher in vielen Firmen zum Einsatz kommen.


Wie funktioniert WSUS ?

Schon seit längerem kennen Sie den Dienst "Windows Update" auf ihrem PC, welcher über die Systemsteuerung "Automatische Update" oder vom Administrator über Gruppenrichtlinien gesteuert werden kann.

Die Aufgabe des Windows Update Clients

Der "Windows Update Dienst" auf jedem Endgerät kann schon seit Windows 2000 folgende Aktionen ausführen.

  • Prüfung und Statusmeldung auf Updates
    Der WSUS-Client lädt regelmäßig eine XML-Datei mit der Liste der vom Administrator für seine Gruppe zur Erkennung oder Installation freigegebenen Updates, prüft diese und meldet das Ergebnis an den Server zurück.

  • Auf ausstehende Updates hinweisen
    Der WSUS Client kann den Anwender vor dem Download auf ausstehende Patches hinweisen. Der Administrator kann über eine Gruppenrichtlinie aber auch den automatischen Download ohne vorherige Rückfrage vorschreiben.

  • Die Updates herunterladen
    Der WSUS-Client installiert die Updates nach vorheriger Rückfrage oder auch ohne Rückfrage; je nach Einstellung der Gruppenrichtlinie

  • Bei bedarf "Neustart"
    Der WSUS-Client startet den PC nach der neu gestartet. Diese Funktion kann auch in der Abmelden/Herunterfahren Prozedur erfolgen.

Diese Funktion war sowohl beim Einsatz eines SUS-Servers als  auch direkt beim Zugriff über das Internet auf windowsupdate.microsoft.com gegeben.

Vorteile durch WSUS

Der Einsatz eines eigenen WSUS in ihrem Unternehmen bringt ihnen handfeste Vorteile:

  • Zentraler einmaliger Download
    Der Server lädt Updates einmalig herunter. Ihre Endanwender müssen nicht mehr jeder für sich die Updates herunterladen und installieren.

  • Zentrale Freigabe von Patches
    Sie als Administrator geben Patches für die Erkennung und Installation in ihrem Netzwerk frei. Diese Freigabe können Sie für bestimmte Updates und Computergruppen auch automatisch erfolgen lassen.

  • Reporting
    WSUS generiert auf Wunsch einen Bericht über die Computer und die fehlenden bzw installierten Updates und welche Systeme sich schon lange nicht mehr verbunden haben.

  • Setzen einer Deadline
    Wenn ein Patch auf einem Endgerät nur nach Rückfrage durch den Anwender installiert ist, so können Sie eine Deadline setzen, nach der das Update auf jeden Fall installiert wird.


Steuerung durch den WSUS-Administrator

Dabei kann der Administrator folgendes steuern

  • Zeitpunkt des Download der XML-Dateien
    Der Download der Patchdefinitionen kann manuell oder zu einer bestimmten Zeit am Tag erfolgen.

  • Download der Update von Microsoft per BITS
    Wenn gleich nicht sonderlich bequem, so kann über die Steuerung des BITS-Dienstes die maximale Bandbreite und Zeitbereiche definiert werden, so dass der Patchdownload die Internetanbindung nicht sofort komplett belegt. Wobei ein Patch immer dann in die Downloadwarteschlange aufgenommen wird, wenn der Administrator diesen zur Installation freigibt.

  • Freigabe von Patches je Computergruppe
    Die Gruppen sind keine Gruppen im Active Directory, sondern reine WSUS-Gruppen, in welche die Computer per Hand oder Gruppenrichtlinien aufgenommen werden können.

  • Installationsverhalten auf dem Client
    Wie bisher kann nur über Gruppenrichtlinien das Installationsverhalten der Clients gesteuert werden. Meist werden die Client automatisch installiert und die Server und bestimmte Clients nach Rückfrage des Benutzers oder Administrators

Was nicht steuerbar ist !

  • kein Push
    Selbst wenn sie einen Patch herunter geladen haben, so können Sie die Installation nicht erzwingen, sondern müssen warten, bis der PC das nächste mal den WSUS-Server anfragt. Allerdings können Sie diese Zeitintervalle auf bis zu eine Stunde reduzieren. Technisch kann der Windows Update Client aus der Ferne natürlich angestossen werden. Allerdings fehlt eben die GUI dafür.
    Über einen Trick ist es möglich, bei einem Patch eine Deadline zu definieren. Ist diese Deadline in der Vergangenheit, wird der Patch beim nächsten Check durch den Client installiert. Das ist zwar nicht "sofort" aber doch sehr zeitnah, wenn z.B. die Clients alle Stunde nachschauen.

  • keine Zeitsteuerung
    Ist ein Paket zum Installieren freigegeben und der Client installiert automatisch, dann kann das bedeuten, dass sehr viele PCs gleichzeitig laden und installieren. Eine Steuerung a la "maximal xx PCs gleichzeitig das Servicepack laden" ist nicht möglich. Das geht dann erst wieder mit einer größeren Lösung

  • keine Bandbreitensteuerung
    Bis auf die Kontrolle von BITS können Sie daher auch nicht steuern, wie viel Bandbreite durch die Update belegt werden darf. Ich sage nur 100 PCs und das Windows XP Servicepack 2 per WSUS auf einmal verteilen....

  • keine eigenen Updates
    Da haben Sie eine wunderbare Infrastruktur aber die Einbindung eigener Patches und Pakete ist leider nicht möglich. Hierzu müssen Sie weiterhin Gruppenrichtlinien oder kommerzielle Programme verwenden. Selbst wenn es Microsoft Updates sind, die heute noch nicht von WSUS verteilt werden.


Was passiert wann ?

Folgende kleine Tabelle soll ihnen zeigen, unter welchen Konstellationen was passiert:

Patch bei Microsoft Einstellung in WSUS Einstellung auf dem Client Sichtbarkeit auf dem Client Ergebnis

Kein neuer Patch

egal

egal

keine Störung nichts zu tun

neuer Patch

nicht ermitteln

egal

keine Störung Info wird auf WSUS herunter geladen.

ermitteln

egal

keine Meldung an User

Durch die Ermittlung prüfen alle Clients den Patch und melden das Ergebnis an den WSUS. Der Administrator kann dann sehen, ob der Patch wirklich benötigt wird

Installieren

vor Download und Installation fragen

Nachfrage zu Download eines neuem Patch

Nachfrage zur Installation

Anwender kann den Zeitpunkt des Download und der Installation selbst bestimmen.

Autodownload
vor Installation fragen

Nachfrage zur Installation.

Anwender kann den Zeitpunkt der Installation selbst bestimmen.

AutoDownload und AutoInstall aber kein Neustart

Download und Installation im Hintergrund unsichtbar

Keine Rückfrage

Als Administrator vertrauen Sie darauf, dass der PC vom Anwender z.B. jeden Abend herunter gefahren wird und damit die Installation abgeschlossen wird. Dies ist bei Notebooks und Dank "Hibernate" und "Suspend" allerdings keine Garantie. Im WSUS-Report ist aber zu erkennen, welche Endgeräte noch einen Reboot benötigen.

Vollautomatik

Download und Installation im Hintergrund unsichtbar.

Ist ein Neustart erforderlich, dann wird informiert und kurz darauf gestartet !

Patches werden komplett durchinstalliert inklusive Neustart des PCs. Diese Einstellung ist daher für Server eher ungeeignet.

Der Neustart passiert automatisch, wenn niemand angemeldet ist.

Angemeldete Administratoren werden regelmäßig mit einer Aufforderung konfrontiert., die irgendwann auch den hartnäckigsten Anwender nervt, so dass er den Neustart durchführt.

Nicht Administratoren werden gewarnt, aber können den Neustart NICHT verzögern

Installieren mit Ablaufdatum

?

?

Diese Einstellung erreicht, dass Clients den Patch nach Ablauf der Frist installieren.

Informationen zu den Spalten:

  • Patch bei Microsoft
    Die Tabelle geht nicht auf die Sonderfälle ein, dass ein Patch zurückgezogen oder aktualisiert wurde.

  • Einstellungen in WSUS
    Sie können im WSUS bestimmen, ob neue Patches nicht ermittelt (default) oder sogar automatisch ermittelt bzw. sogar zur Installation bereitgestellt werden. Zudem ist hier eine Filterung auf Gruppen möglich. Dies sind aber keine Active Directory Gruppen sondern WSUS Gruppen.

  • Einstellung auf dem Client
    Die Tabelle gilt nur, wenn Sie auf dem Client natürlich per Gruppenrichtlinien zumindest den WSUS-Server eingerichtet haben. Diese Spalte ist wichtig, da bei einer Einführung von WSUS viele verunsicherte Anwender die Hotline kontaktieren werden oder genervt sein können.

  • Sichtbarkeit auf dem Client
    Die Meldungen erhalten in der Regel nur Administratoren. Dies kann aber per Gruppenrichtlinie geändert werden, so dass normaler Anwender auch die WSUS-Meldungen sehen können. Das sollten Sie tun, wenn die Benutzer keine Administratoren sind und Sie die Update nicht automatisch installieren lassen.

Wichtig:
Auch wenn Sie ein Patch auf dem WSUS-Server auf "Installieren" stellen, dann bedeutet das nur eine "Bereitstellung". Welcher Client den Patch wie installiert ist eine Frage der Gruppenrichtlinien auf dem Client.

WSUS-Update
Es gibt Update, die die Funktion von WSUS selbst verbessern. Diese werden per Default automatisch zur Installation bereit gestellt. Dies kann zu einer ersten Meldung unerwarteten Meldung beim Anwender führen.


WSUS Details

Der WSUS-Server selbst ist eigentlich eine sehr einfache Anwendung und besteht aus folgenden Komponenten:

  • SQL-Datenbank
    Dreh und Angelpunkt für die Konfiguration und die Liste der Patches ist eine SQL-Datenbank, die entweder auf einem SQL-Server auf dem gleichen Server oder in der ansonsten mit installierten WMSDE liegt.

  • Dateistruktur
    Alle Patches werden als Dateien in einer Verzeichnisstruktur abgelegt. Leider wird dabei keine Struktur analog zu den Produkten und Sprachen angelegt, sondern die Updates landen mit einer GUID als Namen in einer Verzeichnisstruktur mit 256 Unterverzeichnissen. Vermutlich nutzt Microsoft den ähnlichen Code intern und kann so die Verzeichnisse über Mount Points auf mehrere Festplatten verteilen.

  • ASP.NET Verwaltungswebseite
    Sie Verwalten WSUS allein mit dem Browser. Es gibt keine Windows GUI.

  • "Update Services"- Dienst
    Dieser Dienst ist für den Download der Patches von Microsoft, die Ablage in der Dateistruktur und Datenbank und die Kommunikation mit der Verwaltungswebseite zuständig.

  • IIS und BITS zur Kommunikation
    Alle Clients übertragen die Dateien per HTTP vom IIS, welcher die Dateistruktur erreichbar macht. Der BITS-Dienst übernimmt dabei die gesicherte Übertragung im Hintergrund.

  • Windows Update Client
    Dieser Prozess auf dem Arbeitsplatz erhält seine Konfiguration über Gruppenrichtlinien und nimmt regelmäßig Kontakt zum WSUS-Server auf, um die aktuell verfügbaren Patches zu evaluieren und bei Bedarf auch zu installieren. Zudem meldet er das Ergebnis der Auswertung an den WSUS-Server zurück.


Überwachung des WSUS Client

In Ermangelung eines bestehenden MOM Management Packs für WSUS habe ich ein eigenes Management Pack für den WSUS-Client erstellt.

NAW-WSUS.akm

Diese MP überwacht durch den MOM-Agent die Funktion des Windows Update Clients auf dem Client selbst. Es befragt NICHT die SQL-Datenbank des WSUS-Server !!. Die Überwachung erfolgt auf die Meldungen im SYSTEM-Eventlog des WSUS Clients.

Eventlog: SYSTEM
Ereignisquelle: Windows Update Agent
Ereigniskategorie: Installation

Ereigniskennung Beschreibung
16 Kann keine Verbindung zum WSUS Server aufbauen
17 Es sind Updates verfügbar. Administrator muss aktiv werden
18 Geplante Installationen sind abgeschlossen
19 Installation von Updates erfolgreich. kein Neustart erforderlich
20 Fehler bei der Installation von Updates
21 Installation von Updates erfolgreich - manueller Neustart erforderlich
22 Installation von Updates erfolgreich - Automatischer Neustart

Entsprechend der Meldungen werden durch das AKM Events und Alerts generiert. Dies funktioniert nur mit Systemen, die natürlich mittels MOM überwacht werden und der "Windows Update Agent" muss bereits installiert und konfiguriert sein. Leider habe ich noch keinen eigenen View für WSUS definiert.


WSUS ohne GPO und Domäne

WSUS funktioniert auch ohne Active Directory oder Domäne. Allerdings kann man dann nicht so schön einfach per Gruppenrichtlinien die Einstellungen anpassen, sondern muss diese von Hand eintragen. Dies kann aber auch über eine REG-Datei erfolgen, die Sie auf dem Client importieren können.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"WUServer"="http://wsus:8530"
"WUStatusServer"="http://wsus:8530"
"TargetGroupEnabled"=dword:00000001
"TargetGroup"="Clients"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"NoAUShutdownOption"=dword:00000000
"NoAutoUpdate"=dword:00000000
"AUOptions"=dword:00000003
"ScheduledInstallDay"=dword:00000000
"ScheduledInstallTime"=dword:00000003
"UseWUServer"=dword:00000001
"DetectionFrequencyEnabled"=dword:00000001
"DetectionFrequency"=dword:00000001

WSUS und Self Update

WSUS nutzt den lokal installierten IIS, um den Clients einen Zugriff zu erlauben. Bei der Installation werden Sie gefragt, ob WSUS die Standardwebseite auf Port 80 oder eine eigene Webseite nutzen soll. Zwar ist die erste Option vorgeschlagen, aber viele Administratoren möchten WSUS gerne als eigene Webseite betreiben. WSUS arbeitet dann mit dem Port 8530. Allerdings benötigt der WSUS-Server selbst immer noch die Funktion "SelfUpdate". und diese funktioniert nur, wenn der Zugriff auf "Localhost" einen Webserver erreicht, auf dem das virtuelle Verzeichnis "Self Update" vorhanden ist.

Es gibt aber nun mehrere Gründe, die das verhindern. So könnte ein anderer Webserver auf Port 80 arbeiten, oder Sie haben den IIS umgestellt, dass die eigentliche Standardwebseite auf einem anderen Port arbeitet und Sie port80 für eigene Zwecke verwenden können. Es gibt zwei mögliche Lösungen:

  • SelfUpdate in die entsprechende Webseite einbauen
    Kopieren Sie die Konfiguration des virtuellen Verzeichnisses in die Webseite, die aktuell auf 127.0.0.1:80 arbeitet. Dies geht nicht, wenn es sich um einen anderen Webserver handelt.

  • Standardwebseite auf Localhost beschränken
    Es ist problemlos möglich, dass Sie die Standardwebseite wie gewohnt auf Port 80 arbeiten lassen. Damit aber nun eine andere Webseite oder ein anderer Webserver auf Port 80 arbeiten kann, beschränken Sie die Standardebseite einfach auf 127.0.0.1. Damit ist diese von niemandem erreichbar, außer dem Server selbst.

Für WSUS sind beide Alternativen in Ordnung und nach einem Neustart des "Update Service" sollten Sie in der Webseite dann auch nicht mehr die Warnung sehen, dass SelfUpdate nicht funktioniert.


WSUS Tools und Script

Viele Dinge, die wünschenswert sind, sind aber nicht über die GUI erreichbar, sondern über Skripte. Microsoft liefert dazu WSUS-Tools (http://www.microsoft.com/windowsserversystem/updateservices/techinfo/default.mspx), welche einige VBScripte enthalten besonders interessant sind hierbei:

  • ADImporter
    Importiert alle Computerkonten einer Domäne oder OU in WSUS. Damit können Sie dann auch sehen,  welche Clients es noch in ihrem AD gibt, die aber nicht mit WSUS in Kontakt treten,.

  • CleanStaleComputers
    Das Gegenstück löscht Computer, die sich eine bestimmte Zeit nicht mehr beim WSUS-Server gemeldet haben.

  • ComputersNeedingReboot
    Listet alle Computer, die Updates installiert haben und seit dem noch nicht neu gestartet wurden. Das ist besonders interessant, wenn Notebooks oder Server nicht häufig neu gestartet werden.

  • ComputerStatusToXML
    Dieses Script ersetzt zwar keine Inventory Software aber zeigt doch das ein oder andere in einer XML-Datei auf.

Die Tools enthalten noch weitre Skripte und sind eine gute Basis für eigene Entwicklungen mit VBScript und anderen Programmiersprachen.

Zudem gibt es auf http://www.microsoft.com/windowsserversystem/updateservices/downloads/default.mspx Server und Client Debug Tools, die z.B. auch einen Weg enthalten, überflüssige Patches zu entfernen

WsusDebugTool /Tool:PurgeUnnneededFiles

Ebenso dürften folgende beiden Befehle die Performance von BITS steuern, so dass der oben genannte Registry Key nicht mehr erforderlich ist (nicht getestet)

WsusDebugTool /Tool:SetForegoundDownload

WsusDebugTool /Tool:ResetForegoundDownload

Diese Funktion dürfte die manuelle Eintragung mittels OSQL überflüssig machen

net stop WSusService
C:\Programme\Update Services\tools\osql\osql.exe -S SRV01\WSUS -E -b -n -Q "USE SUSDB update tbConfigurationC set BitsDownloadPriorityForeground=1"
net start WSusService

Schade, das viele Funktionen von WSUS daher nicht von der GUI direkt zu erreichen sind.

Weitere Links