Cómo simplificar y reducir el tamaño de la carpeta WinSxS en Windows

¿Jugando con la carpeta WinSxS? Sí, es un poco raro cómo no para de crecer. Normalmente, se debe a que Windows guarda versiones antiguas de los archivos del sistema después de las actualizaciones, por si acaso quieres revertirlas. Mucha gente no se da cuenta, pero eliminar archivos directamente de ahí no solo es arriesgado, sino que puede arruinar el sistema por completo. Pero al mismo tiempo, hay maneras de reducir esta bestia sin causar un caos. Esta guía explica algunos métodos prácticos, aunque un poco engorrosos, para controlar esa carpeta, de modo que tu espacio en disco no esté rehén de archivos antiguos de Windows. Piensa en ello más como una limpieza que como un hackeo a ciegas. Al fin y al cabo, el objetivo es liberar espacio de forma segura y, quizás, solo quizás, hacer que las actualizaciones sean menos pesadas.

¿Cómo comprobar el tamaño real de la carpeta WinSxS en Windows 10?

La mayoría de la gente revisa C:\Windows\WinSxS con el Explorador de archivos y ve una cantidad enorme, pero eso es un poco engañoso. El Explorador de Windows, e incluso algunos administradores de archivos de terceros, cuentan los enlaces físicos como copias completas, por lo que parece más grande de lo que realmente es. Por eso recomiendo usar la herramienta DISM para realizar análisis honestos; está diseñada para esto:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Al ejecutarlo, se muestra toda la información esencial: el tamaño reportado, lo que se puede recuperar y cuánto espacio se podría liberar, con solo un comando rápido. En una configuración, podría indicar un tamaño de 8, 44 GB (que incluye los archivos referenciados y los restantes), pero el tamaño real en disco, gracias a los enlaces físicos, probablemente se acerque a los 8, 15 GB. Para obtener el tamaño real *en disco*, también se puede usar una herramienta de sysinternals como du, que informa el uso exacto del espacio en disco, ignorando los enlaces físicos.

¿Cómo limpiar de forma segura la carpeta WinSxS?

Aquí es donde la cosa se complica. Windows tiene un ingenioso comando llamado DISM que puede limpiar el almacén de componentes sin comprometer la estabilidad del sistema. La forma más sencilla de empezar es:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

Esto elimina los archivos reemplazados (las versiones antiguas que Windows conserva por seguridad y para opciones de reversión).Es similar a eliminar copias de seguridad, pero Windows lo mantiene todo bajo control.

Después de esto, comprueba cuánto espacio liberaste con:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

En mi equipo, esto solía ahorrar unos 2-3 GB, lo cual no está nada mal. Si realmente quieres ir más allá y deshacerte de *todas* las versiones antiguas, en Windows más recientes puedes ejecutar:

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

Esta opción es más agresiva; elimina todas las versiones anteriores de los componentes, dejando solo la más reciente. Pero cuidado: después de hacer esto, ya no podrás desinstalar actualizaciones anteriores ni revertirlas. Es como hacer que las cosas sean irreversibles, así que hazlo solo si estás seguro.

Otro consejo fácil: usa la herramienta Liberador de espacio en disco. Simplemente ejecuta cleanmgr como administrador, selecciona el disco del sistema, haz clic en Limpiar archivos del sistema y marca la casilla Limpiador de actualizaciones de Windows. Esto limpia los archivos de actualización restantes que se almacenan en segundo plano y ocupan espacio.

Windows también programa una tarea en segundo plano en el Programador de tareas (en \Microsoft\Windows\Servicing ) que ejecuta StartComponentCleanup automáticamente aproximadamente cada mes. Puedes activarla manualmente con:

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

Eso es como forzar una limpieza que Windows intenta hacer por sí solo de todos modos.

¿Qué pasa con la eliminación de funciones y roles no utilizados?

Si desea aún más espacio, puede ser útil eliminar funciones y roles de Windows no utilizados. Por ejemplo, en Windows Server, puede ejecutar:

Uninstall-WindowsFeature 

Pero en Windows 10, esto no está disponible de forma nativa. En su lugar, se usa DISM para deshabilitar funciones:

DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove

Esta herramienta eliminará los archivos de la función de WinSxS y reducirá el desorden. Ten en cuenta que no limpia las dependencias ni los archivos sobrantes, por lo que es una herramienta de reducción manual, no una limpieza a fondo. Además, úsala solo si realmente entiendes para qué sirve la función; de lo contrario, te arriesgas a dañarla.

Habilitar la compresión NTFS en WinSxS (si eres valiente)

Este es prácticamente el último recurso. Si ya has limpiado todo lo posible, puedes intentar comprimir la carpeta con NTFS. No es perfecto, y Windows funciona bien con archivos de sistema comprimidos, pero ayuda a reducir el tamaño, especialmente en SSD, donde ahorrar espacio es fundamental.

Nota: Primero deberías hacer una copia de seguridad de tu sistema; modificar los permisos o comprimir las carpetas del sistema puede causar problemas si no tienes cuidado. Así es como funciona:

  1. Abra un símbolo del sistema de administrador.
  2. Detenga los servicios Windows Installer y TrustedInstaller para evitar conflictos:
    sc stop msiserver sc stop TrustedInstaller sc config msiserver start= disabled sc config TrustedInstaller start= disabled
  3. Realice una copia de seguridad de las ACL actuales (permisos) por si acaso:
    icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t
  4. Tomar propiedad de la carpeta:
    takeown /f "%WINDIR%\WinSxS" /r
  5. Otorgue a su usuario permisos de control total:
    icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
  6. Aplicar compresión NTFS:
    compact /s:"%WINDIR%\WinSxS" /c /a /i *
  7. Restaurar propiedad y permisos después de:
    • Devolución de propiedad a TrustedInstaller:
      icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
    • ACL originales:
      icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
  8. Iniciar servicios de nuevo:
    sc config msiserver start= demand sc config TrustedInstaller start= demand

Después de hacer todo esto, vuelva a comprobar el tamaño. En un equipo decente, esto puede reducir considerablemente el tamaño, digamos de 9, 4 GB a unos 6, 5 GB. Tenga en cuenta que esto aumenta la carga de la CPU porque Windows descomprime los archivos sobre la marcha, así que es una compensación.

Siendo realistas, estos métodos no serán perfectos, y quizás tengas que probar un par para ver cuál funciona. Recuerda que manipular los archivos del sistema siempre es arriesgado, así que no te la juegues a menos que estés de acuerdo con los posibles pasos de recuperación.

Resumen

  • Utilice DISM para analizar y limpiar el almacén de componentes
  • Comprobar el ahorro de espacio después de los comandos de limpieza
  • Eliminar funciones no utilizadas con DISM o PowerShell (solo servidor)
  • Comprima WinSxS con compresión NTFS como último recurso
  • Siempre haga una copia de seguridad antes de realizar ajustes importantes, especialmente cuando se juega con los permisos.

Resumen

Intentar controlar el tamaño de la carpeta WinSxS no es precisamente fácil, pero con paciencia y los comandos adecuados, se puede lograr sin dañar nada. Verla reducirse en unos pocos gigabytes se siente como una pequeña victoria en la lucha contra el desorden. Solo recuerda: haz una copia de seguridad primero y no te arriesgues más de lo que te sientes seguro. Espero que esto te sirva como buen punto de partida; cruzo los dedos para que alguien pueda ahorrar algunos gigabytes extra.