В октябре Microsoft выпустила ряд обновлений для пользователей своих продуктов, некоторые из них привели к печальным последствиям, но есть одно обновление, появление которого уже очень долгое время ждали все поклонники Windows 7. Речь идет об обновлении KB2852386 (http://support.microsoft.com/kb/2852386), позволяющем удалять устаревшие обновления (обновления, которые были заменены на более новые обновлений) с помощью нового параметра стандартного мастера очистки диска Windows 7 — Windows Cleanup Tool (cleanmgr.exe). Данное обновление не является обязательным, его можно установить через службу Windows Update или, скачав вручную с сайта Microsoft.
Напомним, что в Windows 7 при установке любого системного обновления, системные файлы заменяются новыми, а их старые версии сохраняются в каталоге WinSxS (C:\Windows\WinSxS). Благодаря такому подходу в любой момент можно безопасно удалить любое системное обновление. Однако, этот подход приводит к тому, что со временем по мере установки новых обновлений, каталог WinSxS существенно увеличивается в размерах (получается, что чем больше возраст системы и чем большее количество обновлений установлено – тем больше размер папки WinSxS ), что не может не волновать пользователей, особенно счастливых обладателей SSD дисков и дисков с небольшим размером системного раздела. Ранее в Windows 7 отсутствовала штатная утилита удаления файлов устаревших обновление, поэтому чтобы уменьшить размер папки WinSxS приходилось прибегать к различным трюкам.
dism /online /cleanup-image /spsuperseded
Естественно, что после выполнения данной команды откатить установку Windows 7 SP 1 станет невозможно.
Теперь благодаря обновленной версии мастера очистки Windows 7 можно удалить устаревшие обновления Windows, что позволит существенно уменьшить размер папки WinSxS.
Требования к установке обновления KB2852386
- Обновление предназначено только для Windows 7 SP 1
- Если вы скачиваете обновление самостоятельно с сайта Microsoft (ссылка есть в начале статьи), вас попросят запустить утилиту проверки подлинности Windows (Genuine Windows Validation). При установке обновления через центр установки обновлений, ручную валидацию выполнять не придется.
Как в Windows 7 очистить папку WinSxS, удалив устаревшие обновления
- Скачайте и установите обновление KB 2852386
- Запустите мастер очистки диска (Cleanup Manager), набрав в командной строке с правами администратора:
cleanmgr
- Укажите диск, на котором установлена Windows 7 (обычно это C:\)
- Нажмите кнопку «Clean up system files» (Очистить системные файлы)
- После этого запустится сканирование системы (Scanning: Windows Update Cleanup) и в списке появится ряд опций очистки системы, которые при первом запуске были недоступны.
- В появившемся окне отметьте опцию Windows Update Cleanup (Очистка обновлений Windows). Утилита покажет приблизительный размер места, высвобождающегося после удаления устаревших обновлений. В нашем примере, на системном освободится около 4 Гб.Примечание. Опция очистки обновлений Windows доступена только в том случае, если мастер очистки диска обнаруживает обновления Windows 7, которые более не требуются и могут быть удалены.
- Нажмите Ок, после чего система приступит к удалению неиспользуемых файлов (обычно процесс занимает довольно продолжительное время).
- После окончания процедуры очистки, перезагрузите систему. При загрузке системы может появиться окно с предопределением «Cleaning up» — Не выключайте свой компьютер…
Как автоматизировать очистку папки WinSxS
В том случае, если необходимо провести удаление неиспользуемых обновлений Windows 7 сразу на множестве машин (не бегать же по всем и не выполнять все эти операции вручную!), прибегнем к простой автоматизации.
Для этого нам нужно внести определенные изменения в реестр и по расписанию запускать команду очистки.
В реестр нужно добавить параметр типа DWORD с именем StateFlags0011 (по сути две последние цифры могут быть любыми в диапазоне от 0 до 65535, главное запомнить их, т.к. в дальнейшем мы будет их использовать) и значением 2 в ветку реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Update Cleanup
Осталось любым средством автоматизации (напрмиер, с помощью планировщика заданий schtasks, at, SCCM или logon скрипта) выполнить команду:
cleanmgr /sagerun:11
Указанная команда запустит автоматическое удаление устаревших обновлений Windows 7 и удалит неиспользуемые файлы из каталога WinSxS
А как же Windows 8?
В Windows 8 и 8.1 мастер очистки устаревших обновлений (Windows Update Cleanup) является штатной фичей.