Limpiar ficheros de WinSxS

      2 comentarios en Limpiar ficheros de WinSxS

Translate

Para todos los que gestionamos infraestructuras virtuales, ya sea con VMWare, Hyper-V, repleta de servidores Windows, una de las premisas es aligerar al máximo el espacio que estos servidores nos ocupan en nuestro almacenamiento.

Con ese objetivo en mente veremos como podemos aligerar nuestro Windows vaciando la carpeta WinSXS. Si, habéis leído bien, WINSXS, pero tenemos que ser muy conscientes de lo que estamos haciendo y los riesgos que corremos.

Lo primero es saber que es esta carpeta, pues sin ir más lejos es un almacén de archivos de uso para nuestro SO. Una de las cosas que encontramos en esta carpeta son los ficheros para instalar los roles y características de nuestro Windows, también almacena los updates que vamos instalando sobre nuestro SO, encontraremos drives, dll, etc.. En definitiva, ficheros que a priori no vemos importantes para el día a día, pero críticos cuando no disponemos de ellos.

Veamos cómo podemos saber lo que realmente ocupa nuestra carpeta WinSXS.

dism /Online /Cleanup-Image /AnalyzeComponentStore

winsxs (1)

Entrando en las Propiedades de la carpeta ubicada en C:\Windows\WINSXS

winsxs (2)

Eliminar roles y características

Este proceso es el más seguro para vaciar nuestra carpeta WinSXS, ya que lo que estamos haciendo es vaciar el repositorio de nuestros roles y características. ¿Y si al cabo del tiempo necesito instalar uno nuevo? Podemos recurrir a nuestro DVD de instalación de de Windows para lanzar la instalación del rol o característica, por lo que estamos a salvo de instalar cualquier servicio en un futuro.

Con esta instrucción podemos ver los servicios que tenemos instalados, disponible o eliminados.

Get-WindowsFeature

winsxs (3)

Podemos eliminar un servicio con el siguiente comando. Por ejemplo, Hyper-V.

Uninstall-WindowsFeature Hyper-v -Remove

winsxs (4)

Con esta otra instrucción podemos hacer que se eliminen todos los servicios disponibles (Available) sin ir uno a uno ejecutando la instrucción anterior.

Get-WindowsFeature | Where-Object {$_.installstate -eq "Available"} | Uninstall-WindowsFeature -Remove

winsxs (5)

Volvemos a comprobar el estado de nuestros roles y características con el comando anterior y veremos que salen como Removed.

Get-WindowsFeature

winsxs (6)

Si comprobamos ahora el tamaño de nuestra carpeta WinSXS veremos que se ha reducido.

winsxs (7) winsxs (8)

NOTA. Si queremos instalar un rol o característica que hemos eliminado deberemos usar esta instrucción con el DVD de Windows introducido, en mi caso en la D:.

> Install-WindowsFeature "nombre del servicio" -Restart -Source wim:d:\sources\install.win:4

winsxs (11)

En número 4 es la versión que usamos de nuestro DVD, para saber cual tenemos debemos hacer los siguiente pasos

Saber que version de Windows tenemos instalada.

> systeminfo

winsxs (9)

Que índice corresponde a nuestro DVD.

> dism /get-wiminfo /getfile:d:\sources\install.wim

winsxs (10)

Eliminar paquetes de actualizaciones

Este procedimiento entraña un riesgo elevado, ya que lo que eliminamos los ficheros de instalación de las actualizaciones que tenga nuestro servidor, instalados, no podríamos desinstalar cualquiera actualización que nos diera problemas.

Podemos realizar este proceso de dos maneras, de manera gráfica con el limpiador de windows o por linea de comandos.

Limpiador de Windows

Primero debemos activar la característica de “experiencia de usuario” para poder usarlo.

winsxs (12)

Ahora accedemos al Limpiador de Windows y dejamos que analice nuestro equipo, como podemos ver nos devolverá el tamaño de las actualizaciones.

winsxs (13)

Ahora tan solo le damos a continuar para dejar que haga la limpieza. Este proceso, dependiendo del tamaño de las actualizaciones puede llevar horas, para que hos hagais una idea para los 400Mb ha tardado casi 1h y 30 min.

winsxs (14) winsxs (15) winsxs (16)

LÍNEA de comandos dism.exe

Podemos lanzar el mismo proceso, sin necesidad de instalar la experiencia de escritorio, por lo que evitamos cargar archivos innecesariamente. Desde nuestra línea de comandos (CMD) lanzamos el siguiente comando.

dism /online /cleanup-image /StartComponentCleanup

winsxs (17) winsxs (18)

Ahora ya podemos comprobar nuestra carpeta WinSXS para ver el tamaño que nos ocupa después de realizarle la limpieza.

En mi caso hemos pasado de los 9,69Gb a los 5,78Gb, no es un milagro, pero ayuda a mantener controlados nuestros servidores o clientes.

winsxs (19) winsxs (20)

 

Espero que os haya servido, si tenéis alguna duda comentar el post y haré lo posible para ayudaros.

 

2 comentarios en “Limpiar ficheros de WinSxS

  1. pregunton

    Muy interesante.

    Son tres pasos:

    C:\Windows\WINSXS
    Eliminar roles y características
    Eliminar paquetes de actualizaciones (Este procedimiento entraña un riesgo elevado)

    Alguna forma de automatizarlo en script powershell , si tienes varios servidores ?

    Gracias

    Contestar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.