Problembehebung bei Windows Update

24. März 2011

Der Einsatz der automatischen Updates im Rahmen von Windows Update funktioniert in den meisten Fällen sehr gut. Doch es gibt immer wieder Situationen, in denen der Scan nach anstehenden Aktualisierungen zwar anläuft, dann aber nicht zum Abschluss kommt. Hier stellt sich dann die Frage, was man als Systemverantwortlicher machen soll.

Microsoft stellt dazu mehrere Tools zur Verfügung, aber unter Umständen muss sich der Administrator ganz tief im System auf die Fehlersuche machen.

Manch einer wird das Problem kennen: Windows Update bleibt hängen und lässt die Update-Datenbank sowie das entsprechende Manifest in einem beschädigten Zustand zurück. Deswegen kann nicht mehr nach weiteren Aktualisierungen gesucht werden. Um diese Situation zu entschärfen und um den Fehler zu beheben, bieten sich mehrere Optionen an.
Die erste Anlaufstelle bei derartigen Problemen auf dem Client-Betriebssystem Windows 7 ist der Windows Update Troubleshooter. Hier ist das Tool „Microsoft Fix It“ zu starten.

Wenn das die Lösung darstellt – fein. Ansonsten kann man noch auf die Supportseite gehen und das System Update Readiness Tool (Systemupdate-Vorbereitungstool, es passt zu Windows Vista, Windows 7, Windows Server 2008 und Windows Server 2008 Release 2) für das betreffende Betriebssystem herunterladen.

Bei diesem Werkzeug handelt es sich um eine große Datei, die vom Prinzip her nach Problemen im Manifest, in der Datenbank und im System sucht und sie behebt. Ist diese Aktion durchgelaufen, muss man erneut Windows Update ausprobieren. In der Regel wird es dann auch wieder funktionieren.
Doch es kann auch dazu kommen, wenn ein System wirklich schwerwiegend beschädigt ist, dass die Updates dann immer noch nicht richtig arbeiten. In diesen Fällen ist ein tiefer gehende Fehlerbehebung nötig.

Denn nun muss der Administrator beginnen, die Integrität der Systemdateien zu überprüfen. Dazu ist ein Kommandozeilenfenster (mit Administratorrechten) zu öffnen und dort der Befehl

sfc /scannow

einzugeben.

Die nächste Option ist das Anhalten des Windows-Update-Dienstes und aller zugehörigen Dienste. Das erledigen die folgenden Kommandos:

net stop wuauserv
net stop bits
net stop cryptsvc

Wenn damit der Windows-Update-Service nicht anhält, muss der Administrator in die MMC-Konsole mit services.msc gehen und dann den Starttyp für den Windows Update Service auf Deaktiviert stellen. Danach ist das System neu zu starten.

Wenn der Rechner wieder hochgefahren ist, sollte der Windows Update Service nicht mehr laufen. Dann kann der Administrator die Ordner für die lokale „SoftwareDistribution“ (sprich die Softwarebereitstellung) und das Verzeichnis catroot2 umbenennen – damit werden diese Verzeichnisse neu erstellt.

Dazu muss der Administrator in das Verzeichnis %windir% (das ist oftmals C:\windows) gehen und dort das Verzeichnis SoftwareDistribution zum Beispiel in oldSD umbenennen. Im Verzeichnis system32 ist dann noch catroot2 umzubenennen – etwa in oldCR2.

Danach sind die zuvor angehaltenen Dienste wieder neu zu starten. Wurde dabei zuvor Windows Update Service als deaktiviert angegeben, muss diese Vorgabe mit Hilfe von „services.msc“ wieder umgestellt werden – auf „Automatisch (Verzögerter Start)“. Wenn dann der Test positiv durchläuft, kann der Administrator die Verzeichnisse oldSD und oldCR2 wieder löschen.

Windows-Update-DLLs neu registrieren

Sollte diese Fehlerbehebung immer noch nicht zum Ziel führen, muss man die Windows-Update-DLLs neu eintragen. Dazu gilt es die Dienste wuauserv, bits und cryptsvc anzuhalten, während man die DLLs wieder einträgt. Danach müssen diese Dienste aber wieder gestartet werden. Daher wird man den Windows Update Service erneut deaktivieren müssen, einen Neustart ausführen und so weiter.

Die einfachste Vorgehensweise ist dann die folgenden Informationen in eine Batch-Datei zu schreiben und sie auszuführen (Vorsicht beim Einsatz von Skripts in Produktivumgebungen; besser vorher testen):

 regsvr32 c:\windows\system32\vbscript.dll /s
 regsvr32 c:\windows\system32\mshtml.dll /s
 regsvr32 c:\windows\system32\msjava.dll /s
 regsvr32 c:\windows\system32\jscript.dll /s
 regsvr32 c:\windows\system32\msxml.dll /s
 regsvr32 c:\windows\system32\actxprxy.dll /s
 regsvr32 c:\windows\system32\shdocvw.dll /s
 regsvr32 wuapi.dll /s
 regsvr32 wuaueng1.dll /s
 regsvr32 wuaueng.dll /s
 regsvr32 wucltui.dll /s
 regsvr32 wups2.dll /s
 regsvr32 wups.dll /s
 regsvr32 wuweb.dll /s
 regsvr32 Softpub.dll /s
 regsvr32 Mssip32.dll /s
 regsvr32 Initpki.dll /s
 regsvr32 softpub.dll /s
 regsvr32 wintrust.dll /s
 regsvr32 initpki.dll /s
 regsvr32 dssenh.dll /s
 regsvr32 rsaenh.dll /s
 regsvr32 gpkcsp.dll /s
 regsvr32 sccbase.dll /s
 regsvr32 slbcsp.dll /s
 regsvr32 cryptdlg.dll /s
 regsvr32 Urlmon.dll /s
 regsvr32 Shdocvw.dll /s
 regsvr32 Msjava.dll /s
 regsvr32 Actxprxy.dll /s
 regsvr32 Oleaut32.dll /s
 regsvr32 Mshtml.dll /s
 regsvr32 msxml.dll /s
 regsvr32 msxml2.dll /s
 regsvr32 msxml3.dll /s
 regsvr32 Browseui.dll /s
 regsvr32 shell32.dll /s
 regsvr32 wuapi.dll /s
 regsvr32 wuaueng.dll /s
 regsvr32 wuaueng1.dll /s
 regsvr32 wucltui.dll /s
 regsvr32 wups.dll /s
 regsvr32 wuweb.dll /s
 regsvr32 jscript.dll /s
 regsvr32 atl.dll /s
 regsvr32 Mssip32.dll /s

Wenn auch das nicht funktioniert, kann sich noch eine Kombination mit den folgenden Aktionen als hilfreich erweisen:

  1. Zuerst ist der Windows Update Service zu deaktivieren und ein Neustart auszuführen.
  2. Die Verzeichnisse SoftwareDistribution und catroot2 sind umzubenennen.
  3. Der Windows Update Service ist dann auf Automatisch(Verzögerter Start) zu setzen.
  4. Das Systemupdate-Vorbereitungstool ist durchlaufen zu lassen.

Wenn dieses Werkzeug dann ohne Probleme seine Arbeit beendet, sollte alles wieder passen (Aufräumarbeiten nicht vergessen).

John Savill/rhh

Lesen Sie auch