Automatizar la limpieza de WinSxS sin romper el Servicing Stack

Última actualización: 17/12/2025
Autor: Isaac
  • WinSxS es el almacén de componentes de Windows y no debe limpiarse manualmente para evitar dañar el Servicing Stack.
  • DISM y la tarea StartComponentCleanup permiten reducir el tamaño de WinSxS de forma segura, incluso de manera automatizada.
  • Parámetros avanzados como /ResetBase y /SPSuperseded liberan más espacio, pero limitan la capacidad de revertir actualizaciones.
  • La limpieza de WinSxS debe integrarse en un plan global de mantenimiento junto con cleanmgr y la eliminación de archivos temporales.

Limpieza segura de carpeta WinSxS en Windows

La carpeta WinSxS es uno de esos rincones de Windows que asusta cuando miras su tamaño desde el Explorador de archivos: varios gigas ocupados y la tentación inmediata de borrarla a mano para recuperar espacio. Pero en este caso tocar donde no se debe puede dejar el sistema hecho un desastre y romper el Servicing Stack, que es justo lo que se encarga de gestionar las actualizaciones y el propio almacén de componentes.

La buena noticia es que sí se puede automatizar la limpieza de WinSxS sin cargarse nada si se utilizan las herramientas integradas de Windows (Programador de tareas, DISM y Liberador de espacio en disco) de forma correcta. En este artículo veremos, paso a paso y con detalle, cómo funciona WinSxS, qué hace realmente grande la carpeta, cómo analizarla y qué métodos existen para limpiarla de forma segura en Windows 10 y versiones de servidor modernas.

Qué es realmente WinSxS y por qué no debes borrarla a mano

La carpeta C:\Windows\WinSxS es el almacén de componentes de Windows, es decir, el repositorio donde se guardan todas las versiones de los componentes del sistema, funciones opcionales, roles de servidor y actualizaciones instaladas. Cada vez que Windows se actualiza, se van almacenando nuevas versiones de archivos del sistema y, durante un tiempo, también se conservan las anteriores para poder revertir cambios o desinstalar actualizaciones y Service Packs.

WinSxS está muy ligada a la tecnología Side-by-side (SxS), que nació para acabar con el famoso “infierno de las DLL” (DLL Hell) provocado por conflictos de versiones, DLL sobrescritas o entradas de registro incorrectas. Gracias a SxS, Windows puede almacenar varias versiones de la misma DLL en WinSxS y cargar la que cada aplicación necesita, guiándose por el manifiesto de ensamblado incluido en el ejecutable.

Algo que confunde mucho es que el tamaño que muestra el Explorador en las propiedades de WinSxS no es el tamaño real en disco. Dentro de esta carpeta hay tanto archivos físicos como un montón de hard links hacia archivos que en realidad residen en otras rutas de C:\Windows. El Explorador cuenta todo como si fueran copias independientes, mientras que el sistema de archivos sabe que muchos de esos datos son compartidos.

Por todo esto, eliminar archivos manualmente dentro de WinSxS es una muy mala idea: puedes dejar componentes huérfanos, romper dependencias internas y, sobre todo, dañar el Servicing Stack, que es el conjunto de componentes que se encarga de instalar, desinstalar y mantener actualizaciones y características de Windows. Si el Servicing Stack se rompe, las actualizaciones comienzan a fallar y reparar el sistema puede complicarse muchísimo.

Automatizar limpieza WinSxS sin romper Servicing Stack

Cómo calcula Windows el tamaño real de WinSxS

Para saber de verdad cuánto ocupa WinSxS, no tiene sentido fiarse solo del Explorador. Microsoft proporciona comandos específicos, vía DISM, que analizan el almacén de componentes y diferencian entre espacio realmente utilizado, datos compartidos con el sistema y copias de seguridad que podrían limpiarse. Puedes consultar comandos y procedimientos para reparar la imagen en comandos específicos.

