Réduire la taille du dossier WinSxS (Windows 10/11) : DISM, StartComponentCleanup et bonnes pratiques

Gagnez de précieux Go sur votre SSD : voici un guide fiable et détaillé pour réduire la taille du dossier C:\Windows\WinSxS sous Windows 10/11 à l’aide d’outils intégrés (DISM, tâches planifiées, Capteur de stockage), sans risquer d’endommager le système.

Sommaire

Vue d’ensemble de la question

Le répertoire WinSxS grossit au fil des mises à jour car il conserve des versions de composants nécessaires au fonctionnement, à la sécurité et à la maintenance de Windows. C’est normal : Windows a besoin de ces copies pour activer/désactiver des fonctionnalités et revenir en arrière sur des correctifs. Néanmoins, il existe des méthodes officielles pour récupérer de l’espace en toute sécurité.

Réponse & solutions

Comprendre WinSxS

  • Dépôt de composants : WinSxS stocke toutes les versions nécessaires des fichiers système (bibliothèques, manifestes, métadonnées de composants). C’est la pierre angulaire du moteur de maintenance (CBS/servicing stack).
  • Liens en dur (hard links) : de nombreux fichiers apparaissent à plusieurs endroits (par ex. dans C:\Windows\System32) mais ne consomment l’espace qu’une seule fois sur le disque grâce aux liens en dur. L’Explorateur additionne ces doublons, surestimant la taille apparente.
  • Ne pas supprimer manuellement : enlever des fichiers dans WinSxS peut empêcher la désinstallation d’un patch, briser une fonctionnalité Windows ou bloquer de futures mises à jour. Évitez également de déplacer, compresser ou dédupliquer ce dossier via des utilitaires tiers.

Astuce : pour vérifier qu’un binaire système est lié à WinSxS, testez :

fsutil hardlink list C:\Windows\System32\notepad.exe

S’il renvoie un chemin dans WinSxS, c’est un lien en dur.

Nettoyage recommandé avec DISM

Ouvrez Invite de commandes ou PowerShell en administrateur (Windows + X → « Terminal (Admin) »), puis exécutez :

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
  • /StartComponentCleanup : supprime les versions remplacées (superseded) présentes uniquement pour la réversibilité.
  • /ResetBase : fixe la version la plus récente de chaque composant comme base définitive. Après cela, vous ne pourrez plus désinstaller les mises à jour remplacées. C’est l’option qui maximise le gain d’espace.

Si vous souhaitez conserver la possibilité de désinstaller certains correctifs, lancez d’abord un nettoyage sans /ResetBase :

Dism.exe /online /Cleanup-Image /StartComponentCleanup

Si DISM signale des incohérences (corruption du magasin de composants), réparez d’abord :

Dism.exe /online /Cleanup-Image /RestoreHealth

Une fois la santé rétablie, relancez le nettoyage.

Évaluer le gain avant/après

Pour mesurer l’espace réellement récupérable et éviter de se fier à la taille « gonflée » vue dans l’Explorateur, utilisez l’analyse DISM :

Dism.exe /online /Cleanup-Image /AnalyzeComponentStore

Le rapport présente notamment :

  • Component Store (WinSxS) size : taille calculée réelle du dépôt de composants.
  • Shared with Windows : fichiers liés en dur et partagés hors de WinSxS.
  • Backups and Disabled Features : espace récupérable via nettoyage et retrait des fonctionnalités inutiles.
  • Recommended Cleanup : indique si un nettoyage est pertinent.

Tâche planifiée intégrée

Windows possède une tâche automatique \Microsoft\Windows\Servicing\StartComponentCleanup qui s’exécute lorsque la machine est au repos. Vous pouvez l’exécuter à la demande :

  1. Ouvrez Planificateur de tâchesBibliothèque du PlanificateurMicrosoftWindowsServicing.
  2. Clic droit sur StartComponentCleanupExécuter.

Ou en ligne de commande :

schtasks /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

Cette tâche réalise un nettoyage non destructif (sans /ResetBase), idéal pour l’entretien régulier.

Fonctionnalités facultatives (Features on Demand)

Supprimer les fonctionnalités inutilisées retire leurs fichiers de WinSxS et peut libérer plusieurs centaines de Mo.

  • Interface : Paramètres → Applications → Fonctionnalités facultatives pour désinstaller ce dont vous n’avez pas besoin (XPS Viewer, composants hérités, etc.).
  • Langues : Paramètres → Heure & langue → Langue pour retirer les packs non utilisés (langues d’affichage, reconnaissance vocale, manuscrite).

En PowerShell/DISM :

:: Lister les fonctionnalités et leur état
Dism.exe /Online /Get-Features /Format:Table

:: Désactiver une fonctionnalité
Dism.exe /Online /Disable-Feature /FeatureName:Printing-XPSServices-Features

:: Supprimer le payload disque (réinstallation nécessitera Internet/média)
Dism.exe /Online /Disable-Feature /FeatureName:Printing-XPSServices-Features /Remove 
Fonctionnalité (exemples)Impact potentielRemarques
XPS Viewer / Services XPSJusqu’à quelques centaines de MoPeu utilisé ; la réactivation est possible si nécessaire.
Composants Media héritésModéréNe pas retirer si vous utilisez des codecs/features spécifiques.
Langues inutiliséesVariable (peut être élevé)Inclut clavier, parole, manuscrit, OCR.

