Closed TopicStart new topic
Was ist der WinSxS Ordner und warum wird er immer größer?, Hier versuche ich es euch grob zu erklären.
Thema
MagicAndre1981
Beitrag 26.10.2009, 23:56
Beitrag #1


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Was ist der WinSxS Ordner und warum wird er immer größer?

Der WinSxS-Ordner ist ein der größten Missverständnisse unter Windows Vista. Um ihn zu verstehen, erkäre ich euch heute wann der WinSXS Ordner zum ersten Mal eingeführt wurde und welche Funktionen er hatte und wie sich die Funktion in Vista etwas verändert hat.

ACHTUNG: DIESER ARTIKEL SOLL NUR EINEN GROBEN ÜBERBLICK ÜBER DEN WINSXS ORDNER GEBEN UND ERHEBT KEINEN ANSPRUCH AUF 100%IGE KORREKTHEIT UND 100%IGE DETAILBETRACHTUNGEN UND VEREINFACHT DIE KOMPLEXEN VORGÄNGE ETWAS UM SIE VERSTÄNDLICH ZU MACHEN:

Die Geschichte des WinSxS Ordners beginnt im Jahre 2001, als Microsoft diesen Ordner unter Windows XP einführte. Dies erfolgte um die DLL Hölle aus früheren Version zu bekämpfen. Was fragt ihr euch sicher, was ist mit der DLL Hölle gemeint. Bis Windows 2000 (alle Windows NT, Windows 95/98/ME) konnte eine DLL nur einmal und in einer Version auf dem System in dem Windows oder System/32 Ordner vorhanden sein. Nun kam es zu Problemen, wenn verschiedene Programme die gleichen DLLs nutzen, aber gegen verschiedene Versionen der DLL programmiert wurden. Diese Problematik erkläre ich kurz an einem Beispiel:

Programm A nutzt die DLL xyz.dll in der version 1.0.
Programm B nutzt die DLL xyz.dll in der version 1.1.
Programm C nutzt die DLL xyz.dll in der version 1.2.

Wenn ihr nun die Programme in der Reihenfolge A,B,C installiert, funktioniert das Programm C sicher, da es die DLL in der erwartenden Version im Windows-Ornder installiert. Die Programme A,B sollten auch laufen, aber müssen nicht zu 100% laufen, da sie gegen die neue DLL Version nicht getestet wurden. Problematischer ist, wenn man die Reihenfolge der Installationen verändert und erst Programm C, dann B und A installiert. Nun passierte es zu Windows 95/98 oft, dass die anderen Programme die aktuelle Version überschreiben haben und ihre bevorzugte Version installiert haben. So kam es dazu, dass das Programm C unter Umständen nicht mehr funktiniert, wenn es Funktionen aufruft, die in der alten DLL Version nicht vorhanden sind. Dies führte zu einem Chaos, bei dem viele Programme nicht mehr fehlerfrei ausgeführt werden konnte.

Somit führte Microsoft ab Windows XP die Side-by-Side (SxS) Technologie ein, so dass DLLs mehrmals auf einem System vorhanden sein konnten. Die verschiedenen DLLs liegen num im WinSxS Ordner in getrennten Ordnern und behindern sich nicht gegenseitig. Die Anwendungen steuern über ein integriertes Manifest welche Version der Datei sie benötigen.

Nun kommt die Frage, welche Dateien kommen in diesen Ordner. Unter Windows XP kamen in diesen Ordner nur die Dateien, die ab Windows XP neue Funktionen mitbrachten um das neue Luna-Interface zu unterstützen (GDIPLus, CommDlg etc).
Wenn die Anwendung über kein Manifest verfügte, konnte man die Luna-Funktionen nicht nutzen und es wurden die alten DLLs genutzt. Zudem kamen in den WinSxS Ordner die verschiedenen C++ Runtime Dateien, die benötigt werden um Programme zu betreiben, welche unter Benutzung von Visual C++ entwickelt wurden.