El comando clave es: Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore, que se ejecuta desde un símbolo del sistema con privilegios de administrador. Este análisis muestra varios datos importantes: tamaño reportado por el Explorador, tamaño real del almacén, espacio compartido con Windows, copias de seguridad y características deshabilitadas, caché temporal, fecha del último mantenimiento y si se recomienda o no ejecutar una limpieza.

  Reconocimiento de objetos desde la webcam: guía práctica y opciones reales

Uno de los campos más relevantes es “Número de paquetes recuperables”, que indica cuántos paquetes antiguos o reemplazados se podrían eliminar mediante las tareas de limpieza. Si el informe marca que el “Nettoyage du magasin de composants recomendado” (o texto equivalente en tu idioma) es “Sí”, DISM considera que merece la pena lanzar una limpieza de componentes.

Hay que tener en cuenta que incluso después de limpiar WinSxS la cifra de subcarpetas puede seguir siendo enorme (miles de directorios), y el tamaño que se ve en las propiedades de la carpeta puede cambiar poco. El indicador que de verdad importa es el espacio libre global de la unidad del sistema, que es el que subirá tras una limpieza efectiva.

Cómo funciona la limpieza automática con la tarea StartComponentCleanup

Programador de tareas StartComponentCleanup

Desde Windows Server 2012 y Windows 8 en adelante, Microsoft incluye una tarea programada llamada StartComponentCleanup que se encarga de podar el almacén de componentes automáticamente. Esta tarea se ejecuta cuando el sistema está inactivo y va eliminando versiones obsoletas de componentes del sistema que ya han sido reemplazados por versiones más recientes.

La ruta de la tarea en el Programador de tareas es: Programador de tareas (Local) → Biblioteca del Programador de tareas → Microsoft → Windows → Servicing → StartComponentCleanup. Desde ahí puedes ver su estado, programaciones y, si quieres, lanzarla manualmente con el botón “Ejecutar”.

Cuando StartComponentCleanup se lanza de forma automática, respeta un período de gracia de 30 días desde la instalación de un componente actualizado. Eso permite, por ejemplo, desinstalar una actualización problemática durante ese tiempo. Una vez pasado el plazo, las versiones anteriores de los componentes pueden eliminarse sin que el sistema pierda capacidad de revertir nada importante.

Hay dos limitaciones importantes de esta tarea integrada: por un lado, está configurada con un tiempo máximo de ejecución de 1 hora, por lo que en sistemas con un WinSxS muy inflado es posible que no acabe toda la limpieza de una sola pasada; por otro, si algo en el sistema está mal (como el propio Servicing Stack), la tarea puede fallar con errores como 0x80070002 – El sistema no puede encontrar el archivo especificado. Para problemas de actualización y fallos relacionados con el mantenimiento conviene revisar causas habituales en errores de Windows Update.

En entornos con muchos servidores se han visto casos en los que StartComponentCleanup estaba siempre fallando, con la carpeta WinSxS creciendo sin control. En estos escenarios, forzar la tarea desde el Programador de tareas no servía de nada, y era necesario pasar antes por comandos DISM para reparar la imagen y luego volver a habilitar la tarea, que de nuevo empezaba a funcionar y conseguía ahorrar del orden de 10 GB por servidor.

Uso de DISM para limpiar WinSxS sin romper el Servicing Stack

Si quieres más control que el que da la tarea programada, el siguiente nivel es DISM (Deployment Image Servicing and Management). Esta herramienta de consola permite ejecutar distintas operaciones sobre la imagen en línea de Windows 10 o Windows Server, como analizar, limpiar componentes o tratar con Service Packs.

Para utilizar DISM es imprescindible abrir el símbolo del sistema como administrador. En Windows 10 puedes buscar “CMD” en el menú Inicio, hacer clic derecho sobre “Símbolo del sistema” y elegir “Ejecutar como administrador”. Sin esos privilegios, DISM no podrá tocar el almacén de componentes ni el Servicing Stack.

El comando básico para limpiar versiones anteriores de componentes es: Dism.exe /online /Cleanup-Image /StartComponentCleanup. Este parámetro hace algo muy similar a la tarea StartComponentCleanup del Programador de tareas, pero con dos diferencias importantes: no espera 30 días para eliminar versiones antiguas y no tiene la limitación de 1 hora de ejecución.

