Antes de hablar sobre la limpieza segura de la carpeta WinSXS en Windows Server 2012, intentemos comprender qué es la carpeta WinSXS, qué se guarda en esta carpeta y por qué su tamaño aumenta constantemente con el paso del tiempo.
[accordion]
[tab title=”Contents of this article”]
[/tab]
[/accordion]
Si recuerda durante la instalación de funciones adicionales en Windows Server 2003, el asistente de instalación exigió poner el disco de instalación en CD-Rom o mostrar el camino al catálogo con el paquete de instalación de Windows Server 2003. Microsoft decidió cambiar su política para funciones y funciones adicionales de Windows en Windows Server 2008. Ahora, todos los archivos binarios que son necesarios para la implementación de cualquier función se almacenan en la carpeta % windir% WinSxS (WinSxS – Windows en paralelo). Esto significa que, en caso de instalación de funciones adicionales, no es necesario buscar y conectar el disco con el paquete de instalación al servidor. Por supuesto, en caso de tal actitud, se necesita mucho más espacio para el sistema operativo. Es necesario comprender que los componentes clave del sistema se encuentran en el catálogo de WinSXS y no está permitido eliminar nada de él manualmente de ninguna manera. ¿Por qué aumenta constantemente de tamaño? La respuesta es simple: actualizaciones. Durante la instalación de actualizaciones para diferentes funciones en el catálogo de WinSXS, se guarda la versión antigua y la nueva de la función actualizada. Debido a dicha arquitectura, podemos eliminar de forma segura cualquier actualización instalada en cualquier momento y volver a la versión anterior de la función.
¿Y qué se debe hacer si el sistema se inicia y funciona bien, no hay necesidad de implementar roles adicionales pero aún no hay suficiente espacio en el disco? Parece bastante ilógico que se utilicen varios gigabytes en el disco del sistema para paquetes de instalación que nunca serán necesarios. Desafortunadamente, es bastante difícil eliminar estos archivos sin dañar el sistema en Windows Server 2008. Sin embargo, Microsoft en el nuevo sistema operativo del servidor (Windows Server 2012) decidió mejorar esta desventaja mediante la implementación de una nueva función que se llama Características en Demanda.
Funciones bajo demanda en Windows Server 2012
La función Features on Demand permite reducir el espacio en el disco que se utiliza para los archivos del sistema debido a la posibilidad de eliminación de archivos binarios de roles no utilizados de la carpeta WinSxS. En caso de que más adelante sea necesario devolver un rol previamente eliminado, todos los archivos necesarios se pueden encontrar en la imagen del paquete de instalación de Windows Server 2012, el servicio de actualización de Windows o el recurso de red con el contenido original.
Con la ayuda del siguiente comando de Powershell, puede obtener información sobre todas las funciones y funciones del sistema:
Como puede ver, el estado de cada función se muestra en la columna Estado de instalación. Tales estados son posibles:
- Instalado: la función o la función está instalada y el sistema la utiliza en este momento
- Disponible: el rol no está instalado en el servidor, sin embargo, todos los archivos necesarios están disponibles en el disco, lo que permite instalar / activar este rol en cualquier momento.
- Remoto: la función o función no está instalada en el servidor, todos los archivos necesarios para su instalación se eliminan del disco
En consecuencia, en caso de instalación de cualquier función a través de GUI o Powershell (comando Install-WindowsFeature), su estado cambiará de Disponible a Instalado o en caso de eliminación (comando Uninstall-WindowsFeature) y viceversa.
Eliminar roles no utilizados de Windows Server 2012
La eliminación de roles del disco (de la carpeta WinSxS) solo es posible a través de Powershell. Argumento de comando especial Desinstalar-WindowsFeature -Eliminar debe utilizarse para este propósito.
Si necesita eliminar los archivos binarios de la función del servidor DHCP, por ejemplo, debe utilizar el siguiente comando:
1 |
Uninstall-WindowsFeature –Name DHCP –Remove
|
El siguiente comando eliminará los archivos de servicio de catálogos de Servicios de dominio de Active Directory:
1 |
Uninstall-WindowsFeature AD-Domain-Services -Remove |
Con la ayuda de Powershell, es posible escribir un comando aún más complicado que eliminará todos los archivos de instalación de los roles y funciones no utilizados de Windows Server:
1 |
Get-WindowsFeature | Where-Object {$_.InstallState -Eq “Available”} | Uninstall-WindowsFeature -Remove |

