Como analisar o tamanho e limpar a pasta WinSxS via DISM, no Windows 8.1

Nuno Silva

Dn878022.060DE5057573180CEC6D227C6D3E2207(pt-br,TechNet.10).png

Novembro, 2014

As versões Windows mais recentes como o Vista, 7 e 8/8.1 possuem uma pasta localizada na diretoria C:\Windows chamada WinSxS (“Windows Side by Side”) e onde estão todos os ficheiros da Windows Component Store. Estes componentes suportam as funcionalidades necessárias para a instalação, personalização e atualização do Windows, na instalação/desinstalação de componentes como por exemplo a framework .NET 3.5. e também no Restauro do Sistema ou em problemas no arranque do Windows.

Esta pasta apesar de possuir um tamanho significativo – cerca de 6 GB – quando verificamos o seu tamanho via File Explorer, o resultado apresentado pode não ser real uma vez que, muitos ficheiros da Windows Component Store são duplicados para outras localizações (por exemplo C:\Windows\System32) através de hard links, tornando impossível ao File Explorer uma leitura real do tamanho e também porque ao adicionarmos/removermos componentes do Windows, o tamanho da pasta é alterado.

Para sabermos exatamente qual o tamanho da pasta WinSxS no Windows 8.1, a Microsoft recomenda a utilização da ferramenta DISM (Deployment Image Servicing & Management Tool). Para além do tamanho real da pasta, via DISM conseguimos saber o tamanho dos ficheiros partilhados com o Windows, dos Backups e funcionalidades inativadas e o tamanho dos ficheiros Temporários e em Cache. Após a execução da ferramenta recebemos ainda a recomendação para a limpeza da Windows Component Store, caso seja necessário.

Nos próximos passos vou explicar como podemos então através do DISM, analisar o tamanho da pasta WinSxS e também proceder à limpeza caso exista essa recomendação.

Para executarmos a ferramenta DISM, vamos abrir o Powershell (ou o Command Prompt, caso não esteja familiarizado com o Powershell) com privilégios de administrador utilizando a combinação de teclas WIN+X para abrir o menu Power User e selecionamos a opção “Windows Powershell (Admin) ” ou “Command Prompt (Admin) ” se optarmos pelo Command Prompt.

Dn878022.E265FF7A7C6B99BB2ACA6236AC3F0972(pt-br,TechNet.10).png

Com o Powershell aberto, vamos escrever o comando seguinte, seguido de Enter.

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Dn878022.90D4DD196B15BAEBAF00AD6A45645484(pt-br,TechNet.10).png

Observação

O parâmetro “/AnalyzeComponentStore” é unicamente reconhecido no Windows 8.1, não estando disponível no Windows 8 ou versões anteriores.

A análise à pasta WinSxS demora alguns minutos dependendo do nosso sistema e quando terminada, apresenta um relatório pormenorizado, conforme a imagem seguinte:

Dn878022.5AFEAB65CA11D1D1E83001A101CCA6A4(pt-br,TechNet.10).png

De acordo com o relatório apresentado, a pasta WinSxS tem um tamanho real de 6.57 GB, sendo que o Windows Explorer apresenta um tamanho de 6.82 GB.

A pasta foi limpa pela última vez em 2014-09-11 23:41:19 e possui 17 Reclaimable Packages.

Os Reclaimable Packages são o número de pacotes substituídos no sistema que a limpeza de componente pode remover.

Assim o Component Store Cleanup Recommended é igual a: Yes

Existe uma questão frequente “posso apagar a pasta WinSxS para recuperar espaço em disco?” A resposta é não. Apagar os ficheiros da pasta WinSxS ou eliminar permanentemente a pasta WinSxS vai danificar o sistema, impedindo que o PC arranque ou tornar impossível a atualização do mesmo.

Tal como referi no início, caso exista a recomendação para limparmos a Windows Component Store, podemos fazê-lo via DISM ou através de outras ferramentas presentes no Windows 8.1.

Para este Guia vou apenas focar-me no DISM e nos passos seguintes, apresentar o conjunto de parâmetros que podemos usar no comando DISM para limpar a pasta WinSxS.

A primeira opção é a utilização do parâmetro /StartComponentCleanup.

Para isso abrimos o Powershell como descrito anteriormente e escrevemos o seguinte comando:

Dism.exe /online /Cleanup-Image /StartComponentCleanup

Dn878022.A48F07795D54DB60670CBDA28AE2821A(pt-br,TechNet.10).png

Este comando inicia o processo de limpeza da pasta WinSxS, eliminando de imediato todas as versões anteriores de componentes já atualizados. Os resultados são idênticos aos obtidos através da tarefa StartComponentCleanup do Task Scheduler, sendo que no caso do DISM não existe a janela dos 30 dias de espera entre as atualizações dos componentes.

Após a limpeza, podemos verificar que o tamanho da pasta WinSxS diminuiu de 6.57 GB para 6.03 GB e que os Reclaimable Packages passaram de 17 para 0.

Dn878022.D6D429AD0C8A243F3474EFAE2E91F869(pt-br,TechNet.10).png

Ao parâmetro /StartComponentCleanup podemos adicionar o parâmetro /ResetBase, ficando o comando desta forma:

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

Com este parâmetro, vamos remover todas as versões substituídas de todos os componentes existentes na pasta WinSxS.

Observação

a utilização do parâmetro /ResetBase torna impossível a desinstalação de Service Packs e/ou atualizações, considerando que o mesmo remove as versões anteriores das mesmas. Assim recomenda-se alguma cautela aos utilizadores na utilização deste parâmetro.

Por último, podemos utilizar o parâmetro /SPSuperseded. Ao utilizar este parâmetro, vamos remover os backups de componentes atualizados por um Service Pack e desta forma conseguimos reduzir significativamente o espaço ocupado pelo mesmo.

Mais uma vez executando o Powershell como administrador, vamos escrever o seguinte comando:

Dism.exe /online /Cleanup-Image /SPSuperseded

Observação

Tal como no /ResetBase, a utilização deste parâmetro vai impossibilitar a desinstalação de Service Pack e/ou atualizações existentes.

Dica: Se algum utilizador Windows não se sentir muito confortável com este método ou simplesmente preferir uma opção que tenha interface gráfica, poderá utilizar a opção Windows Update Cleanup presente na ferramenta de limpeza do disco.

| Home | Artigos Técnicos | Comunidade