Казалось бы, две большие статьи об оптимизации папки WinSxS в Windows 8 должны были исчерпать тему. Но Microsoft внезапно решила порадовать и владельцев Windows 7, для которых я публикую этот рассказ.
Несмотря на многочисленные предостережения, обладатели Windows 7 с маленьким сами знаете чем не оставляют попыток почистить папку WinSxS кривыми способами. Вот вам свеженький пример убийства Windows 7 участником конференции OSZone под ником… xaker 7
. Надеюсь, после выхода этой записи таких ужасов будет на порядок меньше.
[+] Сегодня в программе
- Как очистить папку WinSxS в Windows 7
- Совет перед очисткой
- Инструкции
- Удалится ли папка WinSxS после очистки?
- Что конкретно удаляется?
- Сколько места освободится? Почему у других удалилось 6GB, а у меня ничего???
- Как определить, сжимаются ли файлы в папке WinSxS в процессе оптимизации
- Почему не работает команда DISM /Online /Cleanup-Image /StartComponentCleanup?
Как очистить папку WinSxS в Windows 7
8 октября 2013 года вышло рекомендуемое
обновление KB2852386 только для всех изданий Windows 7 SP1, прошедших проверку подлинности. Оно добавляет долгожданную функцию в утилиту «Очистка диска».
Совет перед очисткой
Я думаю, что вы захотите узнать, сколько места сэкономила очистка. Поэтому сейчас откройте
(а не папки winsxs) и запишите объем свободного пространства (в байтах) или просто сделайте скриншот.
Инструкции
Они предельно просты:
- Установите обновление KB2852386 посредством Windows Update (рекомендую) или скачайте в IE
пакет из статьи базы знаний. - Выполните cleanmgr
в командной строке, запущенной от имени администратора (так будет быстрее). - Найдите в списке опцию «Очистка обновлений Windows».
Примечание
. Пункт очистки обновлений доступен только в том случае, когда есть файлы, которые можно удалить. - Нажмите ОК
и наберитесь терпения, потому что операция займет некоторое время. - По окончании очистки перезагрузитесь и посмотрите в свойствах диска, сколько места освободилось.
Перед чисткой
Перед тем как очистить WinSxS, надо скачать один апдейт (если он ещё не установлен).
- Зайдите в Пуск — Программы — Центр обновлений.
Центр обновлений Windows
- Нажмите на «Необязательные обновления». Если такого пункта там нет, значит, все службы уже загружены.
- В списке найдите апдейт с номером «KB2852386».
- Отметьте его галочкой и подтвердите установку.
Без этого обновления очистка WinSxS будет недоступна. Его можно скачать и с официального сайта Майкрософт.
- Зайдите на com.
- В строке поиска справа сверху введите «KB2852386».
- Выберите апдейт, который подходит для вашей системы: 32- или 64-разрядной.
- Чтобы узнать информацию об ОС, кликните правой кнопкой мыши на значке «Мой компьютер», затем на пункт «Свойства». В строке «Тип» будет указана разрядность Windows.
Как работает очистка папки WinSxS в Windows 7
Я очень
подробно разбирал весь процесс применительно к Windows 8 и 8.1, поэтому не буду повторяться, а лишь отмечу несколько моментов.
Реализация
Обновление KB2852386 заменяет всего один файл — Scavengeui.dll, в котором реализована вся работа по очистке. Фактически, в утилиту «Очистка диска» добавили вызов функции DISM, доступной в более новых ОС при использовании в утилите DISM.exe параметра /StartComponentCleanup
(но не дополнительного ключа /ResetBase).
Так, при каждом запуске утилиты «Очистка диска» в папку %LocalAppData%\Temp\{GUID} зачем-то копируется содержимое папки %WinDir%\System32\DISM (причем временная папка не удаляется после завершения операции). После чего с помощью обновленной DLL осуществляется программный вызов функции глубокой очистки непосредственно из утилиты. Впрочем, копирование папки DISM наблюдалось еще до выхода KB2852386.
Неясности
Есть основания полагать, что алгоритм очистки в Windows 7 не совсем такой же, как в Windows 8 и выше с ключом /StartComponentCleanup. В частности, у меня и у читателей пока не выявилось сжатия файлов, несмотря на идентичность текстового описания в утилите cleanmgr. Проверьте у себя и напишите в комментариях!
Еще один непонятный нюанс — это загадочная фраза в статье базы знаний (перевод – мой):
Therefore, after you run the Disk Cleanup wizard, you may be unable to roll back to a superseded update. После очистки диска у вас может не быть возможности откатиться к обновлению, замененному более свежим.
И нигде не объясняется, от чего зависит эта возможность В моем эксперименте у всех обновлений возможность удаления сохранилась, как и должно быть при использовании ключа /StartComponentCleanup в Windows 8 и новее. Возможно, со временем конкретика и появится…
Наконец, не совсем понятно, что мешало реализовать это раньше, и почему обновление появилось именно сейчас. Кстати, перенос очистки в утилиту DISM.exe Windows 7 пока не планируется, что не позволяет обрабатывать автономные образы. Возможно, такой перенос вскрывает целый пласт вопросов поддержки, связанных с обслуживанием образов.
Подробнее о папке
WinSxS находится в корневой директории ОС (обычно это C:Windows) во всех современных Win, начиная с 7 версии. Файлы и каталоги, которые находятся там, нужны для работы операционной системы. Если их убрать, изменить, переместить или переименовать, могут возникнуть серьёзные проблемы. В лучшем случае появятся ошибки. В худшем — Виндовс больше не запустится. И придётся её восстанавливать. Поэтому перед тем как очистить какую-то системную директорию, убедитесь, что это не повредит ОС и не вызовет критических сбоев. И чтобы понять, можно ли удалить WinSxS, надо разобраться, для чего она нужна.
Как автоматизировать очистку папки WinSxS
В Windows 8 очистка возложена на отдельное запланированное задание, а в крайнем случае можно воспользоваться утилитой командной строки DISM.exe. В Windows 7 единственный доступный пока способ заключается в создании настроенной конфигурации утилиты «Очистка диска» и добавления полученной команды в планировщик.
В командной строке, от имени администратора, выполните:
:: настройка очистки папки winsxs REG ADD «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup» /v StateFlags0088 /t REG_DWORD /d 2 /f :: (необязательно) настройка очистки временных файлов (в частности зачищает временную папку dism) REG ADD «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files» /v StateFlags0088 /t REG_DWORD /d 2 /f :: создание запланированного задания «CleanupWinSxS» schtasks /Create /TN CleanupWinSxS /RL Highest /SC monthly /TR «cleanmgr /sagerun:88»
Запланированное задание «CleanupWinSxS» будет выполняться 1го числа каждого месяца, удаляя файлы, замененные обновлением, вышедшим во второй вторник предыдущего месяца. Число и время запуска вы можете изменить в библиотеке планировщика заданий (taskschd.msc). Для успешного выполнения задания необходимо наличие у пользователя прав администратора.
Как узнать, установлен ли SP1?
Именно в Windows 7 SP1 появился доступ к Win SxS. В предыдущих версиях Win очистка этой папки была невозможна. Чтобы посмотреть, есть ли этот пакет в ОС:
- Зайдите в «Панель управления» (к примеру, через меню «Пуск»).
- Откройте параметр «Система» в категории «Система и безопасность».
- В поле «Издание» должна быть информация: версия OS, копирайт Microsoft, год создания. Если там есть строчка «Service Pack 1», значит, всё в порядке и каталог можно редактировать.
Service Pack 1 в Windows 7
Вопросы и ответы
Первый день обсуждения очертил круг вопросов. Ответы на большинство из них можно узнать, изучив предыдущие статьи о папке WinSxS, на которые я активно ссылался. Но материал требует внимания и определенного уровня технической подготовки. Поэтому я постараюсь максимально просто разобрать их здесь.
Не удается скачать обновление KB2852386. Что делать?
Качать с помощью Windows Update, как я сразу советую в статье. Обновление будет в списке рекомендуемых.
Если вы пытаетесь скачать в браузере и получаете ошибку «Эта версия средства проверки Windows Geniune Advantage более не поддерживается…», убедитесь что:
- Для закачки используется Internet Explorer
- В Internet Explorer разрешена установка дополнений / элементов ActiveX
При соблюдении этих двух условий средство проверки подлинности не скачивается на ПК, а устанавливается в качестве надстройки браузера и выполняет валидацию.
Это — все официальные способы получения обновления, и другие здесь рассматриваться и обсуждаться не будут.
Удалится ли папка WinSxS после очистки?
Нет, но число подпапок и файлов в ней уменьшится, а следовательно и ее объем.
Что конкретно удаляется?
Неиспользуемые файлы обновлений. Эти файлы не участвуют в работе системы, потому что вместо них уже используются файлы из более свежих обновлений.
Сколько места освободится? Почему у других удалилось 6GB, а у меня ничего???
Объем удаленных файлов зависит от сочетания трех факторов:
- Дата установки SP 1 или Windows 7 с SP1
, от которого в любом случае ведется учет установленных обновлений. Чем дольше установлена система, тем больше количество и объем предыдущих версий файлов в WinSxS. - Частота обновления компонента
. Например, волны ошибки 0xc0000005 связаны с тем, что файлы ядра обновлялись три месяца подряд. При этом после каждого обновления в WinSxS сохранялась предыдущие версии файлов. - Регулярность установки обновлений
. Продолжая пример, если автоматическое обновление только что включили после трехмесячного перерыва, в winsxs осядет только один набор файлов, а не три.
Я попробую объяснить на пальцах, максимально упростив технические подробности и сделав некоторые допущения. Представьте, что Microsoft выпускает раз в два месяца обновление файла asdf.dll. Рассмотрим трех пользователей:
- Михаил
установил Windows 7 с SP1 (сразу после его выхода)
в феврале 2011
года и
включил автоматическую установку обновлений
. К октябрю 2013 года вышло 15 обновлений, заменяющих файл asdf.dll. Очистка диска удалила 14 ненужных файлов и оставила один из предыдущего обновления, сохраняя возможность отката. - Андрей
установил
в один день с Михаилом
, но
сразу отключил автоматическую установку обновлений
. Он их ставил вручную, руководствуясь гороскопом, и к октябрю 2013 года сделал это лишь 4 раза. Очистка диска удалила 3 ненужных предыдущих версии файла. - Алексей
регулярно переустанавливает систему, и последний раз он это сделал
в августе 2013 года
. К октябрю того же года успело выйти только одно обновление для файла asdf.dll. Очистка диска не удалила ничего, потому что нет предыдущего обновления, к которому можно откатиться.
Все трое в один день выполнили оптимизацию папки WinSxS. Очевидно, у Михаила она была самой большой, а очистка позволила высвободить самый значительный объем дискового пространства.
Так понятно?
Как определить, сжимаются ли файлы в папке WinSxS в процессе оптимизации
Судя по вопросам и некоторым скриншотам утилиты TreeSize, примеров анализа оказалось недостаточно. Все очень просто: в меню Scan – Select Directory и выберите C:\Windows\WinSxS.
Папки со сжатыми файлами помечены синим. Пока что я не видел ни одного факта сжатия в Windows 7.
Почему не работает команда DISM /Online /Cleanup-Image /StartComponentCleanup?
Потому что она для Windows 8 и новее. В Windows 7 используйте очистку диска, следуя инструкциям этой статьи.
Продолжение следует…
Удаление компонентов Windows
Windows 8, 10 позволяют включить, отключить компоненты ОС Windows. Эти функции расположены в панели управления в разделе «программы».
Все компоненты Windows хранятся в папке winsxs, не зависимо от того включены они или нет, и занимают место. Существует способ, помогающий удалить данные компоненты из winsxs целиком, тем самым освобождая место. В будущем Вы сможете загрузить удаленные компоненты по необходимости.
Запустите cmd с привилегиями админа. Введите команду ниже, затем нажмите Enter:
DISM.exe /Online /English /Get-Features /Format:Table
Командная строка построит таблицу имен компонентов, а так же их состояний. Запомните название удаляемого компонента и используете такую команду:
DISM.exe /Online /Disable-Feature /featurename:NAME /Remove
В этой команде Вам необходимо заменить NAME на название вашего компонента. В примере будем удалять DirectPlay.
Таким образом состояние изменится на пометку Disabled with Payload Removed. Вот такими способами Вы можете очистить папку winsxs в Windows.
На этом все, теперь Вы знаете winsxs — что это за папка Windows 7, 8, 10 и как делать ее чистку. Рекомендуется в первую очередь использовать первые три способа, хотя к методу с планировщиком заданий можно не прибегать, так как он дублируется, но все на Ваше усмотрение. Удаление компонентов не рекомендуется, потому что много места это не освободит, а удаленные компоненты могут понадобиться в будущем. Вы можете еще очистить папку temp в Windows, для высвобождения дополнительного места на HDD.
Одной из наиболее массивных папок в Windows 7, которая занимает значительное пространство на диске С, является системный каталог «WinSxS». Кроме того, у него имеется тенденция к постоянному росту. Поэтому у многих пользователей существует соблазн почистить эту директорию, чтобы освободить место на винчестере. Давайте разберемся, какие данные хранятся в «WinSxS» и можно ли чистить эту папку без негативных последствий для системы.
Дискуссия
У меня к вам примерно те же вопросы, что и после публикации аналогичной статьи о Windows 8. Но учитывая высокий процент владельцев Windows 7, я ожидаю увидеть больше ответов
Пожалуйста, напишите в комментариях
:
- Получилось ли у вас оптимизировать папку WinSxS
- Сколько места вы сэкономили (перевести байты в гигабайты можно так)
- Как давно вы установили систему
- Подверглись ли у вас файлы в подпапках WinSxS сжатию в рамках очистки (если сжимаются, покажите скриншот TreeSize)
Если у вас возникли вопросы, я постараюсь ответить на них в комментариях и/или дополнить статью.
Можно ли удалить WinSxS
WinSxS является частью операционной системы Windows и так просто удалить ее нельзя. Если же это все-таки сделать, то система перестанет загружаться и вам придётся ее восстанавливать либо делать полную переустановку Windows.
Тем не мене папку WinSxS можно очистить, значительно снизив ее размер и освободив память на системном диске. Но, процесс очистки будет немного отличаться, в зависимости от того, какая версия операционной системы установлена. Ниже мы расскажем о том, как очистить папку WinSxS в операционных системах Windows 7 и Windows 10.