En nuestro ejemplo, siempre que solo se haya instalado una función de servidor de archivos, el tamaño de la carpeta WinSxS disminuirá de 8 a 5 Gb. No es un mal resultado, ¿no? Aún más, usamos solo un comando para la limpieza de la carpeta WinSxS.
Cómo instalar funciones y funciones eliminadas en Windows Server 2012
Un ejemplo más, supongamos que necesita instalar alguna función de Windows Server 2012, pero su paquete de instalación se elimina del catálogo de WinSxS. Es posible recuperar este rol de varias formas: con la ayuda de GUI Server Manager o con la ayuda de Powershell.
Antes de iniciar la recuperación de archivos de rol, es necesario definir el índice de la edición instalada de Windows Server 2012. Necesitamos un disco con el paquete de instalación de Windows Server 2012 (para ser exactos, el archivo de imagen install.wim está asignado en el catálogo de fuentes). Realice el siguiente comando de Powershell:
1 |
Get-windowsimage –imagepath <path_to_wim_file>sourcesinstall.wim |

Busque la versión de Windows Server que está instalada en su PC y recuerde su índice (el valor en la línea de Índice). En nuestro ejemplo, es Windows Server 2012 Datacenter con índice 4.
La misma operación se puede realizar con la ayuda de la utilidad Dism:
1 |
dism.exe /get-imageinfo /imagefile:d:sourcesinstall.wim |
Instalación de la función eliminada mediante el Administrador del servidor
Abra la consola del Administrador del servidor y habilite el Administrador de instalación de roles (Agregar roles y características). Seleccione la función o función que se necesita instalar. El administrador le advertirá que faltan algunos archivos necesarios para la instalación de esta función y que debe especificar una ruta de origen alternativa a la ubicación del paquete de instalación. prensa Especificar una ruta de origen alternativa botón.

En el campo Ruta, especifique la ruta completa al archivo intall.wim y el índice de edición del sistema operativo instalado en el siguiente formato:
1 |
WIM:D:SourcesInstall.wim:4
|

Después de presionar el botón Aceptar, todos los archivos necesarios para la función instalable se copiarán al catálogo de WinSxS.

Windows Server 2012 recupera roles eliminados con Powershell
La misma operación se puede realizar con la ayuda de un solo comando de Powershell. Supongamos que necesitamos recuperar archivos remotos de la función ADDS. Realicemos el siguiente comando:
1 |
Install-WindowsFeature AD-Domain-Services -Source WIM:WIM:D:SourcesInstall.wim:4 |

Entonces, en este artículo aprendimos con una nueva función de Windows Server 2012 que se llama Features on Demand y permite eliminar archivos binarios con paquetes de instalación de roles de servidor del catálogo de WinSxS. La función eliminada se puede recuperar si es necesario: todo lo que necesita es el paquete de instalación de Windows Server 2012.
Feature on Demand en Windows 8 funciona de manera un poco diferente, esto se debe a que el comando de Powershell let que hemos usado en casos anteriores simplemente no existe aquí. DISM comando con / Disable-Feature Se considera que el parámetro es su análogo (no tan conveniente). El contenido del directorio WinSxS también se puede comprimir más sobre esto en el artículo: Cómo limpiar y comprimir la carpeta WinSxS.
Consejo. Más información sobre cómo reducir el tamaño de la carpeta WinSxS en Windows 8.1 aquí





