понедельник, 7 сентября 2009 г.

Чистим Windows после обновления.

После похода на Windows Update и установки патчей в виде файлов *.msp в папке системы скапливается довольно много "мусора". Windows сохраняет всё загруженные обновления с Windows Update, исходные версии файлов при наложении msp-патчей, особенно много хлама скапливается после установки Service Pack. В этом посте я расскажу про то, как без вреда для системы почистил ее от "мусора".

Для начала снесем все запасы, которые делает Microsoft Installer.


Идем в папку "%windir%\Installer\$PatchCache$\Managed\" и вычищаем всё ее содержимое. В этой папке хранятся базовые версии файлов, которые изменяются при обновлении ПО с помощью msp-патчей и используются они для того, чтобы не просить дистрибутив при каждом обновлении. Если установщик этих файлов не найдет, то попросит вставить диск или указать путь, откуда была установлена программа.

Теперь вида "$NtServicePack*$" и "$NtUninstall*$", которые создаются в "%windir%". В этих папках находятся файлы, которые необходимы для корректного удаления установленных обновлений. Если удаление не требуется, то их можно просто удалить. :) Я их просто заархивировал на всякий пожарный. RAR сжал примерно в 5 раз.
ВНИМАНИЕ! Папку "$hf_mig$" удалять нельзя! Она используется для установки новых обновлений.

Теперь займемся папкой "%windir%\SoftwareDistribution\". В этой папке сохраняются все загруженные обновления с Windows Update. После долгого пользования системой эта папка становится довольно больших размеров. Чтобы заняться ее чисткой надо остановить службу "Автоматическое обновление" (net stop wuauserv) и "Фоновая интеллектуальная служба передачи (BITS)" (net stop bits). Теперь удаляем всё кроме папки "DataStore" и файла "ReportingEvents.log", после этого заново запускаем остановленные службы.

После установки Service Pack-ов появляется папка "%windir%\ServicePackFiles", в которой хранятся обновленные версии файлов. Их использует служба защиты системных файлов (SFC) . При желании эту папку можно перенести на другой диск, чтобы служба не "потеряла" их, надо в реестре изменить несколько параметров. Запускаем редактор реестра и идем в сторону "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup", по этому пути правим параметры "ServicePackCachePath" и "ServicePackSourcePath".

Все эти сведения я нашел на сайте Microsoft.