Nun frag ihr euch warum der Ordner in Windows Vista so groß ist und warum dort neben DLLs auch Exen und andere Dateien zu finden sind.
Um dies zu erklären muss ich kurz auf die Änderungen im Aufbau von Windows Vista/7 (NT6.x) gegenüber Windows XP (NT5.x) eingehen.

Alle Windows Versionen bis Windows Server 2003 (außer Windows XP Embedded) sind unmodulare Betriebssysteme, bei denen Programmfunktionalitäten nicht unabhängig aufgebaut sind. Alle Dateien werden beim Setup über Inf-Dateien in ihre Ziel-Ordner kopiert. Das Auftrennen in verschiedene Edition ist somit extrem schwierig, deshalb gab es nur die Home und Prof Versionen. Die MediaCanter und Tablett basierten dabei auf der Prof.

Deshalb hat Microsoft in Windows Vista alle Funktionen in Pakete aufgeteilt. Diese Pakete zeigen an, von welchen anderen Paketen sie abhängen und welche Dateien sie beinhalten. Über Manifestdateien wird der Ziel-ort der Dateien festgelegt und welche Registry-Einträge zu jedem Paket gehören, welche bei der Installation dann gesetzt und bei der Deinstallation gelöscht werden.

Um die Nutzer das Einlegen der DVD bei der späteren Installation von Updates und Änderung von Funktionen zu ersparen, und da Speicherplatz im Gegensatz zu den späten 90iger billig und ausreichend vorhanden ist, werden alle Dateien auf die Festplatte kopiert. Dazu musste ein geeigneter Ort gefunden werden. Da der WinSxS ordner für den Zweck der Speicherung von DLLs in verschiedenen Versionen entwickelt wurde bot es sich an alle Dateien dort abzulegen.