Capteur de stockage (Windows 10/11)

Activez Paramètres → Système → Stockage → Capteur de stockage. Il automatise plusieurs opérations de maintenance : suppression de fichiers temporaires, nettoyage Windows Update, vidage de Téléchargements selon règles, etc. Combinez-le avec la tâche StartComponentCleanup pour un entretien discret et continu.

Limites et bonnes pratiques

  • Taille incompressible : même après nettoyage, WinSxS conserve une base minimale nécessaire au fonctionnement et à la sécurité.
  • Privilèges administrateur : exécutez toujours DISM/Planificateur en admin. Une sauvegarde ou un point de restauration est recommandé avant tout nettoyage majeur.
  • Évitez les « optimiseurs » : les utilitaires tiers promettant d’« amincir » Windows suppriment parfois des éléments critiques. Les outils intégrés (DISM, tâches planifiées) sont le chemin sûr.
  • Ne pas déplacer/compresser : n’appliquez pas de compression NTFS sélective sur WinSxS, ne le déplacez pas vers un autre volume et n’utilisez pas de liens symboliques. Vous risquez des conflits de maintenance.

Procédure guidée (pas à pas)

  1. Mesurer : exécutez Dism /online /Cleanup-Image /AnalyzeComponentStore et notez les champs « Backups and Disabled Features » et « Recommended Cleanup ».
  2. Nettoyer : lancez /StartComponentCleanup. Redémarrez si demandé.
  3. Optimiser au maximum (optionnel) : relancez avec /ResetBase pour figer la dernière version et maximiser le gain.
  4. Alléger les fonctionnalités : retirez XPS Viewer, langues, et toute fonctionnalité non utilisée via Paramètres ou DISM (/Disable-Feature /Remove).
  5. Automatiser : vérifiez/activez le Capteur de stockage et exécutez périodiquement la tâche StartComponentCleanup.
  6. Vérifier : relancez l’analyse DISM pour constater le gain réel.

Scripts prêts à l’emploi

Ce script PowerShell effectue une analyse, exécute un nettoyage raisonné, journalise les résultats et, si vous l’autorisez, applique /ResetBase :

# Exécuter en tant qu'Administrateur
$log = "$env:ProgramData\WinSxS-Cleanup-$(Get-Date -Format yyyyMMdd-HHmmss).log"

"=== AVANT ===" | Tee-Object -FilePath $log
dism /online /Cleanup-Image /AnalyzeComponentStore | Tee-Object -FilePath $log -Append

Write-Host "Nettoyage de base (non destructif)..."
dism /online /Cleanup-Image /StartComponentCleanup | Tee-Object -FilePath $log -Append

# Option : activer le bloc ci-dessous pour maximiser le gain (irréversible)
#$confirm = Read-Host "Appliquer /ResetBase (I R R E V E R S I B L E) ? o/n"
#if ($confirm -eq 'o') {
#  dism /online /Cleanup-Image /StartComponentCleanup /ResetBase | Tee-Object -FilePath $log -Append
#}

"=== APRÈS ===" | Tee-Object -FilePath $log -Append
dism /online /Cleanup-Image /AnalyzeComponentStore | Tee-Object -FilePath $log -Append

Write-Host "Journal : $log"

Mesurer correctement la taille

L’explorateur Windows additionne des fichiers partagés par liens en dur. Pour un chiffre fidèle, référez-vous toujours au rapport AnalyzeComponentStore. Évitez les utilitaires qui parcourent naïvement l’arborescence : ils confondent souvent « copies physiques » et « références ».

CommandeObjectifMises à jour désinstallables après coup ?
Dism /online /Cleanup-Image /StartComponentCleanupSupprimer les versions obsolètesOui
Dism /online /Cleanup-Image /StartComponentCleanup /ResetBaseSupprimer et figer la version actuelleNon, irréversible
Dism /online /Remove-Package /PackageName:<KB...>Désinstaller un patch spécifiqueOui, si /ResetBase n’a pas été utilisé
dism /online /Cleanup-Image /SPSuperseded (anciens OS)Nettoyer anciens points de restauration de Service PackN/A sur Windows 10+

Comparatif des méthodes

MéthodeGain typiqueRisqueRéversibilitéComplexitéQuand l’utiliser
StartComponentCleanupFaible à moyenTrès faibleRéversibleSimpleEntretien périodique
StartComponentCleanup + ResetBaseMoyen à élevéFaible (si système sain)IrréversibleSimpleManque d’espace critique, image stable
Désactivation + Remove (FOD)VariableFaible à moyenRéversible avec média/InternetMoyenneComposants clairement inutiles
Tâche planifiée ServicingFaibleTrès faibleRéversibleTrès simpleMaintenance silencieuse

