¿Cómo limpiar y comprimir la carpeta WinSxS en Windows 10 / Windows Server?

En este artículo hablaremos sobre el WinSxS carpeta en Windows, las razones de su crecimiento constante y las formas de limpiarla. los C: Windows WinSxS directorio es el repositorio de componentes de Windows. Este directorio contiene archivos DLL, binarios y XML necesarios para la instalación y operación de varios roles o características de Windows. Al instalar las actualizaciones de Windows (generalmente esto sucede todos los meses), la nueva versión del componente actualizado se instala en el sistema, mientras que la anterior se guarda en la carpeta WinSxS (es necesario proporcionar compatibilidad y hacer posible la reversión a las versiones anteriores de los componentes al desinstalar la actualización de Windows).

El directorio WinSxS ha aumentado de tamaño con el tiempo. Además, su tamaño no está limitado por nada (aunque en la práctica el tamaño de la carpeta WinSxS en Windows 10 rara vez supera los 15-20 GB).

lista de archivos en winsxs en windows 10

En este artículo, repasaremos las formas más seguras de limpiar la carpeta WinSxS en Windows 10 y Windows Server 2016/2019:

  • Optimizar la tienda de componentes y elimine las versiones antiguas de los archivos de componentes de Windows que quedan después de instalar las actualizaciones de Windows;
  • Funciones bajo demanda – le permite eliminar componentes de Windows no utilizados del disco;
  • Habilitar la compresión NTFS en la carpeta WinSxS: una forma de reducir el tamaño del directorio WinSxS mediante la compresión incorporada del sistema de archivos NTFS.

Muchos usuarios preguntan a menudo: ¿si es posible eliminar manualmente archivos de la carpeta WinSxS? La respuesta es categóricamente NO! Estas acciones pueden dañar su imagen de Windows. Aunque algunos intentos de eliminar archivos de la carpeta WinSxS pueden tener éxito, este método no se recomienda.

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

La forma más sencilla de obtener el tamaño actual de la carpeta WinSxS en Windows es abrir las propiedades del %windir%WinSxS carpeta en el Explorador de archivos (o use un script de PowerShell). Pero tenga en cuenta que la mayoría de los administradores de archivos (incluido el Explorador de archivos) muestran un tamaño de carpeta WinSxS ligeramente mayor que el que ocupa en el disco.

El hecho es que el directorio WinSxS contiene una gran cantidad de enlaces duros (enlaces simbólicos) a archivos del sistema en otras carpetas. Los administradores de archivos, al calcular el tamaño de la carpeta WinSxS, tienen en cuenta el tamaño de los archivos a los que hacen referencia los enlaces físicos, pero esto no es correcto.

Puede averiguar el tamaño real de la carpeta WinSxS en el disco usando el du herramienta de Sysinternals:
du -v c:windowswinSXS
cómo verificar el tamaño real de la carpeta winsxs usando la herramienta du

También puede analizar el tamaño del almacén de componentes (carpeta WinSxS) usando el comando DISM:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

dism analizar almacén de componentes: informe de tamaño real de la carpeta winsxs

Deployment Image Servicing and Management tool
[==========================100.0%==========================]
Component Store (WinSxS) information:
Windows Explorer Reported Size of Component Store : 8.44 GB
Actual Size of Component Store : 8.15 GB
Shared with Windows : 5. 74GB
Backups and Disabled Features : 1.97 GB
Cache and Temporary Data : 438.31 MB
Date of Last Cleanup : 2021-02-22 20:37:29
Number of Reclaimable Packages : 1
Component Store Cleanup Recommended : Yes
The operation completed successfully.

Como puede ver, en este caso, puedo reducir el tamaño de la carpeta WinSxS en (1,97 + 0,44) Gb.

¿Cómo limpiar el almacén de componentes (carpeta WinSxS) en Windows?

La forma más rápida y sencilla de borrar el almacén de componentes de Windows (la carpeta WinSxS) es optimizar el almacenamiento con el comando:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

tienda de componentes clenup winsxs con Dism StartComponentCleanup

