Как установить очистку диска на сервере Windows 2012 без установки Desktop Experience?

14

Проблема в том, что я хочу сделать все возможное, чтобы очистить / сжать диск .vhdx виртуальной машины перед запуском командлета Optimize-VHD. Приятно использовать утилиту очистки диска Microsoft. Проблема в том, что он не установлен по умолчанию.

Официальный способ получить это - использовать «Добавить роли и компоненты» и добавить функцию «Desktop Experience». У этого есть нежелательные побочные эффекты, среди которых эта функция дополнительно требует функций «Media Foundation» и «Ink and Handwriting». Я просто хочу "Очистка диска".

управляющий фермой
источник
Помните, что в отличие от 2008 года Desktop Experience является съемным, и вы можете вернуться к Server Core.
Майкл Хэмптон
Верно: это отчасти как я понял это. :) Но теперь мне не нужно перезагружать мой сервер, чтобы «установить» его.
Грейнджер
Кроме того, удалите все файлы журнала в c:\windows\logs\cbs. Некоторые пользователи сообщают, что эти журналы занимают более 20 ГБ. Эти журналы расширяются при каждом запуске очистки диска или обновлений Windows (и кто знает, что еще). Если вы не можете удалить их, остановите TrustedInstallerслужбу и попробуйте снова.
Джеймс Л.

Ответы:

17

«Очистка диска» требует только 2 файла (вместе, менее 260 КБ)

«cleanmgr.exe» для вашей платформы и «cleanmgr.exe.mui» для вашей локали. Они уже находятся на вашем компьютере в подпапках в папке «% SystemRoot% \ WinSxS».

Сначала найдите в папке «% SystemRoot% \ WinSxS» файл «cleanmgr.exe». Скорее всего, вы найдете файлы в папках «amd64», «wow64» и «x86». Я выбрал «amd64» для обоих файлов в моей установке Windows Server 2012 Standard x64.

Скопируйте эти 2 файла в эти места:

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

(Я предполагаю, что если вы используете другую локаль, у WinSxS будет больше вариантов, и вам придется скопировать файл .mui в подпапку для этой локали.)

Технически, на этом все готово. Запустите "cleanmgr.exe" от имени администратора если вы хотите, чтобы он показал вам все, что он может очистить (включая устаревшие обновления Windows, хранящиеся в WinSxS, которые теперь доступны в Win2012).

Если вы хотите больше "GUI-Ness", продолжайте ...

Чтобы добавить новую функцию «Очистка диска» в меню «Пуск», создайте ярлык для файла «cleanmgr.exe». Поместите новый ярлык в папку «% ProgramData% \ Microsoft \ Windows \ Пуск \ Программы \ Администрирование»; назовите это «Очистка диска». Теперь, находясь в меню «Пуск», вы можете просто ввести «Очистка диска», и у вас будет возможность запустить его с правами администратора.

Чтобы «Очистка диска» отображалась в виде кнопки в диалоговом окне «Свойства диска», необходимо изменить реестр, добавив новый ключ и «Расширяемое значение строки». Создайте новый текстовый файл .reg и вставьте следующее:

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

Шестнадцатеричная строка «% SystemRoot% \ System32 \ cleanmgr.exe / D% c», если вы хотите добавить это вручную. Для меня мне нужен был только первый ключ, который нужно добавить. Второй ключ был просто еще одним местом, где я нашел настройки. К вашему сведению, в реестре было еще 2 места, которые имели дело с «cleanmgr.exe», но, к счастью, это не имело значения, так как они использовали кое-что из ClassID GUID.

управляющий фермой
источник
2
Если вы работаете на 64-битной ОС, то в winsxsпапке есть два набора файлов . Эти amd64файлы находятся в c:\windows\system32и c:\windows\system32\en-US, и x86файлы идут в c:\windows\syswow64и c:\windows\syswow64\en-US.
Джеймс Л.
Кажется, что этот метод не завершен. Это не дает мне возможности удалить «Предыдущие установки Windows». Установка Desktop Experience на определенном хосте делает .. Я проверю еще несколько серверов, чтобы подтвердить это.
Майкл Бисбьерг
1
Пробовал это на Win2012 R2, но Windows говорит, что не поддерживает запуск старых 16-битных приложений (!). Заглянул в EXE, он выглядит сжатым, но официальной утилиты для его извлечения не существует. Я нашел этот на GitHub, он отлично работал на моей установке, и я получил мастер очистки: github.com/hfiref0x/SXSEXP
Ale
Кажется, это больше не работает до 2018 года. У меня есть несколько подпапок (amd64, x86, wow64) в каталоге WinSxS с несколькими копиями cleanmgr.exe / cleanmgr.mui, и ни одна из комбинаций, похоже, не работает - EXE просто завершается, как только как это бежать. Мне также пришлось использовать инструмент SXSEXP, упомянутый @Ale, чтобы файл cleanmgr.exe был даже исполняемым.
Ян Кемп
работает только частично (без опции «очистить системные файлы»)
jitbit