La ejecución de /StartComponentCleanup puede tardar bastante tiempo en equipos con WinSxS muy grande, sobre todo en servidores donde se han ido instalando años de parches. En algunos casos se ha visto funcionando durante más de 8 horas. Mientras no dé errores y avance al 100 %, es normal tener paciencia y dejarlo terminar.

  How you can Get better Deleted Emails On iPhone and iPad

Si tras ejecutar /StartComponentCleanup no ves reducción de tamaño aparente en la carpeta, comprueba primero el informe de /AnalyzeComponentStore y el espacio libre de la unidad. Puede que simplemente no hubiera muchos paquetes recuperables, o que la mayor parte del espacio esté compartido con Windows y no sea elegible para limpieza.

Opciones avanzadas de DISM: /ResetBase y /SPSuperseded

Cuando necesitas liberar todavía más espacio y tienes claro que tu sistema es estable, hay parámetros de DISM más agresivos que pueden ayudarte, siempre con la advertencia de que reducen la capacidad de deshacer ciertas actualizaciones.

El modificador /ResetBase se combina con /StartComponentCleanup para eliminar todas las versiones sustituidas de cada componente del almacén. El comando completo quedaría así: Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase. Tras esto, todos los componentes se “consolidan” en su versión actual y ya no será posible desinstalar las actualizaciones que se hayan aplicado hasta ese momento. Si necesitas gestionar desinstalaciones concretas en entornos más nuevos, consulta cómo eliminar una actualización concreta.

Usar /ResetBase es ideal en equipos donde no tienes previsto revertir parches, por ejemplo, estaciones de trabajo muy controladas o imágenes maestras antes de ser capturadas para desplegar en muchos equipos. A cambio del espacio que se recupera, sacrificas la opción de hacer marchar atrás con Windows Update a fechas anteriores a la consolidación.

Otro parámetro interesante es /SPSuperseded, pensado para Service Packs en sistemas más antiguos. El comando Dism.exe /online /Cleanup-Image /SPSuperseded elimina los archivos de copia de seguridad necesarios para desinstalar el Service Pack instalado. Si lo ejecutas, ganarás espacio, pero ya no podrás desinstalar dicho Service Pack. En Windows Server 2008 y equivalentes, este parámetro se usaba precisamente cuando /StartComponentCleanup no existía o no se reconocía.

Al lanzar /SPSuperseded en un sistema sin copias de Service Pack, DISM simplemente avisará de que no ha encontrado archivos de copia de seguridad y mostrará el típico mensaje de que la operación ha finalizado correctamente sin realizar cambios. En sistemas actuales sin Service Packs “clásicos”, este parámetro suele ser menos relevante.

Cómo integrar la limpieza de WinSxS en el mantenimiento periódico

La limpieza de WinSxS no debería verse como una acción aislada y desesperada cuando el disco está al límite, sino como parte de una estrategia de mantenimiento de Windows más amplia. Si se combina con otras tareas de limpieza del sistema, se puede mantener el rendimiento y el espacio en disco bajo control durante años.

Una primera pieza de esa estrategia es aprovechar el Liberador de espacio en disco (cleanmgr.exe), que sigue estando disponible en Windows 10 y permite eliminar archivos temporales, volcados de memoria, restos de actualizaciones y muchos otros elementos no esenciales. Lanzándolo como administrador desde Win + R escribiendo cleanmgr, puedes elegir la unidad del sistema y, tras analizar, activar la casilla de “Windows Update” para borrar actualizaciones antiguas no necesarias. Si necesitas una guía práctica, revisa cómo usar cleanmgr.

Otra zona clave es C:\Windows\Temp, donde se acumulan archivos temporales de sistema y aplicaciones. Se pueden borrar manualmente (con permisos de administrador) o dejar que el propio Liberador de espacio en disco haga el trabajo. Conviene revisar esta carpeta de vez en cuando, sobre todo si el equipo lleva mucho tiempo sin formatearse.