los StartComponentCleanup La opción DISM es compatible con todas las versiones de Windows a partir de Windows 8 y Windows Server 2012.

Una vez completada la limpieza, compruebe el tamaño actual del almacén de componentes:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

En mi ejemplo, esto redujo el tamaño de la carpeta WinSxS en 2,4 GB.

los /StartComponentCleanup La opción tiene un adicional / ResetBase opción que le permite eliminar todas las versiones anteriores de los componentes que quedan después de instalar las actualizaciones de Windows. Después de eso, no podrá eliminar las actualizaciones instaladas o los Service Packs, y el Desinstalar El botón desaparecerá del Desinstalar una actualización Elemento del Panel de control). Para limpiar versiones antiguas de componentes, ejecute:

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

En Windows 7 y Windows Server 2008 R2, se utilizó una opción DISM adicional para limpiar las versiones antiguas de los componentes que quedaron después de instalar los Service Packs.

DISM /online /Cleanup-Image /spsuperseded

También puede eliminar archivos de actualización antiguos mediante el asistente «Liberador de espacio en disco»:

  1. Ejecutar el cleanmgr comando como administrador;
  2. Seleccione el disco y en la siguiente ventana, haga clic en «Limpiar archivos del sistema» botón;Limpiar archivos del sistema
  3. Luego seleccione el «Limpieza de actualizaciones de Windows» opción. La herramienta Liberador de espacio en disco mostrará cuánto espacio puede liberar eliminando archivos antiguos de actualización de Windows. En mi ejemplo, esto es 324 MB. Haga clic en Aceptar para iniciar la limpieza.Limpieza de actualizaciones de Windows con la herramienta cleanmgr

Una vez que termine de limpiar el almacén de componentes con DISM, verifique cuánto espacio en disco se ha liberado.
Además, el Programador de tareas de Windows 10 / Windows Server 2016 tiene una tarea de mantenimiento automático especial que optimiza y limpia regularmente la carpeta WinSxS (la misma operación que DISM con el parámetro StartComponentCleanup). Esta StartComponentCleanup La tarea se encuentra en la sección Microsoft Windows Servicing del taskschd.msc. Esta tarea se ejecuta en segundo plano y elimina automáticamente las versiones de componentes anteriores a 30 días que han sido reemplazadas por archivos más nuevos.

Puede iniciar esta tarea manualmente de esta manera:

schtasks.exe /Run /TN "MicrosoftWindowsServicingStartComponentCleanup"

Tarea StartComponentCleanup

Eliminar funciones y funciones no utilizadas de Windows 10 / Windows Server

En un artículo anterior, cubrimos el concepto de Funciones bajo demanda en Windows, que permite eliminar archivos binarios de los roles no utilizados de la carpeta WinSxS. Puede eliminar los binarios de funciones y características en Windows Server mediante el cmdlet Uninstall-WindowsFeature de PoweShell.

Windows 10 no tiene el cmdlet Uninstall-WindowsFeature y debe usar DISM.exe para eliminar funciones de la imagen de Windows.

Tenga en cuenta que DISM, a diferencia del Uninstall-WindowsFeature Cmdlet de PowerShell, no elimina las características dependientes.

Se puede obtener una lista completa de las características disponibles en la imagen de Windows 10 usando el comando:
DISM.exe /Online /English /Get-Features /Format:Table
Lista de funciones de obtención de DISM

Para eliminar, por ejemplo, el TelnetClient característica de la imagen de Windows (de la carpeta WinSxS), ejecute el comando:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
DISM Desactivar función Eliminar

Si muestra la lista de todas las funciones bajo demanda disponibles en Windows, verá que el estado del componente ha cambiado a Deshabilitado con carga útil eliminada.

Por lo tanto, Windows permite reducir significativamente el tamaño de la carpeta WinSxS eliminando los componentes no utilizados del disco. Lo único es que este método de limpieza se adapta solo a los usuarios avanzados, que están familiarizados con las características de Windows 10 y su propósito.

¿Cómo habilitar la compresión NTFS en la carpeta WinSxS en Windows 10?

