Jan 092015
 
  • Betrifft: Komponentenspeicher von Windows unter C:\Windows\WinSxS.
  • System: Microsoft Windows 8.1 und Windows Server 2012 R2
  • Problem: Unnötigen Speicherplatz aus dem Komponentenspeicher freigeben

Hintergrund

Unter Windows gibt es ab Windows XP einen speziellen Ordner mit der Bezeichnung WinSxS. Kurz als Erklärung, der Ordner dient unter Windows XP als Speicherplatz für gleichlautende *.dll Dateien mit unterschiedlichen Versionen. Beispielsweise system.dll mit Version 1.0 und Version 1.1. Der Hintergrund: ein Programm kann nicht in Probleme geraten, wenn diese für Version 1.1 entwickelt wurden, jedoch später für ein weiteres Programm die ältere Version installiert wird. Das ganze nennt sich Side-by-Side (SxS) Technologie.

Ab Windows Vista wurde die Nutzung des WinSxS Ordners erweitert. Aufgrund vergangener Einschränkungen betreffend modularer Aufbauweise konnten Systemfunktionalitäten nicht unabhängig installiert werden. So war Windows XP bzw. Windows Server 2003 ein nicht modulares System, wo Funktionalitäten stets auf andere aufgebaut haben. Mit Windows Vista wurden Funktionen in Pakete aufgeteilt. Diese Pakete geben an von welchen anderen Paketen sie abhängen und welche Dateien sie beinhalten. Ebenso sind darin Zielorte definiert und Registrierungswerte inkludiert. Bei der Installation werden die Zielorte gesetzt bzw. Registrierungswerte angelegt und bei der Deinstallation entfernt bzw. gelöscht. Um das Vorhalten des Installationsmedium für spätere Aktivierung von Funktionen bzw. Installation von Updates zu unterbinden, wurde entschieden alle Daten auf der Festplatte vorzuhalten. Bei den damals deutlich gesunkenen Preisen bzw. zur Verfügung stehenden Speicherplatzes eigentlich kein allzu großes Problem (klar bei SSD war es zu Anfang wieder etwas problematischer). Ein geeigneter Speicherort war mit dem WinSxS Ordner somit schnell gefunden.

Dabei wird man früher oder später über Dateien stoßen, die scheinbar doppelt vorhanden sind, wie z.B. explorer.exe (Windows Ordner und mindestens einmal im WinSxS Ordner). Diese Dateien sind in Wirklichkeit aber nur im WinSxS Ordner gespeichert und auf den eigentlichen Ordner per Hardlink verlinkt. Bei neueren Versionen einer Datei wird diese im WinSxS Ordner hinzugefügt und der Hardlink wird auf die neue Version gewechselt. Deshalb wächst der WinSxS Ordner vor allem nach der Installation von Windows Updates an – aber auch Programminstallation können den Ordner erweitern. Übriges kann der Windows Explorer Hardlinks nicht unterscheiden und zählt die Dateien mehrfach. Also erhält man eine falsche Ordnergröße.

 

Wie man sich vorstellen kann werden im Verlauf der Zeit im WinSxS Ordner Dateien unnötig, da diese ersetzt wurden und eine Deinstallation/Zurücksetzung nicht mehr in Frage kommt. Nun sollte man unter keinen Umständen im WinSxS Ordner willkürlich Daten löschen. Das wäre meistens die letzte Aktion bevor man den Computer formatiert und neu installiert.

Für die Bereinigung gibt es mit Windows 8.1 bzw. Windows Server 2012 R2 eine entsprechende Funktion zur Bereinigung von unnötig gewordenen Dateien. Dies ist speziell für Windows Server interessant wo die Datenträgerbereinigung nicht installiert wurden. Hinweis: bei Windows Clients ist die Datenträgerbereinigung vorzuziehen, da dies dort bei "Windows Update-Bereinigung" inkludiert ist. Die Datenträgerbereinigung muss dazu mit administrativen Rechen ausgeführt werden.

 

Behebung

Zuerst benötigt man eine Windows Kommandozeile mit administrativen Rechten ("cmd" ausführen als Administrator). Danach kann man mit folgendem Befehl überprüfen ob eine Bereinigung notwendig ist:

dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Sofern "Anzahl von Paketen, die freigegeben werden können" ungleich 0 ist, können Daten bereinigt werden. Dies geschieht mit folgendem Befehl:

dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

WinSxS_Komponentenspeicher_bereinigen

weitere relevante Beiträge...

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(erforderlich)

(erforderlich)