Reducir tamaño de WinSxS en Windows con DISM: guía segura, comandos y programación

¿Tu carpeta C:\Windows\WinSxS crece y el Liberador de espacio apenas ayuda? Aquí aprenderás a reducirla de forma segura y efectiva con DISM y la tarea integrada de mantenimiento, sin romper el sistema ni borrar a mano.

Índice

Qué es WinSxS y por qué parece enorme

WinSxS es el almacén de componentes de Windows. En él se guardan múltiples versiones de los binarios de sistema para permitir la instalación, actualización y desinstalación de funciones, características y parches. El Explorador de archivos suele mostrar un tamaño “inflado” porque cuenta enlaces físicos (hardlinks) como archivos independientes. Por eso, antes de limpiar conviene medir el uso real con herramientas del propio sistema.

Regla de oro: no borres nada manualmente en WinSxS. Tomar propiedad, denegar permisos o eliminar carpetas a mano puede dejar el sistema inestable o impedir futuras actualizaciones.

Cómo medir el tamaño real

Usa DISM para conocer el espacio real que ocupa el almacén y el potencial de ahorro. Abre Símbolo del sistema o PowerShell como administrador y ejecuta:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

El informe distingue entre:

  • Tamaño reportado por el Explorador: puede contar enlaces físicos.
  • Tamaño real del almacén: lo que verdaderamente ocupa.
  • Respaldo y características deshabilitadas: lo que podría ahorrarse.
  • Paquetes susceptibles de reclamación y si se recomienda limpieza.

Ejemplo de salida (ilustrativa):

Windows Explorer Reported Size of Component Store : 8.57 GB
Actual Size of Component Store                   : 7.12 GB
Shared with Windows                              : 5.23 GB
Backups and Disabled Features                    : 1.21 GB
Cache and Temporary Data                         : 0.68 GB
Date of Last Cleanup                             : 2025-03-14 10:23:01
Number of Reclaimable Packages                   : 2
Component Store Cleanup Recommended              : Yes

Limpieza segura con DISM

Cuando el análisis recomienda limpieza o simplemente quieres consolidar componentes sustituidos, ejecuta:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup
  • Elimina versiones antiguas de componentes reemplazados por actualizaciones acumulativas recientes.
  • Mantiene la posibilidad de desinstalar las últimas actualizaciones si hiciera falta.

Limpieza profunda con ResetBase

Si necesitas exprimir al máximo el ahorro (por ejemplo, en VMs de referencia, dispositivos con poco almacenamiento o imágenes maestras), puedes consolidar a la base actual:

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

Advertencia importante: con /ResetBase ya no podrás desinstalar las actualizaciones existentes. Es seguro, pero reduce la capacidad de reversión. Úsalo solo cuando tengas claro que no necesitarás deshacer parches actuales.

Programar la tarea integrada de mantenimiento

Windows incluye una tarea que hace este trabajo por ti como parte del mantenimiento automático. Puedes ejecutarla al instante o dejarla programada.

Ejecutar ahora:

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

Comprobar su estado:

schtasks /Query /TN "\Microsoft\Windows\Servicing\StartComponentCleanup" /V /FO LIST

Habilitar si estuviera deshabilitada:

schtasks /Change /TN "\Microsoft\Windows\Servicing\StartComponentCleanup" /Enable

Si lo prefieres, crea una tarea propia que consolide componentes regularmente (sin /ResetBase por su impacto en la reversión):

schtasks /Create /SC WEEKLY /D SUN /RL HIGHEST /RU SYSTEM ^
/TN "\Mantenimiento\WinSxS_StartComponentCleanup" ^
/TR "Dism.exe /Online /Cleanup-Image /StartComponentCleanup"

Complementos que suman ahorro

  • Limpieza de Windows Update: desde Configuración > Sistema > Almacenamiento o el Liberador de espacio clásico, elimina cachés antiguas de actualización.
  • Carpeta de descarga de actualizaciones: el propio mantenimiento suele purgar lo necesario; evita borrar a mano la carpeta SoftwareDistribution salvo que estés resolviendo problemas concretos de actualización.

Desinstalar características no usadas

Las Features on Demand ocupan espacio aunque estén deshabilitadas. Puedes verlas y quitar lo que no uses (por ejemplo, idiomas adicionales, herramientas heredadas, etc.).

Listar características:

DISM /Online /Get-Features /Format:Table

Deshabilitar y eliminar binarios (libera espacio en disco):

DISM /Online /Disable-Feature /FeatureName:<Nombre> /Remove

Nota: si después quieres volver a instalar una característica eliminada con /Remove, puede que necesites Internet o un medio de instalación como origen.

Verificar resultados y reiniciar

Algunas eliminaciones requieren reinicio. Cuando el sistema te lo pida, reinicia y vuelve a medir:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Tabla comparativa de métodos

MétodoComandoQué eliminaReversibleRiesgoAhorro típicoUso recomendado
Limpieza estándar/StartComponentCleanupVersiones sustituidasBajoMedioMantenimiento periódico
Limpieza profunda/StartComponentCleanup /ResetBaseTodas las versiones anterioresNoMedioAltoImágenes maestras, dispositivos con poco espacio
Eliminar características/Disable-Feature /RemoveBinarios de features no usadasRequiere origen para reinstalarMedioVariableEntornos controlados

