¿Cómo instalo Disk Cleanup en el servidor de Windows 2012 sin instalar Desktop Experience?

14

El problema es simplemente que quiero hacer lo mejor que pueda para limpiar / compactar la unidad .vhdx de una máquina virtual antes de ejecutar el cmdlet Optimize-VHD. Es bueno usar la utilidad de limpieza de disco de Microsoft. El problema es que no está instalado por defecto.

La forma oficial de obtenerlo es usar "Agregar roles y características" y agregar la función "Experiencia de escritorio". Hay efectos secundarios no deseados, entre los cuales la función requiere además las funciones "Media Foundation" y "Ink and Handwriting". Solo quiero "Limpieza de disco".

Granjero
fuente
Recuerde, a diferencia de 2008, Desktop Experience es extraíble y puede volver a Server Core.
Michael Hampton
Cierto: en parte así es como lo descubrí. :) Pero ahora no tengo que reiniciar mi servidor para "instalarlo".
Granger
Además, elimine todos los archivos de registro en c:\windows\logs\cbs. Algunos usuarios reportan más de 20 GB consumidos por estos registros. Estos registros se expanden cada vez que ejecuta Liberador de espacio en disco o Actualizaciones de Windows (y quién sabe qué más). Si no puede eliminarlos, detenga el TrustedInstallerservicio e intente nuevamente.
James L.

Respuestas:

17

"Disk Cleanup" solo requiere 2 archivos para funcionar (juntos, menos de 260 KB)

"cleanmgr.exe" para su plataforma y un "cleanmgr.exe.mui" para su configuración regional. Ya están en su máquina en subcarpetas en "% SystemRoot% \ WinSxS".

Primero, busque en la carpeta "% SystemRoot% \ WinSxS" "cleanmgr.exe". Probablemente encontrará archivos en las carpetas "amd64", "wow64" y "x86". Elegí "amd64" para ambos archivos en mi instalación de Windows Server 2012 Standard x64.

Copie esos 2 archivos en estas ubicaciones:

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

(Supongo que, si está utilizando una configuración regional diferente, WinSxS tendría más opciones, y tendría que copiar el archivo .mui a la subcarpeta para esa configuración regional).

Técnicamente, has terminado en este punto. Ejecute "cleanmgr.exe" como administrador si desea que le muestre todo lo que puede limpiar (incluidas las actualizaciones obsoletas de Windows almacenadas en WinSxS, que ahora son una opción en Win2012).

Si desea más "GUI-ness", continúe ...

Para obtener su nueva "Limpieza de disco" en el menú Inicio, cree un acceso directo al archivo "cleanmgr.exe". Coloque el nuevo acceso directo en la carpeta "% ProgramData% \ Microsoft \ Windows \ Start Menu \ Programs \ Administrative Tools"; nómbrelo "Limpieza de disco". Ahora, cuando esté en el menú Inicio, puede escribir "Liberador de espacio en disco", y tendrá la opción de iniciarlo como Administrador desde el principio.

Para que "Limpieza de disco" aparezca como un botón en el cuadro de diálogo Propiedades de una unidad de disco, debe cambiar el registro para agregar una nueva clave y un "Valor de cadena expandible". Cree un nuevo archivo de texto .reg y péguelo en lo siguiente:

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

La cadena hexadecimal es "% SystemRoot% \ System32 \ cleanmgr.exe / D% c", en caso de que desee agregar esto manualmente. Para mí, solo necesitaba agregar la primera clave. La segunda clave era solo otro lugar donde encontré la configuración ubicada. Para su información, había otros 2 lugares en el registro que trataban con "cleanmgr.exe", pero afortunadamente no importaron para esto, ya que usaron algunas cosas de GUID de ClassID.

Granjero
fuente
2
Si está en un sistema operativo de 64 bits, entonces hay dos conjuntos de archivos en la winsxscarpeta. Los amd64archivos entran c:\windows\system32y c:\windows\system32\en-US, y los x86archivos entran c:\windows\syswow64y c:\windows\syswow64\en-US.
James L.
Parece que este método no está completo. Hacer esto no parece darme la opción de eliminar "Instalaciones anteriores de Windows". Instalar Desktop Experience en un host determinado lo hace. Comprobaré algunos servidores más para confirmarlo.
Michael Bisbjerg
1
Probé esto en Win2012 R2, pero Windows me dice que no admite la ejecución de aplicaciones antiguas de 16 bits (!). Visto en el EXE, parece estar comprimido, pero no parece haber ninguna utilidad oficial para extraerlo. Encontré este en GitHub, funcionó bien en mi instalación y conseguí que el asistente de limpieza funcionara: github.com/hfiref0x/SXSEXP
Ale
Parece que esto ya no funciona en 2018. Tengo varias subcarpetas (amd64, x86, wow64) en el directorio WinSxS con múltiples copias de cleanmgr.exe / cleanmgr.mui y ninguna de las combinaciones parece funcionar: el EXE simplemente sale tan pronto como se ejecuta También tuve que usar la herramienta SXSEXP mencionada por @Ale para que el cleanmgr.exe fuera incluso ejecutable.
Ian Kemp
funciona solo parcialmente (sin opción de "limpiar archivos del sistema")
jitbit