Pasta WinSXS no Windows Server
Olá pessoal sejam todos bem-vindos ao Blog Jefferson Castilho.
O Tema de hoje é “Reduzindo o tamanho da pasta WINSYS no Windows Server 2012 R2“.
Para que serve a WINSXS?
Ela serve para armazenar as versões de arquivos para manter umas compatibilidades de vários programas, como atualizações do Windows Update e pacotes de Instalação de Features.
Como podemos ver nesta temos aproximadamente quase 7GB na pasta WINSYS.

Como podemos ver nesta dica iremos abordar a remoção dos binários das Features que vem por default no SO. Após este procedimento caso for instalar alguma Role ou Feature será necessário a execução com o DVD do Windows Server 2012 R2.
Ponto importante
É bom saber que não podemos excluir a pasta WINSXS direto pelo Explorer, podendo acarretar grandes problemas no Sistema Operacional.
Execute o PowerShell em modo elevado para não ter problemas.
Uma dica importante é você executar o comando “Get-WindowsFeature” para listar todas as Feature.

Ele irá mostrar todas as Feature disponíveis no Windows Server, as com a opção “Available” ele irá remover os binários que se encontram na pasta. Após a execução deste comando abaixo no post ele irá remover esses binários como dito no post acima.

Para a execução e remoção dos binarios podemos executar o comando “Get-WindowsFeature | Where-Object -FilterScript { $_.Installed -Eq $False } | Uninstall-WindowsFeature –Remove” dentro do PowerShell.

Será iniciado o PowerShell com a execução e andamento do processo.

Na opção “Sucess” tem que estar a opção de “True” que mostra que o comando foi executado com sucesso. Caso venha aparecer nesta opção algum erro procure refazer o processo novamente.

Depois de todo o processo executado podemos ver que foi liberado 1.5GB de arquivos da pasta WINSXS.

Método alternativo: DISM /StartComponentCleanup
Além de remover features desinstaladas via PowerShell, o Windows tem um comando nativo focado especificamente em limpar a WinSXS: o DISM. Rodando via prompt elevado:
Dism.exe /online /Cleanup-Image /StartComponentCleanup
Ele remove versões antigas de componentes que já foram substituídas por atualizações mais recentes, sem depender de quais features estão instaladas ou não.
Cuidado com o /ResetBase
Existe uma variação mais agressiva: Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase. Ela libera ainda mais espaço, mas torna definitiva a remoção de versões anteriores dos componentes — depois disso, não é mais possível desinstalar service packs ou atualizações que já tinham sido aplicadas. Só use o /ResetBase se tiver certeza de que não vai precisar reverter nenhuma atualização recente.
Automatizando a limpeza
O Windows já tem uma tarefa agendada nativa pra isso, em Agendador de Tarefas > Microsoft > Windows > Servicing > StartComponentCleanup — ela roda automaticamente algumas semanas depois de cada atualização, mas dá pra disparar manualmente quando o disco estiver apertado. Isso é especialmente útil se você também estiver revendo sua estratégia de patch management — veja também as alternativas atuais ao WSUS.
🚀 Vamos nos conectar?
Não perca nenhuma oportunidade! Cadastre-se nas minhas redes e no canal do YouTube para receber conteúdos de TI, Cloud, Azure, Kubernetes e DevOps em primeira mão.
Dica: No Facebook, todos os artigos do blog são publicados automaticamente. Vale a pena curtir!
💬 Dúvidas ou Problemas?
Com o intuito de ajudar a comunidade, caso você tenha dúvidas ou encontre problemas na execução dos comandos deste artigo, deixe um comentário abaixo. Responderei o mais breve possível!
Muito obrigado pela visita e até o próximo post!
Jefferson Castilho Especialista em Cloud & DevOps.
Este guia técnico é exclusivo do Blog do Castilho. Explore mais conteúdos sobre Cloud e DevOps.
Fala Jefferson, tudo bem? eu usei o comando sem ler totalmente o seu artigo, ““Get-WindowsFeature | Where-Object -FilterScript { $_.Installed -Eq $False } | Uninstall-WindowsFeature –Remove” ” não me atentei que removeria as feature inativas, gostaria de reverter isso é possivel?
Obrigado