Las descargas de Windows Update se almacenan en C:\Windows\SoftwareDistribution\Download. Tras instalarse correctamente las actualizaciones, esos archivos ya no son necesarios. Para limpiarlos de forma segura, es buena práctica detener primero el servicio de actualización con net stop wuauserv, vaciar el contenido de la carpeta y luego reanudar el servicio con net start wuauserv. Más detalles sobre esa carpeta y su gestión están en SoftwareDistribution.

  Cómo arrancar Windows 7/8 y 10 en modo seguro desde el arranque o la BIOS

No hay que olvidar el impacto de otros elementos pesados del sistema como el archivo de hibernación y los volcados de memoria. Si no usas la hibernación, puedes desactivarla con powercfg -h off, lo que elimina C:\hiberfil.sys y libera varios gigas. En cuanto a los volcados de memoria, borrar el contenido de C:\Windows\Minidump y el archivo C:\Windows\MEMORY.DMP puede dejar hueco extra si has tenido varias pantallas azules recientes.

Problemas habituales al intentar limpiar WinSxS y qué tener en cuenta

Uno de los escenarios más habituales es que, tras ejecutar los comandos DISM de limpieza, parezca que no se ha ganado espacio. El usuario ve que WinSxS sigue teniendo miles de subcarpetas y que el “Tamaño” que muestra el Explorador apenas cambia. Esto suele deberse a dos factores: primero, el efecto de los hard links, que distorsionan la cifra vista en las propiedades; segundo, que gran parte de los archivos de WinSxS están compartidos con el propio Windows y no son eliminables.

Cuando DISM indica que hay pocas copias de seguridad y características deshabilitadas, el margen real de reducción es limitado. En esos casos, los comandos /StartComponentCleanup y /ResetBase pueden tener un impacto moderado, pero no esperes pasar de 8 GB a 1 GB como por arte de magia. Lo razonable, según la experiencia en distintos entornos, es recuperar del orden de un 15-20 % del tamaño de WinSxS, más algo adicional si nunca se había ejecutado limpieza.

Otro problema típico es que StartComponentCleanup o los propios comandos DISM fallen por un Servicing Stack dañado, por actualizaciones a medio instalar o por ficheros que el sistema no encuentra. Errores como 0x80070002 en la tarea programada son una señal clara de que algo en la ruta o en los componentes del servicio de mantenimiento no está bien. En muchos casos, ejecutar primero un Dism.exe /Online /Cleanup-Image /RestoreHealth y luego repetir la limpieza ayuda a corregir el problema. Si te enfrentas a fallos de actualización más generales, revisa las causas típicas en fallos en Windows Update.

También hay que valorar el contexto antes de lanzarse a parámetros agresivos. En un servidor de producción crítico a veces interesa conservar cierta capacidad de desinstalar actualizaciones problemáticas, mientras que en un PC doméstico o una imagen de referencia destinada a clonar decenas de equipos puede compensar mucho usar /ResetBase o incluso limpiar Service Packs antiguos.

Finalmente, es importante entender que WinSxS no es el único culpable cuando la unidad C: se queda sin espacio. Muchas veces, una combinación de cachés de navegador, instaladores en C:\Windows\Installer, archivos temporales, logs y carpetas de usuario desbordadas contribuye tanto o más al problema. Por eso, la estrategia ganadora pasa por automatizar la limpieza de WinSxS y, a la vez, revisar el resto de puntos calientes del sistema. Para saber más sobre la carpeta del instalador y su gestión, consulta C:\Windows\Installer.

Dominar las herramientas de limpieza de WinSxS y del resto de carpetas críticas de Windows te permite recuperar varios gigas sin poner en riesgo el Servicing Stack ni la estabilidad del sistema; combinando Programador de tareas, DISM y el Liberador de espacio en disco, es posible mantener la máquina ligera y funcional durante años sin recurrir a soluciones drásticas ni a borrados manuales que luego pasan factura.

limpiar carpeta WinSxS
Artículo relacionado:
Limpiar la carpeta WinSxS en Windows: métodos seguros, comandos DISM y trucos para recuperar espacio