Ruta rápida recomendada

  1. Abrir consola como administrador.
  2. Analizar ahorro potencial: Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
  3. Ejecutar limpieza estándar: Dism.exe /Online /Cleanup-Image /StartComponentCleanup
  4. Reiniciar si se solicita.
  5. Valorar limpieza profunda: Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
  6. Programar mantenimiento: schtasks /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

Scripts listos para copiar

Guión mínimo sin perder reversión:

@echo off
title Limpieza segura de WinSxS
echo Analizando almacén de componentes...
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
echo.
echo Ejecutando limpieza estándar...
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
echo.
echo Volviendo a analizar para confirmar ahorro...
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
echo Hecho. Reinicia si el sistema lo solicita.
pause

Guión con registro y ejecución silenciosa:

@echo off
set LOG=%SystemRoot%\Logs\WinSxS%DATE:/=-%%TIME::=-%.log
echo Iniciando limpieza WinSxS > "%LOG%"
echo ===== ANALISIS INICIAL ===== >> "%LOG%"
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore >> "%LOG%"
echo ===== LIMPIEZA ESTANDAR ===== >> "%LOG%"
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /Quiet >> "%LOG%"
echo ===== ANALISIS FINAL ===== >> "%LOG%"
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore >> "%LOG%"
echo Log en: %LOG%

Programación personalizada semanal (cuenta del sistema):

schtasks /Create /SC WEEKLY /D SUN /RU SYSTEM /TN "WinSxS-Cleanup" ^
/TR "Dism.exe /Online /Cleanup-Image /StartComponentCleanup"

Qué ahorro es razonable

El ahorro depende de la historia de actualizaciones, del tiempo desde la última limpieza y de cuántas características tengas instaladas. En equipos al día, las ganancias pueden ser moderadas; en sistemas con meses de acumulaciones y sin mantenimiento, la reducción puede ser notable, especialmente tras la primera ejecución de /StartComponentCleanup. No esperes “milagros” si ya está todo consolidado.

Preguntas frecuentes y mitos

¿Por qué el Explorador dice una cifra y DISM otra? Por los enlaces físicos; la vista del Explorador no representa el uso real. DISM muestra el tamaño efectivo.

¿Es seguro borrar a mano carpetas de WinSxS? No. Es la forma más rápida de corromper el almacén y bloquear futuras actualizaciones.

¿Puedo automatizar la limpieza profunda? Técnicamente sí, pero no se recomienda programar /ResetBase de forma periódica porque elimina la reversión de parches vigentes. Mejor usarlo tras validar la estabilidad.

¿Afecta al rendimiento? No negativamente. Incluso puede mejorar tiempos de mantenimiento al reducir componentes obsoletos.

Solución de problemas comunes

  • DISM informa de corrupción o errores: ejecuta, por orden: Dism.exe /Online /Cleanup-Image /CheckHealth Dism.exe /Online /Cleanup-Image /ScanHealth Dism.exe /Online /Cleanup-Image /RestoreHealth Después, intenta de nuevo la limpieza.
  • Acceso denegado o necesitas elevación: abre la consola Como administrador.
  • La limpieza no libera mucho: puede que ya no existan versiones obsoletas o que el espacio esté ocupado por features instaladas que realmente usas.

Buenas prácticas de mantenimiento

  • Ejecuta /StartComponentCleanup de forma periódica o habilita la tarea integrada.
  • Revisa y elimina features no utilizadas con /Remove.
  • Evita herramientas de terceros que prometen “borrar WinSxS”.
  • Antes de /ResetBase, asegúrate de que tu entorno está estable y considera crear un punto de restauración o copia de seguridad.

Consideraciones en servidores

En ediciones de servidor y Server Core, el espacio es crítico. El enfoque es el mismo: análisis, limpieza estándar, y solo limpieza profunda cuando la estabilidad esté validada. Desplegar imágenes “capturadas” tras /ResetBase reduce el tamaño del VHDX y acelera el parcheo inicial.

Después de grandes actualizaciones

Tras un cambio de versión, Windows conserva archivos para revertir durante un tiempo. Pasado ese periodo, la limpieza estándar recupera bastante espacio. Asimismo, Configuración > Sistema > Almacenamiento permite eliminar instalaciones anteriores de Windows si ya no necesitas volver atrás.

Si necesitas recuperar características

Si borraste binarios con /Remove y luego quieres reinstalar, usa un origen:

DISM /Online /Enable-Feature /FeatureName:<Nombre> /All /Source:<ruta a SxS o ISO> /LimitAccess

Qué no debes hacer

  • No tomes propiedad de WinSxS ni cambies ACLs.
  • No borres a mano subcarpetas ni archivos.
  • No desactives por completo el mantenimiento automático del sistema.

Conclusión y siguiente paso

La forma fiable de reducir C:\Windows\WinSxS es analizar con DISM, limpiar componentes sustituidos y, si procede, consolidar con /ResetBase. Combinado con la tarea integrada y la eliminación de características en desuso, obtendrás el máximo ahorro sin comprometer la estabilidad.


Resumen operativo

REM 1) Analiza el ahorro real
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

REM 2) Limpieza segura
Dism.exe /Online /Cleanup-Image /StartComponentCleanup

REM 3) (Opcional) Limpieza profunda
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

REM 4) Ejecuta o habilita la tarea integrada
schtasks /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup" 
Índice