WinSxS-Ordner von Windows 7 komprimieren

Der WinSxS-Ordner von Windows 7 kann mit der Zeit enorm anwachsen. Wie man diesen Ordner potentiell bereinigen kann, habe ich bereits beschrieben. Da man Dateien unter Windows auf NTFS-Ebene komprimieren kann, lässt sich prinzipiell auch der WinSxS-Ordner durch das Komprimieren verkleinern. Durchschnittlich kann so ungefähr ein Viertel des tatsächlich belegten Speichers eingespart werden. Doch Vorsicht: da die Komprimierung potentiell die Leistung beeinträchtigen kann, muss jeder für sich abwägen, ob sich eine Komprimierung lohnt. Meine Tests haben bisher keinen signifikanten Leistungsabfall im Normalbetrieb ergeben.

Das Hauptproblem bei der Komprimierung des WinSxS-Ordners ist, dass standardmäßig nicht mal administrative Benutzer darin Änderungen vornehmen können (nur Lese- und Ausführungsrechte). Als Besitzer ist außerdem der TrustedInstaller-Benutzer definiert. Darüber hinaus sind einige Dateien aus WinSxS im Normalbetrieb in Verwendung.

Der gesamte Vorgang sollte deswegen im Computer-Reparatur-Modus von Windows 7 erfolgen:

  1. Computer einschalten und, kurz bevor der "Windows wird gestartet"-Schriftzug erscheint, die Taste F8 drücken.
  2. Den Eintrag "Computer reparieren" auswählen und bestätigen.
  3. Nach Auswahl der Tastatureingabemethode und der Eingabe der Zugangsdaten eines administrativen Nutzers, die Auswahl Eingabeaufforderung treffen.
  4. Nun ermittelt man durch Ausprobieren den Windows-Pfad des Systemlauferks, der im Folgenden durch <WINDIR> abgekürzt werden soll.
  5. Folgende Befehle aktivieren die Komprimierung des WinSxS-Ordners:
    <WINDIR>\system32\compact.exe /C /A /S /I /Q <WINDIR>\winsxs\*
    <WINDIR>\system32\compact.exe /C /A /I /Q <WINDIR>\winsxs\
    • Im Anschluss wird angezeigt, wie viel Speicher durch die Komprimierung gewonnen werden konnte. Diese Angabe ist jedoch mit Vorsicht zu genießen (Stichwort: "hard links").
    • Der zweite Befehl dient dazu, den WinSxS-Ordner selbst so einzustellen, dass alle in dem Ordner zukünftig neu hinzukommende Dateien automatisch komprimiert werden.
  6. Anschließend die Eingabeaufforderung mit exit beenden und Windows neustarten.

Der eigentliche Speicherplatzgewinn dieser Aktion lässt sich am besten am freien Speicherplatz des Systemlaufwerks vor und nach der Komprimierung abschätzen. Denn der Windows-Explorer zählt (mittels "hard links") mehrfach referenzierte Dateiobjekte, wovon im WinSxS-Ordner in der Regel einige existieren, mehrfach. Deswegen entspricht die Speicherplatzangabe für den einzelnen WinSxS-Ordner nicht zwingend der tatsächlichen Speicherbelegung. Die Angabe des freien Speicherplatz des Systemlaufwerks ist dagegen von "hard links" unabhängig.

Kommentare

Die Anleitung funktioniert sehr gut und ist auch gut beschrieben...aber gibt es irgendeine möglichkeit, diesen Ordner über cmd zu komprimieren WENN DAS WINDOWS LÄUFT? 

Ja, gibt es. Wobei voraussichtlich nicht alle Dateien komprimiert werden können, wenn sie etwa gerade im Zugriff sind. Um die Komprimierung im Betrieb zu aktivieren, muss man zunächst entsprechende Zugriffsrechte erlangen (cmd vorher mit administrativen Rechten öffnen):

takeown /R /F %windir%\winsxs
ICACLS %WINDIR%\winsxs /grant Jeder:F /T /C /Q

Dann die Befehle zur Komprimierung, wie im Artikel beschrieben, anwenden.

Zum Schluss sollte die Änderung der Zugriffsrechte zurückgesetzt werden:

ICACLS %WINDIR%\winsxs /setowner "NT Service\TrustedInstaller" /T /C /Q
ICACLS %WINDIR%\winsxs /remove Jeder /T /C /Q

Es könnte sein, dass beim zweiten Befehl Zugriffsfehler protokolliert werden ("Zugriff verweigert"). Potentiell sind mehrere Dateien in WinSxS nur Referenzen (hard links) auf ein einziges Dateiobjekt. Wenn der Befehl zum Entfernen des Vollzugriffs auf solch eine Referenz trifft und dem eigentlichen Dateiobjekt bereits der Vollzugriff entzogen worden ist, wäre eine Zugriffsverletzung die Konsequenz. Solche Zugriffsfehler sind also zu vernachlässigen.

Wow danke für die schnelle antwort! Ich werde es gleich ausprobieren und sag dann bescheid obs funktioniert hat

Kein Problem! Bevor es losgeht, würde ich empfehlen eine vollständige Systemsicherung anzulegen. Für alle Fälle ...

Hallo, ich bin Leihe und verstehe nicht wirklich, was damit gemeint ist, dass man den Pfad mittels Ausprobieren ermitteln kann. Konkretisiert: Was muss ich eingeben, damit die Datei gefunden wird?

Hallo. Konkret ist eben nicht bekannt, welchem Buchstaben die System-Partition zugewiesen worden ist. Also einfach mal "C:" eingeben und bestätigen, dann prüfen, ob Sie sich tatsächlich auf dem Laufwerk mit Windows-Ordner befinden.

Ansonsten gibt es noch die Möglichkeit, diese Prozedur (mit Einschränkungen) im laufenden Betrieb auszuführen. Siehe dazu den Kommentar vom Fr, 23. Oktober 2015 12:06.

Hallo, erstmal danke für die Antwort. Habe alle Punkte abgearbeitet und bekomme immer die Meldung: "Zugriff verweigert". Als Admin habe ich entsprechend alles Nötige geöffnet...Habe ich dann eventuell etwas falsch gemacht oder vergessen? 

Hallo. Nicht zwingend, denn manche Dateien sind im Betrieb in Gebrauch, demnach also nicht veränderbar.

Danke. Sehr gute Beschreibung!

Hallo

ist die Komprierung später umkehrbar, wenn man doch das Gefühl hat das System ist langsamer geworden?

Danke :)

compact /U .....?

Hallo Jens. Ich selbst habe es nicht probiert. Aber der Schalter /U ist genau dafür vorgesehen.

Hallo Alexander, danke für die Anleitung. Komprimierung unter laufendem Win7 ergab Verhältnis 1,1 zu 1,0 Komprimierung, also hänge ich jetzt im Reparaturmodus und musste nicht schlecht staunen. Im %windir%/system32/ gibt es keine compact.exe - Woran kann das denn liegen? Über google finde ich keine Möglichkeit, die exe zu laden. Kann man die einfach von einem anderen Win7 Rechner ziehen ohne Probleme? LG, Max

Ich kann vor dieser Vorgehensweise nur abraten, vor dem Komprimieren 11,5Gb frei, danach 9.3... lg tobi

Hallo tobi. Eine Einsparung von rund 20% ist doch eigentlich nicht schlecht!?

Du hast Dich verlesen:

Vorher mehr frei als nachher!

lg

tobi

Oh, richtig. Hast du die Aktion rückgängig gemacht und waren wieder mehr frei?