Como instalo a Limpeza de disco no servidor Windows 2012 sem instalar a Desktop Experience?

14

O problema é simplesmente que desejo fazer o melhor possível para limpar / compactar a unidade .vhdx de uma VM antes de executar o cmdlet Optimize-VHD. É bom usar o utilitário de limpeza de disco da Microsoft. O problema é que não está instalado por padrão.

A maneira oficial de obtê-lo é usar "Adicionar funções e recursos" e adicionar o recurso "Experiência de desktop". Existem efeitos colaterais indesejados, entre os quais o recurso requer adicionalmente os recursos "Media Foundation" e "Ink and Handwriting". Eu só quero "Limpeza de disco".

Granger
fonte
Lembre-se, ao contrário do 2008 Desktop Experience, é removível e você pode voltar ao Server Core.
Michael Hampton
Verdade: Foi em parte como eu descobri isso. :) Mas agora não preciso reiniciar o servidor para "instalá-lo".
Granger
Além disso, exclua todos os arquivos de log em c:\windows\logs\cbs. Alguns usuários relatam mais de 20 GB consumidos por esses logs. Esses logs se expandem sempre que você executa a Limpeza de disco ou as Atualizações do Windows (e quem sabe mais o que). Se não conseguir excluí-los, pare o TrustedInstallerserviço e tente novamente.
James L.

Respostas:

17

A "Limpeza de disco" requer apenas 2 arquivos para funcionar (juntos, menos de 260 KB)

"cleanmgr.exe" para sua plataforma e um "cleanmgr.exe.mui" para seu código do idioma. Eles já estão em sua máquina em subpastas em "% SystemRoot% \ WinSxS".

Primeiro, procure na pasta "% SystemRoot% \ WinSxS" por "cleanmgr.exe". Você provavelmente encontrará arquivos nas pastas "amd64", "wow64" e "x86". Eu escolhi "amd64" para os dois arquivos na instalação do Windows Server 2012 Standard x64.

Copie esses 2 arquivos para esses locais:

  • % SystemRoot% \ System32 \ cleanmgr.exe
  • % SystemRoot% \ System32 \ en-US \ cleanmgr.exe.mui

(Suponho que, se você estiver usando um código de idioma diferente, o WinSxS terá mais opções e você precisará copiar o arquivo .mui na subpasta desse código de idioma.)

Tecnicamente, você está pronto neste momento. Execute "cleanmgr.exe" como administrador, se desejar mostrar tudo o que pode limpar (incluindo atualizações antigas do Windows armazenadas no WinSxS, que agora são uma opção no Win2012).

Se você quiser mais "GUI-ness", continue ...

Para obter sua nova "Limpeza de disco" no menu Iniciar, crie um atalho para o arquivo "cleanmgr.exe". Coloque o novo atalho na pasta "% ProgramData% \ Microsoft \ Windows \ Menu Iniciar \ Programas \ Ferramentas Administrativas"; chame-o de "Limpeza de disco". Agora, no menu Iniciar, basta digitar "Limpeza de disco" e você terá a opção de iniciá-lo como administrador desde o início.

Para que a "Limpeza do disco" apareça como um botão na caixa de diálogo Propriedades de uma unidade de disco, é necessário alterar o registro para adicionar uma nova chave e "Valor da seqüência expansível". Crie um novo arquivo de texto .reg e cole o seguinte:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\cleanuppath]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6c,00,\
  65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,00,65,00,20,00,2f,00,44,\
  00,20,00,25,00,63,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\cleanuppath]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6c,00,\
  65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,00,65,00,20,00,2f,00,44,\
  00,20,00,25,00,63,00,00,00

A cadeia hexadecimal é "% SystemRoot% \ System32 \ cleanmgr.exe / D% c", caso você queira adicionar isso manualmente. Para mim, eu só precisava da primeira chave a ser adicionada. A segunda chave era apenas outro lugar em que encontrei a configuração. Para sua informação, havia 2 outros lugares no registro que tratavam do "cleanmgr.exe", mas felizmente eles não foram importantes para isso, pois usavam algumas coisas do GUID do ClassID.

Granger
fonte
2
Se você estiver em um sistema operacional de 64 bits, existem dois conjuntos de arquivos na winsxspasta. Os amd64arquivos entram c:\windows\system32e c:\windows\system32\en-US, e os x86arquivos entram c:\windows\syswow64e c:\windows\syswow64\en-US.
James L.
Parece que esse método não está completo. Isso não parece me dar a opção de remover "Instalações anteriores do Windows". A instalação do Desktop Experience em um determinado host sim. Vou verificar mais alguns servidores para confirmar isso.
Michael Bisbjerg 21/04
1
Tentei isso no Win2012 R2, mas o Windows me diz que não suporta a execução de aplicativos antigos de 16 bits (!). Observado no EXE, ele parece compactado, mas parece não haver utilidade oficial para extraí-lo. Eu encontrei esta no GitHub, funcionou bem no meu instalação e eu tenho o trabalho Assistente de Limpeza: github.com/hfiref0x/SXSEXP
Ale
Parece que isso não funciona mais em 2018. Eu tenho várias subpastas (amd64, x86, wow64) no diretório WinSxS com várias cópias de cleanmgr.exe / cleanmgr.mui e nenhuma das combinações parece funcionar - o EXE acaba de sair assim que como é executado. Eu também tive que usar a ferramenta SXSEXP mencionada por @Ale para que o cleanmgr.exe fosse executável.
22618 Ian Kemp
funciona apenas parcialmente (sem opção "limpa arquivos de sistema up")
Jitbit