A Propos

MS MVP Logo

View Marc Lognoul [MVP]'s profile on LinkedIn

Limite de Responsabilité

Le contenu de ce site, échantillons de codes, scripts ou fichiers de configuration sont délivrés "TEL QUEL" et ne confèrent aucun droit ni garantie. Ce site ne reflète en aucun cas les pensées, intentions, projets ou stratégies de nos employeurs, clients, amis ou membre de nos familles. Il est uniquement l’expression de nos opinions personnelles.

Notes Techniques et Tutos

    WinSxS: Toujours à l’origine de beaucoup de débats

    by Marc 25. janvier 2010 14:37

    La sortie de Windows Seven ne tarit pas vraiment le flot de questions sur le répertoire WinSxs, son utilitié et surtout sa taille…

    Qu’est-ce que WinSxS?

    WinSxS (SxS pour Side-By-Side soit côte-à-côte) est une technologie intégrée à Windows ainsi un emplacement de stockage centralisé pour les fichiers d’installation de Windows, des mises à jours et des application à conditions que celles-ci soient compatibles avec cette technologie.

    Les buts de cette technologie sont les suivants:

    • Améliorer voire garantir (grâce notamment à d’autres technologie connexe) l’intégrité du système, de ses dépendances et composants additionnels/optionnels
    • Palier aux problèmes récurrents de conflits de DLL qui affectent Windows depuis des années.

    Un garant de l’intégrité du système?

    Windows Vista et à fortiori Seven sont des systèmes modulables, en tous cas, beaucoup plus modulables que XP et ses prédécesseurs. Lors de l’installation, tous les fichiers sont copiés sur le disque dur même si certains sont liés à des fonctionnalités non-activées. Cela évite que par après, à l’activation de celles-ci, on ne se retrouve avec des conflit de version si par exemple, un service pack a été installé entretemps.

    Afin d’éviter les manipulations manuelles hasardeuses, les emplacements habituels du systèmes et des applications tels que “C:\Windows” ou “C:\Program Files” sont protégés par des permissions assez strictes qui empêche même l’administrateur ou le compte “SYSTEM” d’y effectuer des modifications de fichiers. Cela évite également toute modification par des processus malveillants même ci ceux-ci exploitent le contexte de sécurité d’un administrateur. Cette protection se voit renforcée grâce à l’UAC (User Account Control), encensé ou décrié, c’est selon…

    Seul le compte “TrustedInstaller” (Installateur approuvé) possède les permissions suffisantes pour modifier les fichiers et répertoires stockés dans ces emplacements.. Ce compte est en fait un compte de service, principalement responsable de toutes les installations de mises à jour, service pack, fonctionnalités etc… Il est d’ailleurs propriétaire de la plupart de ces fichiers. Donc, à moins de modifier ces permissions (opération non supportée), aucun moyen modifier le contenu de ces répertoires, WinSxS inclus.

    WinSxS, par la même occasion, permet également la désinstallation de Service Pack de manière propre et sans danger pour le système, pour peu que les fichiers originaux soient préservés (voir section “Et peut-on le nettoyer pour faire de la place?”)

    La solution aux problèmes de conflits de DLL?

    “Avant”, les applications ayant besoin d’un DLL donnée la recherche tout d’abord dans leur propre répertoire d’installation et faute de la trouver, cherchaient ensuite dans divers répertoires (les emplacements et ordre de priorité diffèrent selon la version de Windows et le paramétrage, voir MSDN - Dynamic-Link Library Search Order.

    Des DLL bien connus et très utilisées comme comdlg32 ou le runtime C++ par exemple, se retrouvaient à divers endroits à divers niveaux de versions

    Actuellement, et pour autant que l’application soit conforme à la technologie SxS, elle expose ses besoin en terme de DLL (et version) sous la forme d’un manifeste (fichier XML de configuration), contenant une liste de “dépendances”.

    Pourquoi ce répertoire utilise-t-il autant d’espace disque?

    Regardé par le biais d’un explorateur Windows, il semble en effet être un gouffre à Giga et c’est en grande partie le cas car il contient, en gros presque tous les fichiers nécessaires pour installer et maintenir Windows ainsi que les applications installées, à l’exception de celles antérieures à cette technologie bien entendu.

    En réalité, beaucoup de fichiers présents dans les sous-répertoires de WinSxS sont des “hardlinks”: un lien de très bas niveau qui pointe vers le fichier réel et se comporte exactement comme lui. Impossible de reconnaitre un hardlink en utilisant la commande DIR ou l’explorateur. L’outil en ligne de commande “FSUTIL hardlink list” permet d’afficher ces hardlink pour un fichier donné mais pas de lister tous ceux présdent dans un répertoire donné. A ma connaissance, seul l’outil non MS “FINDDUPE” permet de lister ceux-ci, via l’option “-hardlink”, voir http://www.sentex.net/~mwandel/finddupe/.

    Donc en résumé, l’espace disque utilisé en réalité en moindre que ce que représente le total de WinSxS et des autres répertoires car nombre de “doublons” donnent l’impression contraire. Note: la taille réelle d’un hardlink est en fait négligeable.

    Et peut-on le “nettoyer” pour faire de la place?

    Malgré ce que certains clament haut et fort dans les forums, il n’existe aucun moyen pour réduire de manière drastique la taille de ce répertoire, qui rappelons-le est moins volumineux que ce que l’Explorateur Windows ou la command DIR pourrait indiquer. Il faut égalemnt garder à l’esprit qu’il ne fera que grandir étant donné les MAJ du système et des applications. En attendant, on peut réduire sa taille de manière modérée par les méthodes suivantes:

    Question subsidiaire: peut-on déplacer ce répertoire?

    Pas à ma connaissance!

    Est-il nécessaire d’en prendre un backup

    Non, ce répertoire est lié au système et applications installées, pas au données des utilisateurs.

    Par contre, il rend également le système quasi parfaitement compatible au backup de type “Image”: Winimage, Acronis… Parce que, notamment, il prévient les dépendant sur les sources d’installation externes…

    Infos Complémentaires

    Marc

    Tags:

    Windows | Configuration Logicielle | Administration | Sécurité

    Les commentaires sont clos