komponentenstore

Windows 8: Komponentenstore reparieren

Unter Windows 8 gibt es immer wieder die Situation, dass bestimmte Funktionen nicht mehr klappen. Da fehlt der Store oder es gibt mit Updates Probleme und und und. Dann stellt sich die Frage, wie man Windows 8 reparieren kann.

Die profunde Methode besteht natürlich darin, Windows 8 aufzufrischen. Dann verliert man aber die installierten Programme und muss einiges nacharbeiten (auf die Feinheiten des Auffrischens mit Berücksichtigung benutzerdefinierbare Wiederherstellungsabbilder möchte ich hier nicht eingehen). Also müssen alternative Methoden her, denn ein Auffrischen ist ja als letzte Möglichkeit immer noch möglich.

Systemdateiprüfung um beschädigte Dateien zu finden

Die erste Maßnahme besteht darin, das System auf beschädigte Systemdateien zu prüfen. Öffnen Sie das Fenster einer administrativen Eingabeaufforderung und geben Sie den Befehl:

sfc /scannow

ein. Drücken Sie die Eingabetaste und warten Sie, bis die Prüfung abgeschlossen ist. Werden beschädigte Dateien gefunden, kann die Systemdateiprüfung diese u.U. reparieren. Wie man beschädigte Dateien manuell wiederherstellt, habe ich unter [2] für Windows 7 beschrieben. Gelingt dies nicht, bleibt immer noch ein Auffrischen von Windows.

Tipp: Hinweise zum Reagieren auf beschädigte Systemdateien finden sich im Beitrag System auf beschädigte Systemdateien zu prüfen (bezieht sich auf Windows 7, gilt aber auch für Windows 8). Bei Dualboot-Systemen mit Windows 8 und älteren Windows-Versionen gibt es übrigens noch eine Falle. Auf der älteren Windows-Installation laufende Virenscanner sind u.U. nicht mehr aktuell und können beim Scan der Windows 8-Systempartition das System eventuell beschädigen. Daher die Virenscanner so konfigurieren, dass die Windows 8-Systempartition niemals gescannt wird!

Windows Pakete überprüfen und reparieren

Gelegentlich sind auch defekte Pakete (ein Manifest fehlt oder ein Security Catalog ist beschädigt) der Grund, warum sich bestimmte Windows-Funktionen (z.B. Updates) nicht mehr aufrufen lassen. Unter Windows 7 kam häufig das System Update Readyness Tool checksur zum Einsatz. Unter Windows 8 ist das Tool mehr oder weniger in Rente geschickt worden, denn Microsoft hat einen viel besseren Ersatz geschaffen. Der Blog-Beitrag unter [4] weist auf den Sachverhalt hin.

Öffnen Sie das Fenster der administrativen Eingabeaufforderung, lässt sich mit dem DISM-Befehl die Integrität des Komponentenspeichers (Component Store) überprüfen. Der Befehl:

Dism /Online /Cleanup-Image /ScanHealth

überprüft den Komponentenspeicher auf Beschädigungen, repariert aber nichts. Der Vorgang kann einige Minuten dauern. Anschließend verwenden Sie den folgenden Befehl:

Dism /Online /Cleanup-Image /CheckHealth

um zu überprüfen, ob Beschädigungen am Image des Component Store erkannt wurden. Der Befehl prüft nur einen Registrierungseintrag und meldet nicht nur gefundene Beschädigungen, sondern auch, ob die beschädigten Komponenten repariert werden können. Die Anweisung:

Dism /Online /Cleanup-Image /RestoreHealth

versucht die defekten Pakete mit internen Methoden zu reparieren. Mit dem Befehl:

Dism /Online /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows /LimitAccess

reparieren Sie ebenfalls beschädigte Pakete, wobei der Parameter /Source den Pfad zum Windows-Abbild angibt. Sie können z.B. eine Setup-DVD als Quelle verwenden und den Pfad sources angeben (dort findet sich die install.wim). Die Option /LimitAccess ist nur dann erforderlich, wenn ein WSUS-Server zum Verteilen von Updates verwendet wird. Dieser würde unter Umständen die Reparatur der Pakete blockieren. Durch die Option deaktiviert DISM während der Reparatur die Zugriffe auf WSUS. Eine Reparatur des Komponentenspeichers kann gut und gerne 10 bis 15 Minuten dauern. Hinweise zu den Befehlen finden Sie unter [5].

Die Reparaturanweisungen lassen sich auch als PowerShell-Cmdlets ausführen:

Repair-WindowsImage -Online –CheckHealth

Einige Hinweise finden sich unter [4].

Protokollierung der Ergebnisse

Automatische Reparaturen sind schön und gut – wenn sie denn funktionieren und alle Fehler beheben können. Manchmal haut das aber nicht so ganz hin. Abschließend daher noch ein paar Bemerkungen zur Protokollierung.

  • /ScanHealth: Führen Sie DISM mit der Option aus, werden der Komponentenspeicher auf Beschädigung überprüft und die Fehler in der ProtokolldateiC:\Windows\Logs\CBS\CBS.log gespeichert.
  • /RestoreHealth: Bei diesem Befehl erfolgt eine Reparatur des Komponentenspeicher, wobei ebenfalls alle beschädigten Pakete in der ProtokolldateiC:\Windows\Logs\CBS\CBS.log eingetragen werden.

Man kann also im Anschluss an die Prüfung oder Reparatur im Explorer zum Ordner C:\Windows\Logs\CBS\ navigieren und die Datei CBS.log zum Desktop kopieren. Durch diesen Vorgang werden die Zugriffsberechtigungen so angepasst, dass sich die Protokolldatei von jedem Benutzer im Windows-Editor Notepad öffnen und ansehen lässt.

Finden sich dort nicht reparierbare Pakete? Unter [3] habe ich mal für Windows 7 beschrieben, wie sich diese ggf. ersetzen lassen. Falls das nicht hilft, bleibt nur noch ein Auffrischen von Windows 8 übrig.