WSUS-Helper

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.

Startbild

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.

WSUS Helper Fullscreen


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,
clearDownloads, reinstallAgent, repWBEM,
forcePatching, ETraceOn, ETraceOff

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

  • Anzeigefelder für Registrywerte vergrößert. Nun passen auch etwas längere Namen rein. 

23.07.2012 Version 1.4.0.410

  • Kommandozeilenaufruf mit -n aber ohne -c führte zu Fehler. Ist gefixt. 

23.03.2012 Version 1.4.0.394

  • Kleine Bugfixes 
  • "TargetGroup" wird im Reiter "Client" nun wirklich richtig angezeigt

22.03.2012 Version 1.4.0.386

  • Im Reiter "Client" sollte nun "TargetGroup" richtig angezeigt werden.
  • Im Reiter "Client" wird unter "Remote" jetzt auch das OS-Installationsdatum (Achtung bei Verwendung von gesysprepten Imagen) und der letzte Reboot angezeigt (Modify Date von C:\Windows\bootstat.dat).
  • Wenn der PC offline ist, werden die relevanten Buttons ausgeblendet.

15.03.2012 Version 1.4.0.373

  • Ab dieser Version ist das Programm Win 7 kompatibel (Server 2008 R2 wahrscheinlich auch - muss aber noch getestet werden). [Rep. WBEM] ist unter Win 7 deaktiviert. Da habe ich noch keine Erfahrungen. 

21.12.2010 Version 1.3.0.358

  • BugFix: Wenn Windows nicht in 'C:\Windows' installiert ist, wurde [Hidden Patches] und [Unhide Patches] nicht ausgeführt.

29.10.2010 Version 1.3.0.356

  • Einzelne Befehle können nun auch von der Kommandozeile aus abgesetzt werden. Die Statusinformationen werden dann über einen TrayTip angezeigt.

20.08.2010 Version 1.2.0.322

  • Bugfix: History Fenster wurde während der arbeit nicht aktualisiert

20.08.2010 Version 1.2.0.320

  • Für die angezeigten Zeilen in den Logfiles kann man nun einen Filter setzen, der auf das Wort 'error' untersucht. Wenn der Haken gesetzt ist, werden nur Zeilen angezeigt, die das Wort 'error' enthalten.
  • PsExec aktualisiert.
  • Einige Bugfixes.

13.08.2010 Version 1.2.0.304

  • In Version 1.1.x.x wurde auf dem Client immer Laufwerk C: angesprochen. Nun, ab Version 1.2.x.x sollten alle Aktionen auch funktionieren, wenn das Betriebssystem nicht auf C: installiert ist. Im Log kann man prüfen, ob das richtig erkannt wurde.
  • In Version 1.1.0.294 wurde der freie Festplattenplatz nicht aktualisiert, wenn der Button [Read New] gedrückt wurde - ist gefixt.
  • Die aktuellen Installationspakete der WSUS-Agenten wurden eingefügt.
  • Etwas GUI Kosmetik.

11.08.2010 Version 1.1.0.294

  • Die GUI wurde etwas überarbeitet. Der erste Reiter zeigt automatisch die Clientsettings/-daten und eine Bearbeitungshistorie an. Außerdem wird der noch freie Festplattenplatz angezeigt und es erscheint eine Warnung wenn es weniger als 0,5 GB sind.
  • Von Win- und Softwarelog werden nun defaultmäßig nur die letzten 100 Zeilen angezeigt. Neuster Eintrag ist dabei oben. Eine komplette Anzeige ist aber auch möglich.

11.05.2010 Version 1.1.0.257

  • Das online-offline gehen des Rechners wird nun nicht mehr in das Log geschrieben. Bei VPN-Verbindungen, die einen stetigen Wechsel hervorrufen, wurde das Log unnötig vollgeschrieben. Mit dem Button [Logfile] kann man sich eine Bearbeitungshistorie anzeigen lassen. 

11.05.2010 Version 1.1.0.256

  • Falls Virenscanner den Download verhindern, kann man es mit dieser Version versuchen. UPX gepackte Dateien mögen einige Virenscanner aber auch nicht.

22.04.2010 Version 1.1.0.255

  • Bei einem Ping-Timeout werden die Buttons nicht mehr deaktiviert (Problem bei VPN). Dafür wird jetzt die Pingzeit angezeigt.
  • Der Button [Settings] liest die Clientsettings für WSUS aus der Registry aus und zeigt sie an.

19.03.2010 Version 1.1.0.233

  • Den Ping Timeout von 200 ms auf 500 ms gesetzt. Bei VPN-Verbingungen war das etwas zu knapp bemessen.

26.01.2010 Version 1.1.0.230

  • Enhanced Trace auf MSI Installer ausgeweitet ( Registry Keys -> KB958052)
  • Clear downloads auf Ordner CatRoot2 ausgeweitet ( Fehler 0x80246007 -> KB958042 )
  • Erkannter Maschinentyp wird im Log angezeigt 
  • Kein automatisches wuauclt.exe /resetauthorization /detectnow nach [Clear Downloads] und [Reinstall Agent] mehr
  • Logfile mit allen Aktionen wird dauerhaft in eine Datei mitgeschrieben
  • Anzeige verkürztes Logfile nach PC-Nummer sortiert (für bessere Übersicht)
  • WMI-Repository reparieren

04.11.2009 Version 1.1.0.164

  • Die Funktionen "Hidden Updates" und "Unhide Updates" sind hinzugekommen
  • Die Eingabe eines neuen PC-Namens wurde geändert

16.09.2009 Version 1.1.0.117

  • Bugfix: Auf den Client wurde die Architekturversion des Hosts kopiert. Gefixt. 

14.09.2009

  • GPupdate Funktion hinzugefügt

05.05.2009: 

  • Das Programm beinhaltet nun auch den 64-Bit Agenten und kann somit beide Architekturen supporten.
    Hier die letzten Versionen:
AnhangGröße
WSUShelper_1.1.0.255.zip13.13 MB
WSUShelper_upx_1.1.0.256.zip13.09 MB
WSUShelper_1.1.0.294.zip13.14 MB
WSUShelper_1.2.0.322.zip14.44 MB
WSUShelper_1.3.0.358.zip14.44 MB
WSUShelper_1.4.0.411.zip14.46 MB
WSUShelper_1.4.0.394.zip14.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.