Wenn man in einer Domäne sehr viele PCs zu betreuen hat können Fehler beim Patchmanagement per WSUS viel Arbeit machen. Die Maßnahmen um einzelne Fehler zu beseitigen sind bekannt, aber die Menge und die umständliche Handhabung kosten Zeit. Viele dieser Arbeiten habe ich automatisiert und in einem Tool zusammengefasst. Startet man den WSUS-Helper mit administrativen Rechten der Zielmaschinen (Administrator Account) kann man zügig eine Vielzahl von PCs bearbeiten.
Im einzelnen stehen folgende Funktionen zur Verfügung:
[Detect]
Der Client soll erforderliche Downloads sofort herunterladen.
[Report]
Der Client soll kurzfristig einen Report an WSUS senden.
[Reset ID]
Mit diesem Befehl werden die SusClientID, die PingID und die AccountDomainSid aus der Registry gelöscht. Einige Connectprobleme können damit gelöst werden.
[GPupdate]
Wenn man einen PC frisch in eine neue Policygruppe aufgenommen hat, möchte man nicht unbedingt warten müssen bis die Einstellungen greifen. Mit diesem Button wird auf dem Client "gpupdate /force" ausgeführt. Achtung! Die Usersettings des Accounts werden aktualisiert, mit dessen Rechten das Tool gestartet wurde. Für die WSUS Settings ist das nicht so tragisch. Sie liegen in der Computer Policy.
[Hidden Patches]
Ein User hat die Möglichkeit bei der Benutzergesteuerten Installation Windows Updates dauerhaft abzulehnen. Mit dieser Funktion kann man sich alle Patche anzeigen lassen, die der User lokal abgelehnt hat.
[Unhide Patches]
Hiermit kann man alle abgelehnte Patche wider anweisen. Innerhalb von ca. 15 sec. meldet sich das WSUS-Symbol zurück im Tray und bietet die Installation an.
Um PCs zu finden, die Updates abgelehnt haben, kann man auf dem WSUS-Server ein kleines Programm laufen lassen, das eine entsprechende Liste erzeugt. Alles weitere finden sie unter Versteckte Microsoft Updates aufspüren (Hidden Updates) auf dieser Webseite.
[Rep. WBEM]
Mit diesem Befehl kann man das WMI-Repository reparieren. Die Batchdatei, die dabei ausgeführt wird, kann man hier sehen (unter Win 7 nicht verfügbar).
[Force Patching]
Wenn dieser Befehl ausgeführt wird, wird der Client in der Regel innerhalb von ca. 5 Minuten mit dem Patchen beginnen. Unabhängig davon welchen Status er hat.
Dabei wird dem WUSU-Agent durch Manipulation der Registry vorgegaugelt, dass das letzte Patchen im Januar 2006 erfolgt ist.
[Clear Downloads]
Die vom WSUS-Agent herunter geladenen Patche liegen im Ordner %systemroot%\Softwaredistribution\ . Bei manchen Problemen ist es hilfreich diesen Ordner komplett zu löschen (z.B. wenn ein Patch nur Fehlerhaft ausgeführt wird und andere blockiert und deshalb zurückgezogen wurde). Diese Funktion löscht den Ordner sowie %systemroot%\catroot2\ .
[Reinstall Agent]
Diese Action installiert den WSUS-Agenten mit den Schaltern /wuforce /quiet /norestart neu. Die Action [Reset Client ID] wird automatisch mit ausgeführt. Zusammen mit [Clear Downloads] kann man so fast alle Probleme "brutal" lösen.
[ETrace on]
Mit diesem Schalter kann man das "Erweiterte Tracing" im in WindowsUpdate.log einschalten. Das kann bei der Fehlersuche unter Umständen helfen. Da die Logs dann sehr groß werden können, sollte man es nach Ende der Arbeit mit [ETrace off] wieder abschalten.
_|Client|_
Der erste Reiter zeigt automatisch die aktuellen WSUS-Einstellungen in der Registry. Außerdem sieht man hier das Client-Betriebssystem sowie den noch freien Festplattenplatz. Ist der freie Festplattenplatz kleiner als 0,5 GB erscheint ein rotes ! in der Gruppe. Mit dem Button [Read New] kann man die Anzeige aktualisieren.
Rechts unten wird die Bearbeitungshistorie zum momentan aktiven Client angezeigt. Dazu wird das lokale Logfile ausgewertet.
_|WindowsUpdate.Log|_
Um die Arbeit des Clients kontrollieren zu können gibt es noch zwei Anzeigen (Reiter). Im Reiter -|WinLog|- kann man den Button [Read New] anklicken und erhält damit eine Kopie des %systemroot%\WindowsUpdate.log des Clients und kann darin nach Meldungen schauen und Fehler suchen.
Standartmäßig werden nur die letzten 100 Zeilen in umgekehrter Reihenfolge angezeigt (neuester Eintrag oben). Durch entfernen des Hakens wird das Logfile komplett geladen.
Wenn man einen Haken bei 'Only errorlines' setzt, werden nur Zeilen angezeigt, die das Wort 'error' enthalten.
Damit die Arbeit zügig von der Hand geht kann man Text ins Clipboard kopieren und anschließend auf die Buttons [Search Google] oder [Search WSUS.de] klicken um dort suchen zu lassen. Der Clipboardinhalt erscheint dabei über dem Textfeld zwischen den eckigen Klammern.
_|ReportingEvents.Log|_
Hier gilt das gleiche wie beim |WinLog|. Es wird das %systemroot%\Softwaredistribution\ReportingEvents.log ausgelesen und in diesem Fenster angezeigt.
_|Logging|_
In diesem Fenster werden alle Aktionen mitprotokolliert. Alle Ausgaben des Fensters [Logging] werden dauerhaft in die Datei WSUShelper.log geschrieben um die Arbeit über Tage/Wochen/Monate dokumentieren zu können. Mit dem Button [Logfile] wird dieses Logfile eingelesen, gekürzt und sortiert. Man erhält eine alphabetische Auflistung aller bearbeiteten PCs und die ausgeführten Aktionsbuttons (abgelegt in WSUShelperPC.log). Damit kann man schnell erkennen, welche PCs schon einmal und wann, wie bearbeitet wurden.
Für die Anzeige der Logs ist es sinnvoll das Fenster zu vergrößern. Dazu genügt ein Doppelklick auf die Titelleiste.
Ab Version 1.3 ist es möglich, alle Befehle auch von der Kommandozeile aus abzusetzen. Dazu gibt es folgende Kommandozeilenparameter:
-?, -h, -help | Anzeige einer Hilfebox. |
-n pcname | Name des PCs. Kann für lokalen PC entfallen. |
-c befehl | Befehl, der ausgeführt werden soll. |
-gui | GUI öffnen wenn Befehl ausgeführt wurde (wenn vorhanden) |
Es gibt folgende Befehle: |
detect, report, resetID, gpupdate, unhide, |
Beispiel: wsushelper.exe -n PC0815 -c clearDownloads
Damit kann man den WSUS-Helper nun auch als Modul in anderen Programmen benutzen. Die Statusinformationen werden dann über einen TrayTip angezeigt.
Bitte darauf achten, dass Administrationsrechte für die Zielmaschine vorhanden sind. So wie im GUI Modus wird das Logfile weitergeschrieben. Die Auswertung des Logs zeigt damit sämtliche Aktivitäten (GUI und Kommandozeile) gemeinsam an.
Fast alle Aktionen werden mittels PSExec von Sysinternals (jetzt Microsoft) an den Client geschickt. Das Programm ist im WSUS-Helper integriert und wird bei Bedarf entpackt.
Wie ich feststellen konnte, ist dieses Tool auch privat sehr nützlich. Ein defekter Update Agent oder Patche, die absolut nicht mehr installieren wollen, bekommt man mit [Clear Downloads][Reinstall Agent] wieder gut in den Griff.
Noch ein Tip:
Gibt man im Startdialog keinen PC Namen ein und drückt einfach [Enter] wird automatisch der lokale PC genommen.
Notiz am Rande:
Ein PC der nicht innerhalb von 500ms auf einen Ping antwortet gilt als offline.
Für Administratoren, die eher ein Script gebrauchen könnten um Abläufe zu automatisieren, können sich mal den Eintrag WSUS Update beschleunigen ansehen. Dort findet sich auch eine passende Batchdatei.
Zu Windows 7
Durch die Einführung neuer Sicherheitsmechanismen in Windows 7 funktioniert der WSUS-Helper (sowieso erst ab Version 1.4) in der Regel nicht mit diesen Clients (Zugriff wird blockiert). Wie man die Probleme beseitigen kann zeigt dieser Artikel: http://blog.nirsoft.net/2009/10/22/how-to-connect-a-remote-windows-7vistaxp-computer-with-nirsoft-utilities/
Vielen Dank an Thomas Lohe, der mir den Tipp gab, und den ich hier noch wie folgt zitieren möchte:
"In Windows7 müssen zwei Einstellungen verändert werden (bei uns ist die Windows Firewall deaktiviert):
Der Dienst Remote Registry (aka Remote-Registrierung), der unter XP noch automatisch startete, muß in Windows7 von Startart manuell auf automatisch gesetzt werden. Das allein reicht noch nicht, zusätzlich muß der Remote UAC ausgeschaltet werden, indem folgender Registrywert gesetzt wird:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001
Nach Neustart klappt es dann mit WSUS Helper und vermutlich auch mit etlichen anderen Tools/Scripten, die man im Laufe der Zeit so sammelt."
Changelog:
13.08.2012 Version 1.4.0.410
23.07.2012 Version 1.4.0.410
23.03.2012 Version 1.4.0.394
22.03.2012 Version 1.4.0.386
15.03.2012 Version 1.4.0.373
21.12.2010 Version 1.3.0.358
29.10.2010 Version 1.3.0.356
20.08.2010 Version 1.2.0.322
20.08.2010 Version 1.2.0.320
13.08.2010 Version 1.2.0.304
11.08.2010 Version 1.1.0.294
11.05.2010 Version 1.1.0.257
11.05.2010 Version 1.1.0.256
22.04.2010 Version 1.1.0.255
19.03.2010 Version 1.1.0.233
26.01.2010 Version 1.1.0.230
04.11.2009 Version 1.1.0.164
16.09.2009 Version 1.1.0.117
14.09.2009
05.05.2009:
Anhang | Größe |
---|---|
WSUShelper_1.1.0.255.zip | 13.13 MB |
WSUShelper_upx_1.1.0.256.zip | 13.09 MB |
WSUShelper_1.1.0.294.zip | 13.14 MB |
WSUShelper_1.2.0.322.zip | 14.44 MB |
WSUShelper_1.3.0.358.zip | 14.44 MB |
WSUShelper_1.4.0.411.zip | 14.46 MB |
WSUShelper_1.4.0.394.zip | 14.45 MB |
Kommentare
Hinweis/wunsch
Es wäre schön noch einen zusätzlichen Punkt einzuarbeiten um das programm weiter abzurunden; secsdit.exe
Ich weiß nicht, ob ich noch Win 2000 unterstützen soll. Bei allen anderen wäre "gpupdate /force" lokal vorhanden und nützlich.
-> Ist in neuer Version drin. Siehe [GPupdate].
Die Zeitersparnis ist enorm - Vielen Dank
Hallo Wolfgang,
vielen Dank für WSUShelper. Wir sehen gerade die Conficker-Welle auf uns zurollen und Dein Programm ist eine große Hilfe, bei zickigen Clients noch mal schnell die Türen zu schließen.
Ciao,
Andreas
Super Tool
Hallo Wolfgang,
vielen dank für dieses super geile tool :-) nutze es tag täglich um meine rechner zu kontrollieren etc. einen vorschlag hätte ich dennoch, wenn man das winlog ausließt. wäre es da möglich eine art refresh einzubauen sodass quasi alle x sekunden das logfile aktualisiert wird bzw geprüft wird ob neue einträge vorhanden sind? und wenns möglich wäre, direkt nach unten springen im logfile
grüße
Ben
WSUS Agent
Hallo, mir ist nicht klar, woher der WindowsUpdateAgent30-x86.exe im bin Verzeichnis kommt. Mir scheint, dass dies eine veraltete Version ist. Wie verhält sich der WSUS-Helper bei 64-bit Clienten?
Hi!
Die WindowsUpdateAgent30-x86.exe wird aus dem Tool selbst entpackt, wenn sie nicht vorhanden ist. Ich habe sie heute (05.05.2009) aktualisiert. Außerdem habe ich jetzt eine Überprüfung auf die Prozessorarchitektur (32/64-Bit) eingebaut und auch den 64-Bit Agenten hinzugefügt. Damit werden nun alle, aktuellen Windows Betriebssysteme unterstützt.