Otra forma de reducir el tamaño del directorio WinSxS en Windows 10 es comprimir el contenido del directorio en el nivel del sistema de archivos NTFS.

  1. Abra el símbolo del sistema como administrador;
  2. Detener y deshabilitar instalador de ventanas y Instalador de módulos de Windows servicios:
    sc stop msiserver
    sc stop TrustedInstaller
    sc config msiserver start= disabled
    sc config TrustedInstaller start= disabled
  3. Hagamos una copia de seguridad de las Listas de control de acceso (ACL) asignadas a los archivos y carpetas en el directorio WinSxS utilizando la herramienta icacls incorporada. Una copia de seguridad de una ACL es un archivo de texto sin formato que enumera todos los archivos y directorios y los permisos NTFS asignados a ellos (más adelante, se necesitará este archivo para restaurar las ACL originales):
    icacls "%WINDIR%WinSxS" /save "%WINDIR%WinSxS_NTFS.acl" /t
    hacer una copia de seguridad de los permisos ntfs de los archivos de la carpeta winsxs usando icacls
  4. Asigne usted mismo como propietario de la carpeta WinSxS y todas sus subcarpetas:
    takeown /f "%WINDIR%WinSxS" /r
  5. Otorgue a su cuenta permisos de control total en el directorio WinSxS:
    icacls "%WINDIR%WinSxS" /grant "%USERDOMAIN%%USERNAME%":(F) /t
  6. Ahora puede comprimir archivos en el directorio WinSxS usando el compacto mando. Dado que Windows puede utilizar algunos de los archivos, debe especificar el /i opción. De lo contrario, la compresión se detendrá en el primer archivo bloqueado (en Windows 10, puede usar una compresión LZX más avanzada):
    compact /s:"%WINDIR%WinSxS" /c /a /i *
    comprimir archivos en la carpeta winsxs usando la herramienta compact.exe
  7. Restaure el propietario del directorio WinSxS de nuevo a TrustedInstaller:
    icacls "%WINDIR%WinSxS" /setowner "NT SERVICETrustedInstaller" /t
  8. Restaure las ACL originales para los elementos de la carpeta WinSxS utilizando el archivo de copia de seguridad de ACL que creó anteriormente:
    icacls "%WINDIR%" /restore "%WINDIR%WinSxS_NTFS.acl"
  9. Restaure el tipo de inicio predeterminado para los servicios de Windows Installer y Windows Module Installer:
    sc config msiserver start= demand
    sc config TrustedInstaller start= demand

Ahora verifique el tamaño actual de la carpeta WinSxS:

¿Cómo ahorrar ritmo en la carpeta Winsxs en Windows 10?

Como puede ver, en nuestro ejemplo, el tamaño de la carpeta WinSxS después de que la compresión se ha reducido de 9,4 GB para 6,5 GB (alrededor de un tercio). No está mal, especialmente para una unidad SSD de tamaño pequeño.

Estos comandos pueden ejecutarse por separado (entonces es mucho más fácil rastrear los resultados de cada uno de ellos) o usarse en un solo archivo de secuencia de comandos. Si lo ejecuta, se iniciará el procedimiento de compresión descrito para los elementos de la carpeta WinSxS. Puede descargar el archivo por lotes listo para usar para habilitar la compresión NTFS en WinSxS aquí: winsxs_ntfs_compress.bat

Puede usar este script con regularidad porque aparecerán nuevos archivos sin comprimir en la carpeta WinSxS después de instalar nuevas actualizaciones o aplicaciones de Windows.

¿Qué puede verse afectado al comprimir la carpeta WinSxS?? Windows funciona de forma transparente con archivos comprimidos. Sin embargo, al procesar dichos archivos, es posible que la CPU requiera más tiempo para descomprimirlos o comprimirlos. Esto puede causar una leve desaceleración al instalar componentes o actualizaciones de Windows. Sin embargo, en las CPU modernas, las operaciones de compresión / descompresión de archivos se realizan casi instantáneamente, por lo que es posible que el usuario ni siquiera note el impacto real en el rendimiento.

Artículos Interesantes