Nun fragt ihr euch sicher, warum die Dateien doppelt z.B. die Explorer.exe im Windows-ordner und im WinSxS ordner, vorhanden ist. Das hat nur den Anschein, also ob das so ist. Die Datei liegt nicht im Windows-Ordner, sondern nur im WinSxS-Ordner und wird per Hardlink (http://de.wikipedia.org/wiki/Hardlink) in den Zielordner, also dem Windows-Ordner verlinkt. Der WinSxS Ordner ist also nicht das Problem, sondern der Windows Explorer der in der Größenangabe nicht unterscheidet ob es sich um Hardlinks handelt. Der Explorer zählt die Größe der Dateien in den einzelnen Ordner + die Größe der Dateien im WinSxS Ordner. Mit dem Programm "Link Shell Extension (LSE)" könnt ihr im Windows Explorer sehen, ob eine Datei ein Hardlink ist oder nicht.

Neben den DLLs/Exe/Sys Dateien, die als Hardlinks in die Zielorder "gemappt" werden, gibt es noch andere Ordner.
Der Backup-Ordner ist der Nachfolger des DLLCache Ordners, den es unter XP gab. Dieser Backup-Ordner wird als
"Windows Resource Protection" bezeichnet. In dem Ordner Catalog befinden sich die Zertifikat Dateien, die wichtig sind, damit Veränderungen erkannt und unterbunden werden. Der Ordner Manifests beinhaltet Steuerungsdateien, die die Registryeinträge zu den einzelnen Funktionen / Updates beinhalten.

Warum wächst der WinSxS Ordner immer?

Das liegt in dem Umgang mit Updates und wird von mir hier erklärt.

D.h. bei jeder Installation von Updates wächst der WinSxS Ordner. Der WinSxS Ordner ersetzt damit die Erstellung der $NtUninstallKBXXXXXX$-Ordner die es unter Windows XP gab und erlaubt eine sichere (De)installation aller Funktionen, bzw. Updates.

Warum gibt es von einer Exe/DLL/Sys mehrere Versionen mit unterschiedlichen Version (6.1.7600.16xxx und 6.1.7600.20xxx unter Windows 7 bzw. 6.0.6002.18xxx und 6.0.6002.22xxx unter Vista Sp2)?

Es gibt verschiedene Updatetypen (Hotfix, Update, Sicherheitsupdate) und diese beinhalten verschiedene Dateien. Den genauen Details habe ich hier etwas genauer erklärt.

Fazit:

Als Fazit lässt sich ziehen, dass der WinSxS Ordner eine wichtige Funktion hat und NIEMALS bearbeitet werden sollte, bzw
sollten niemals Dateien dort gelöscht werden. Die eigentliche Größe des WinSxS Ordners ist viel geringer als gedacht
und beinhaltet nur die der Ordner Backup, Catalog und Manifests + die Dateien von Updates die durch andere Updates ersetzt wurden. Der Explorer täuscht euch also gewaltig wink.gif

Der Beitrag wurde von MagicAndre1981 bearbeitet: 12.12.2010, 22:27


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 30.07.2010, 16:36
Beitrag #2


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Um die wahre Größe es Ordners unter Windows ermitteln und zu sehen dass der WinSxS Ordner kein Platz einnimmt schaut euch das Tool in diesem Topic an:

http://www.winvistaside.de/forum/index.php?showtopic=3267


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 18.02.2011, 19:51
Beitrag #3


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Wie ihr die Größe nach der Installation des Windows 7 Service Pack 1 verringern könnt, habe ich hier erklärt:

http://www.winvistaside.de/forum/index.php?showtopic=3423


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 13.06.2011, 17:30
Beitrag #4


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Wenn ihr den Fehler "Side-by-Side-Konfiguration ungültig" bekommt dann lest euch folgendes Thema durch:

http://www.winvistaside.de/forum/index.php?showtopic=3575

Dort habe ich 3 Ursachen erläutert und wie man diese beheben kann.


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 22.08.2011, 17:21
Beitrag #5


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Wie man Funktionen in Windows ganz deinstalliert habe ich hier erklärt:

http://www.winvistaside.de/forum/index.php?showtopic=3836


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 26.08.2011, 16:23
Beitrag #6


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Microsoft erklärt in dem folgenden Blog wie Hardlinks im Zusammenhang mit dem WinSxS Ordne arbeiten:

http://blogs.technet.com/b/joscon/archive/...hard-links.aspx


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 01.09.2011, 17:25
Beitrag #7


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Wie ihr alte Treiber aus dem DriverStore "C:\Windows\System32\DriverStore" löschen könnt um so den WinSxS Ordner zu verkleinern habe ich hier beschrieben:

http://www.winvistaside.de/forum/index.php?showtopic=1705


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 26.02.2012, 17:16
Beitrag #8


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Unter Windows 8 könnt ihr mit DISM.exe Funktionen deaktivieren und die zu der Funktion gehörenden Dateien aus dem WinSxS Ordner löschen:

http://www.winvistaside.de/forum/index.php...ost&p=28022

Damit könnt ihr die Größe vom WinSxS Ordner verkleinern imao.gif


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 21.10.2012, 20:32
Beitrag #9


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Windows 8 Nutzer haben noch einen DISM Befehl um den WinSxS Ordner zu verkleinern

http://www.winvistaside.de/forum/index.php...ost&p=32935

Die Datenträgerbereinigung hat zusätzlich noch eine Funktion um den WinSxS Ordner zu verkleinern:



Über die "Windows Update Bereinigung" werden wie bei dem DISM Befehl alte Updates deinstalliert. Zusätzlich werden Dateien komprimiert, die nicht deinstaliert werden können, bzw die selten Benutzt werden wie der Manifest und Backup-Ornder.





Mit TreeSize könnt ihr schön sehen, dass die eigentliche Größe 4,7GB ist, wenn man mach der Kompression den tatsächlich benutzten Speicherplatz ansieht, sieht man eine Ersparnis bei mir von fast 500MB:





Das wird bei einem Windows 8, dass länger läuft sicher noch mehr Ersparnis bringen und SSD Besitzer sicher freuen smile.gif thumbup.gif


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 14.06.2013, 17:53
Beitrag #10


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





wenn die Datei blobs.bin im ManifestCache Ordner zu groß ist, dann könnt ihr diese Datei löschen. Windows erstellt diese neu.



--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 30.06.2013, 16:07
Beitrag #11


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Mit dem Update KB2821895 hat Microsoft eine neue Methode eingeführt um den WinSxS Ordner zu verkleinern.

Wie ich euch im Thema "Wie Funktionieren Updates in Windows Vista / Windows 7" erklärt habe sind in den Updates keine richtigen Daten enthalten, sondern Diff-Dateien die der DPX mit den alten Dateien aus dem WinSxS Ordner in eine neue Datei umwandelt.


Diesen Trick wendet MS nun wieder an. Nun werden alle Dateien die nicht in Benutzung sind und nicht deinstalliert werden können wieder in Diffs umkodiert. Das wird bei dem /startcomponentcleanup ausgeführt.

Nach der Ausführung seht ihr verschiedene Größen der Dateien im WinSxS Ordner:



Durch diese Kompression konnten in meiner 32Bit Test-VM knapp 1,7GB eingespart werden:

Vorher:


Nachher:


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 01.07.2013, 19:52
Beitrag #12


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





So Windows 8.1 bekommt neue DISM Befehle um a ) den WinSxS Ordner zu analysieren und b ) weiter zu verkleinern:



