Главная

Thursday, 2 September 2021

Автоматизация очистки дисков с использованием Disk Cleanup.

Всем привет.

И снова к теме очистки ПК пользовзателя от системного мусора. Как вы уже знаете для этой операции мы используем штатную утилиту Windows cleanmgr.exe. Следует заметить что в планах Microsoft заменить ее на что-то новое, например на "Контроль памяти" так что не стройте на cleanmgr.exe долгосрочные планы.

Но сегодня мы с cleanmgr.exe. Для очистки важно от какого аккаунта вы запускате сам процесс. В связи с этим очистка может быть разделена на 2 фазы, запуском в контексте системной учетной записи (SYSTEM), и запуском в контексте учетной записи пользователя, выполнившего вход в систему.

Поэтому предварительно следует запустить в командной строке от имени администратора:

cleanmgr.exe /sagerun:15

И аналогично выполнить команду для установки путей очистки в контексте пользователей:

cleanmgr.exe /sagerun:10

Цифры 15 и 10 имеют совершенно свободный выбор как номера профилей для запоминания их настроек в реестре системы.

Настройки параметров запуска cleanmgr в контексте SYSTEM и Пользователей для компьютеров x86, а также для пк х64 и контекста SYSTEM, появятся в реестре в ветке 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches

Настройки параметров запуска cleanmgr в контексте Пользователей для пк x64 появятся в реестре в другой ветке

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\VolumeCaches

В данных разделах будут параметры с именами StateFlags0015 и StateFlags0010 соответственно.

Для автоматиазции процесса очистки следует реализовать механизм доставки профилей реестра StateFlags0015 и StateFlags0010 на рабочие места пользователей и запуск cleanmgr.exe /sagerun:хх там соответственно. Для этого можно использовать SCCM. В этом ключе следует учесть что в системах х64, агент SCCM запускает утилиту cleanmgr.exe не из каталога %systemroot%\system32, а из каталога %systemroot%\syswow64. Поэтому обязательно используем опцию в поле "Запретить 64-битное перенаправление файловой системы".

Так как удаление устаревших обновлений обычно требует перезагрузки для непосредственно очистки, следует включить проверку наличия активного сеанса пользователя запросами WMI:

Select * FROM Win32_PerfFormattedData_LocalSessionManager_TerminalServices WHERE ActiveSessions=0

Select * FROM Win32_PerfFormattedData_LocalSessionManager_TerminalServices WHERE TotalSessions=2

Более подробно читайте в статье Павла Лекторского "Автоматизация очистки дисков с использованием SCCM" которая опубликована в журнале "Системный администратор", ноябрь 2020 года.

Успехов.


No comments:

Post a Comment

А что вы думаете по этому поводу?