Dépannage des erreurs courantes DISM

  • Erreur 87 – Paramètre inconnu : vérifiez l’orthographe et les espaces. Exemple correct : /StartComponentCleanup (sans tiret).
  • Erreur 112 – Espace disque insuffisant : libérez temporairement de l’espace (vider corbeille, gros dossiers), puis relancez.
  • 0x800f081f – Source introuvable : lié surtout à /RestoreHealth. Montez un ISO de la même version de Windows et fournissez une source valide (/Source:WIM:D:\sources\install.wim:1 /LimitAccess), puis relancez la réparation, puis le nettoyage.
  • Nettoyage bloqué ou très lent : vérifiez que Windows Update est fonctionnel, redémarrez, et réessayez en mode « Terminal (Admin) ». Consultez C:\Windows\Logs\DISM\dism.log pour diagnostiquer.

Cas particuliers (poste, portable, serveur)

  • PC portable/SSD de faible capacité : privilégiez /ResetBase après une période de stabilité (pas de besoin de désinstaller des KB récentes).
  • Postes gérés en entreprise : respectez la politique de patching ; évitez /ResetBase si l’équipe IT exige la possibilité de rollback.
  • Windows Server : le retrait de rôles/fonctionnalités (et l’état « Removed ») offre un gain majeur. Évaluez l’impact sur l’image de référence et le patch management.

FAQ express

Pourquoi l’Explorateur indique-t-il 10–15 Go alors que DISM annonce moins ?
À cause des liens en dur : l’Explorateur compte plusieurs fois le même fichier. AnalyzeComponentStore donne la mesure fiable.

Windows.old versus WinSxS ?
Windows.old est un dossier de sauvegarde post-mise à niveau. Il se supprime via Paramètres → Système → Stockage → Fichiers temporaires. WinSxS est un dépôt actif que l’on nettoie avec DISM.

Puis-je compresser WinSxS ?
Non recommandé. La compression/déplacement rompt les garanties de maintenance et peut provoquer des échecs de mise à jour.

Quand utiliser /ResetBase ?
Après validation que votre système est stable et que vous n’aurez pas à revenir sur de vieux correctifs. Idéal quand l’espace est critique.

Checklist récapitulative

  • Lancer AnalyzeComponentStore pour mesurer.
  • Nettoyer via /StartComponentCleanup.
  • Si nécessaire, compléter avec /ResetBase (irréversible).
  • Retirer fonctionnalités/langues inutiles (/Disable-Feature /Remove).
  • Activer Capteur de stockage et vérifier la tâche planifiée Servicing.
  • Contrôler le gain en relançant l’analyse.
  • Conserver de bonnes pratiques (sauvegarde, admin, pas d’outils tiers risqués).

Exemples de sessions

Scénario A : Gain rapide et sûr

Dism /online /Cleanup-Image /AnalyzeComponentStore
Dism /online /Cleanup-Image /StartComponentCleanup
Dism /online /Cleanup-Image /AnalyzeComponentStore

Idéal pour l’entretien régulier. Généralement, quelques centaines de Mo à 1–2 Go récupérés selon l’historique de mises à jour.
Scénario B : Espace critique sur SSD

Dism /online /Cleanup-Image /AnalyzeComponentStore
Dism /online /Cleanup-Image /RestoreHealth
Dism /online /Cleanup-Image /StartComponentCleanup /ResetBase
Dism /online /Cleanup-Image /AnalyzeComponentStore

Maximise le gain, au prix de la désactivation du retour arrière sur les KB remplacées.
Scénario C : Poste multilingue

Dism /online /Cleanup-Image /AnalyzeComponentStore
# Retrait des packs inutiles via Paramètres
# puis :
Dism /online /Cleanup-Image /StartComponentCleanup

Les packs de langue complets (affichage + voix + écriture) peuvent consommer plusieurs centaines de Mo chacun.

Bonnes pratiques supplémentaires

  • Tenir Windows à jour : un système à jour et sain (/RestoreHealth sans erreur) se nettoie mieux.
  • Surveiller les journaux : en cas d’échec, consultez C:\Windows\Logs\DISM\dism.log pour les codes précis.
  • Planifier : ajoutez un rappel trimestriel pour exécuter l’analyse et, si nécessaire, le nettoyage.

En bref

Pour réduire en toute sécurité la taille de C:\Windows\WinSxS, utilisez l’arsenal Windows : DISM (/StartComponentCleanup, puis /ResetBase si vous acceptez l’irréversibilité), la tâche planifiée StartComponentCleanup, et la suppression contrôlée des fonctionnalités facultatives et packs de langue. Évitez les suppressions manuelles et les utilitaires intrusifs. Le bon indicateur est le rapport AnalyzeComponentStore, pas la taille affichée par l’Explorateur. Suivre cette procédure vous donnera le meilleur compromis entre gain d’espace, stabilité et sécurité.


Résumé opérationnel

  • Commande clé : Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
  • Mesure : Dism.exe /online /Cleanup-Image /AnalyzeComponentStore
  • Automatisation : tâche planifiée \Microsoft\Windows\Servicing\StartComponentCleanup + Capteur de stockage
  • Complément : retirer les fonctionnalités/langues inutiles (/Disable-Feature /Remove)
Sommaire