Über das /ResetBase wird die aktulle Version einer installierten Datei zur Basis Version und alle alten Dateien wie die RTM Dateien werden gelöscht!

QUELLTEXT
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase


ZITAT
All existing service packs and updates cannot be uninstalled after this command is completed. This will not block the uninstallation of future service packs or updates.


Der 2. Befehl gibt euch eine Analyze über den WinSxS Ordner (Größe, Vom Explorer gemeldete Größe, ob er bereinigt werden sollte):

QUELLTEXT
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore



Dabei seht ihr das hier:

QUELLTEXT
C:\>dism /online /cleanup-image /analyzecomponentstore

Deployment Image Servicing and Management tool

Version: 6.3.XXXX.0

Image Version: 6.3.XXXX.0

[==========================100.0%==========================]

Component Store (WinSxS) information:

Windows Explorer Reported Size of Component Store : 4.98 GB

Actual Size of Component Store : 4.88 GB    

Shared with Windows : 4.38 GB    

Backups and Disabled Features : 506.90 MB    

Cache and Temporary Data : 279.52 KB

Date of Last Cleanup : 2013-06-10 23:32:22

Number of Reclaimable Packages : 0

Component Store Cleanup Recommended : No

The operation completed successfully.


Qhellen:
http://technet.microsoft.com/en-us/library/dn251566.aspx
http://technet.microsoft.com/en-us/library/dn251565.aspx


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 09.10.2013, 17:26
Beitrag #13


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Windows 7 Nutzer können nun den WinSxS Ordner auch verkleinern, in dem überflüssige Updates deinstalliert werden.

Startet dazu die Datenträgerbereinigung und dort gibt es nun wie unter Windows 8 einen Eintrag "Windows Update Bereinigung":



Um zu sehen welche Updates entfernt wurden, öffnet die Datei "c:\Windows\Logs\CBS\DeepClean.log".


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post
MagicAndre1981
Beitrag 28.03.2014, 16:58
Beitrag #14


xperf Junkie
Gruppensymbol

Gruppe: Administrator
Beiträge: 27.455
Beigetreten: 18.09.2006





Microsoft erklärt hier noch die Funktionen um den WinSxS Ordner in Windows 8.1 zu verkleinern:

What’s New in Windows Servicing: Reduction of Windows Footprint : Part 2
http://blogs.technet.com/b/askcore/archive...int-part-2.aspx

ZITAT
Before we dive into Single Instancing and Delta Compression, I thought it would be a good idea, to talk about why this was introduced and how it worked in the previous Operating Systems. The reason for both Single Instancing and Delta Compression was to reduce the Windows (Windows 8.1 and Windows Server 2012 R2) footprint. Here is how and why:


--------------------
"A programmer is just a tool which converts caffeine into code" that's the reason why I can't sleep at night *g*

Go to the top of the page
 
+Quote Post

Closed TopicStart new topic

 

Vereinfachte Darstellung Aktuelles Datum: 21.09.2014, 05:03