Грамотная очистка папки «WinSxS» в Windows 7

Windows

Зачем нужна папка WinSxS в Windows и как безопасно уменьшить её размер?

Папка WinSxS содержит копии оригинальных файлов Windows и используется механизмом проверки целостности системных файлов (команда «sfc /scannow») для восстановления операционной системы, то есть ни в коем случае не может быть удалена. На самом деле в этой папке находится практически вся операционная система, включая неустановленные компоненты.

Однако папка хранилища системных компонентов со временем значительно увеличивается, особенно после обновлений Windows. Там хранятся все старые версии системных файлов, которые после обновлений уже не актуальны и не участвуют в восстановлении текущей версии Windows. Очистить папку WinSxS от ненужного хлама можно стандартными средствами прямо из командной строки Windows.

Для начала просто проанализируем содержимое репозитория компонентов WinSxS (команда выполняется от имени администратора):

Dism.exe/Online/Cleanup-Image/AnalyzeComponentStore

В результате выполнения команды отобразится реальный размер склада, и будет указано, нужна ли уборка.

Вы можете очистить хранилище WinSxS с помощью следующей команды:

Dism.exe/Online/Cleanup-Image/StartComponentCleanup

Эта операция может занять довольно много времени (у меня на рабочем сервере процесс длился более часа), но в результате освободилось 8,5 Гб (!) места на диске — повторите первую команду, чтобы оценить результат.

Однако это не предел, и папку WinSxS можно сжать еще сильнее, запустив команду очистки с параметром /ResetBase (все предыдущие версии компонентов удаляются):

Dism.exe/Online/Cleanup-Image/StartComponentCleanup/ResetBase

Здесь следует отметить, что удаление предыдущих версий компонентов делает невозможным откат системы в случае установки проблемных обновлений. Запустите эту команду через некоторое время после обновления.

Способы оптимизации WinSxS

Перед очисткой WinSxS крайне желательно указать точный размер — на случай, если он занимает не так много места, как кажется. Откройте командную строку от имени администратора и выполните следующую команду:

Анализ займет некоторое время.

Когда операция завершится, обратите внимание на параметр «Фактический размер хранилища компонентов», значение будет точно соответствовать истинному размеру папки WinSxS. Более того, инструмент Dism сам решит, нужно его удалять или нет. В представленном здесь примере очистка не требуется, у вас может быть другая ситуация. Но вернемся к теме, как почистить папку WinSxS.

Сleanmgr

Самый очевидный способ — использовать встроенный инструмент cleanmgr. Запустите его через окно «Выполнить» и нажмите кнопку «Очистить системные файлы».

Найдите и проверьте «Очистка Центра обновления Windows» и нажмите «ОК». Если у вас нет этого пункта, удалять в принципе нечего.

Планировщик заданий

Вы также можете очистить папку WinSxS через планировщик задач. Откройте этот инструмент с помощью команды taskschd.msc, затем разверните ветку Microsoft — Windows — Service в левой колонке.

Выделите задачу StartComponentCleanup и нажмите «Выполнить». Кстати, управляемая планировщиком очистка запускается автоматически каждые 30 дней в фоновом режиме.

Dism

Недостаток вышеперечисленных способов в том, что оценка освобождаемого места весьма приблизительна и может варьироваться до нескольких сотен мегабайт в обе стороны. Кроме того, обновления, установленные за последние 30 дней, игнорируются при очистке через планировщик. Если вы хотите лучших результатов, используйте инструмент Dism. Открыв командную строку с повышенными привилегиями или PowerShell, выполните следующую команду:

Dism.exe/онлайн/Cleanup-Image/StartComponentCleanup

Запущенный с этими параметрами, Dism делает то же самое, что и cleanmgr, но более точно определяет размер освобождаемого пространства.

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

Dism.exe /online /Cleanup-Image /SPSuperseded

Однако помните, что после выполнения этой команды вы уже не сможете откатиться на предыдущую версию Windows 7/10, так как все резервные копии будут удалены. Кстати, если сохраненные пакеты обновлений не будут найдены, вы получите сообщение, как на прикрепленном скриншоте.

Вместо приведенной выше команды вы также можете использовать другую, которая очищает старые пакеты для каждого компонента:

Dism.exe/онлайн/Cleanup-Image/StartComponentCleanup/ResetBase

Как узнать реальный размер папки WinSxS в Windows 10?

Самый простой способ узнать текущий размер каталога WinSxS в Windows — запустить Проводник и открыть свойства папки %windir%WinSxS (или использовать сценарий PowerShell). Но имейте в виду, что большинство файловых менеджеров (включая File Explorer) отображают каталог WinSxS немного большего размера, чем он занимает на диске.

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

Чтобы получить реальный (исключая жесткие ссылки) размер папки WinSxS, используйте утилиту SysInternal du:
вы -vc:windowswinSXS
получить реальный размер каталога winsxs с помощью утилиты du.exe

Но проще всего проанализировать размер хранилища компонентов в папке WinSxS с помощью команды DISM:

Dism.exe/Online/Cleanup-Image/AnalyzeComponentStore

Dism.exe Cleanup Image-AnalyzeComponentStore

Посмотрим, что возвращает эта команда:

Размер хранилища компонентов File Explorer: 5,70 ГБ
Фактический размер хранилища компонентов: 5,49 ГБ (фактический размер хранилища компонентов без учета жестких ссылок)
Совместно с Windows: 3,12 ГБ (обязательные системные файлы, не могут быть удалены)

Бэкапы и отключенные компоненты: 2,12 Гб (файлы устаревших компонентов нужны на случай проблем с установленными обновлениями)
Кэш и временные данные: 245,87 МБ (файлы используются для ускорения работы сервисной системы)
Дата последней очистки: 2018-07-31 12:45:23

Количество выпущенных пакетов: 10 (файлы, которые были обновлены после обновлений Windows, будут удалены при очистке хранилища)
Рекомендуется очистка на складе компонентов: Да

Как видите, в этом случае можно уменьшить размер каталога WinSxS на 2,1 ГБ + 250 МБ.

Команда DISM также позволяет проверить и исправить образ Windows:

DISM/Онлайн/Cleanup-Image/RestoreHealth

Очистка хранилища компонентов WinSxS в Windows

Самый быстрый и простой способ освободить место в хранилище компонентов Windows (т.е очистить папку WinSxS) — это оптимизировать хранилище с помощью команды:

Dism.exe/Online/Cleanup-Image/StartComponentCleanup

Образ очистки Dism.exe StartComponentCleanup

Параметр Dism /StartComponentCleanup поддерживается во всех версиях Windows, начиная с Windows 8/Windows Server.

После завершения очистки проверьте текущий размер хранилища компонентов:

Dism.exe/Online/Cleanup-Image/AnalyzeComponentStore

В моем примере это помогло уменьшить размер папки WinSxS на 2,5 ГБ.

Другой параметр /ResetBase позволяет удалить все предыдущие версии компонентов, оставшиеся после установки обновлений Windows. После этого вы не сможете удалить установленные обновления или Service Pack, а в панели обновлений appwiz.cpl пропадет кнопка «Удалить» для обновлений»).

Чтобы очистить старые версии компонентов, запустите:

Dism.exe/Online/Cleanup-Image/StartComponentCleanup/ResetBase

В Windows 7 и Windows Server 2008 R2 для очистки старых версий компонентов, оставшихся после установки пакета обновлений, использовался другой вариант DISM:

dism/online/Cleanup-Image/spsuperseded

Вы также можете удалить устаревшие обновления с помощью Мастера очистки диска. Запустите команду cleanmgr с правами администратора.

В окне инструмента выберите диск и нажмите кнопку «Очистить системные файлы» в следующем окне».

cleanmgr windows 10 очистить системные файлы

Затем выберите параметр «Файлы журнала Центра обновления Windows» и нажмите «ОК». Инструмент очистки диска показывает, сколько места можно освободить, удалив старые файлы журнала обновлений Windows. В моем примере это 427 МБ.

удалить файлы журнала обновления Windows

После очистки хранилища с помощью DISM проверьте, сколько места на диске освободилось.

Планировщик заданий Windows 10 и Windows Server 2016 имеет специальную задачу автоматического обслуживания, которая регулярно оптимизирует и очищает каталог WinSxS (аналогично команде dism с ключом StartComponentCleanup). Это задание StartComponentCleanup находится в папке MicrosoftWindowsServicing. Это задание выполняется в фоновом режиме и автоматически удаляет версии компонентов старше 30 дней, которые были заменены более новыми версиями.

Вы можете запустить это задание вручную следующим образом:

schtasks.exe /Run /TN «MicrosoftWindowsServicingStartComponentCleanup»

планировщик задания StartComponentCleanup - очистка компонентов

Читайте также: Как открыть автозагрузки в Windows 7

Удаление неиспользуемых компонентов Windows (Windows Server)

В статье «Безопасная очистка папки WinSxS в Windows Server 2016/2012» мы рассмотрели функцию «Функции по запросу», которая предоставляет возможность удалять с диска двоичные файлы с неиспользуемыми ролями и функциями из каталога WinSxS. Для этого Windows Server использует командлет PoweShell Uninstall-WindowsFeature .

В Windows 10 командлет Uninstall-WindowsFeature отсутствует, и для удаления компонентов Windows из образа необходимо использовать DISM.

DISM, в отличие от Uninstall-WindowsFeature, не удаляет зависимые компоненты.

Полный список доступных функций в образе Windows 10 можно получить с помощью команды:
DISM.exe/Online/English/Get-Features/Format:Table

windows 10 dism получить список установленных функций

Например, чтобы удалить компонент TelnetClient с диска (из каталога WinSxS), выполните команду:
DISM.exe/Online/Disable-Feature/Имя функции:TelnetClient/Remove
DISM Отключить-Удалить функцию

Если вы снова отобразите все доступные функции по запросу в Windows, вы увидите, что статус компонента изменится на «Отключено» с удаленной полезной нагрузкой.

Таким образом, в Windows можно значительно уменьшить размер папки WinSxS, удалив с диска неиспользуемые компоненты. Единственный нюанс — этот вариант очистки каталога WinSxS подходит для достаточно продвинутых пользователей, разбирающихся в компонентах Windows 10 и их назначении.

Включаем NTFS сжатие на папке WinSxS в Windows

Еще один способ уменьшить размер каталога WinSxS в Windows 10 — сжать содержимое каталога на уровне файловой системы NTFS.

Примечание. Как и при всех других нестандартных вмешательствах в настройку системы, рекомендуется создать резервную копию вашего образа Windows 10.

  1. откройте командную строку с правами администратора;
  2. Остановите и отключите службы установщика Windows и установщика модулей Windows: sc stop msserver sc stop TrustedInstaller sc config msserver start= отключено sc config TrustedInstaller start= отключено
  3. Создайте резервную копию списков доступа (ACL), назначенных файлам и папкам в каталоге WinSxS, с помощью утилиты icacls. Резервная копия ACL представляет собой обычный текстовый файл, в котором перечислены все файлы и каталоги и назначенные им разрешения NTFS (этот файл потребуется позже для восстановления исходных ACL): icacls «%WINDIR%WinSxS» /save » %WINDIR% WinSxS_NTFS .acl»/tрезервное копирование разрешений каталога winsxs
  4. Сделайте себя владельцем папки WinSxS и всех подкаталогов: takeown /f «%WINDIR%WinSxS» /r
  5. Предоставьте вашей учетной записи полные права на каталог WinSxS: icacls «%WINDIR%WinSxS» /give «%USERDOMAIN%%USERNAME%»:(F) /t
  6. Теперь вы можете сжимать файлы в каталоге WinSxS с помощью команды compact. Поскольку некоторые файлы могут использоваться Windows, необходимо указать параметр /i. В противном случае сжатие останавливается на первом занятом файле (в Windows 10 можно использовать более прогрессивное сжатие LZX): compact /s:»%WINDIR%WinSxS» /c /a /i *Сжатие содержимого каталога winsxs
  7. Теперь вам нужно восстановить TrustedInstaller как владельца каталога WinSxS: icacls «%WINDIR%WinSxS» /setowner «NT SERVICETrustedInstaller» /t
  8. И восстановите исходные разрешения NTFS для каталога WinSxS из резервной копии ACL: icacls «%WINDIR%» /restore «%WINDIR%WinSxS_NTFS.acl»
  9. Измените тип запуска для служб установщика Windows и установщика модулей Windows: sc config msiserver start= требование sc config TrustedInstaller start= требование

Проверьте текущий размер каталога WinSxS.

уменьшить размер каталога winsxs в Windows10 с помощью сжатия

Как видите, в нашем примере размер папки WinSxS уменьшился с 9,36 ГБ до 6,5 ГБ (примерно на треть) за счет сжатия. Неплохо, особенно для небольшого SSD-накопителя.

Указанные команды можно выполнять по отдельности (так легче проверить успешность каждой из них), а можно объединить все операции в один файл скрипта. Вы можете скачать готовый bat-файл для сжатия WinSxS здесь compress_winsxs.bat

Этот скрипт нужно запускать периодически, потому что новые «несжатые» файлы будут появляться в каталоге WinSxS после установки новых обновлений Windows и программ.

Методы чистки «WinSxS»

«WinSxS» — это системный каталог, содержимое которого в Windows 7 находится по следующему пути:

C:WindowsWinSxS

Содержимое папки WinSxS в проводнике Windows 7

В названном каталоге хранятся версии всех обновлений различных компонентов Windows, и эти обновления постоянно накапливаются, что приводит к постоянному увеличению размера. При различных ошибках в системе с помощью содержимого «WinSxS» производятся откаты до стабильного состояния операционной системы. Поэтому удалять или полностью очищать эту директорию категорически нельзя, так как при малейшей ошибке вы рискуете получить мертвую систему. Но вы можете очистить некоторые компоненты в указанном каталоге, хотя Microsoft рекомендует делать это только в крайнем случае, если у вас критически мало места на диске. Поэтому перед выполнением любой из процедур, которые будут описаны ниже, советуем сделать резервную копию операционной системы и хранить ее на отдельном носителе.

Установка обновления KB2852386

Следует отметить, что, в отличие от операционной системы Windows 8 и более поздних операционных систем, «семерка» изначально не имела встроенного средства для очистки папки «WinSxS», а ручное удаление, как было сказано выше, недопустимо. Но, к счастью, позже было выпущено обновление KB2852386, которое содержит обновление для инструмента Cleanmgr и помогает решить эту проблему. Поэтому вы должны сначала убедиться, что это обновление установлено на вашем ПК или установить его, если оно недоступно.

  1. Щелкните Пуск. Перейдите в «Панель управления».Зайдите в панель управления с помощью кнопки «Пуск» в Windows 7
  2. Нажмите «Система и безопасность».Перейдите в «Система и безопасность» в панели управления в Windows 7
  3. Зайдите в Центр обновления Windows».Перейдите в Центр обновления Windows в разделе «Система и безопасность» на панели управления в Windows 7
  4. В левой нижней части появившегося окна нажмите на надпись «Установленные обновления». Перейдите к установленным обновлениям из Центра обновления Windows на панели управления в Windows 7
  5. Откроется окно со списком обновлений, установленных на вашем компьютере. Нам нужно искать обновление KB2852386 в разделе «Microsoft Windows» этого списка.Окно «Установленные обновления» в Панели управления в Windows 7
  6. Но проблема в том, что пунктов в списке может быть много, а потому вы рискуете потратить много времени на поиски. Чтобы упростить задачу, поместите курсор в поле поиска справа от адресной строки текущего окна. Введите следующее выражение:КБ2852386

    После этого в списке должен остаться только пункт с кодом выше. Если вы его видите, все в порядке, необходимое обновление установлено и можно сразу переходить к методам очистки папки WinSxS».

    Обновление KB2852386 устанавливается в окне «Установленные обновления» панели управления в Windows 7

    Если пункт не отображается в текущем окне, значит, для достижения целей, поставленных в данной статье, следует выполнить процедуру обновления.

    Обновление KB2852386 не установлено в окне «Установленные обновления» панели управления в Windows 7

  7. Вернитесь в «Центр обновлений». Это можно сделать быстро, если вы действовали точно по описанному выше алгоритму, нажав на стрелку, указывающую влево в верхней части текущего окна слева от адресного поля.Вернитесь в Центр обновления Windows из окна «Установленные обновления» на панели управления в Windows 7
  8. Чтобы убедиться, что компьютер видит необходимое обновление, нажмите на надпись «Проверить наличие обновлений» в левой части окна. Это особенно важно, если вы не включили автоматическое обновление.Переключитесь на проверку обновлений в окне Центра обновления Windows в Панели управления Windows 7
  9. Система будет искать обновления, которые не установлены на вашем ПК.Проверьте наличие обновлений в окне Центра обновления Windows в Панели управления Windows 7
  10. После завершения процедуры нажмите на надпись «Доступны важные обновления».Переключается на список важных обновлений в окне Центра обновления Windows в Панели управления Windows 7
  11. Откроется список важных обновлений, которые не установлены на вашем ПК. Вы можете выбрать, какие из них установить, поставив галочки слева от названий. Установите флажок рядом с «Обновление для Windows 7 (KB2852386)». Затем нажмите «ОК».Переход к установке обновления KB2852386 в окне Центра обновления Windows на панели управления Windows 7
  12. Вернитесь в окно «Центр обновлений», нажмите «Установить обновления».Запускает установку обновления из окна Центра обновления Windows в Панели управления Windows 7
  13. Начнется процесс установки выбранных обновлений. Установите обновление в окне Центра обновления Windows в Панели управления Windows 7
  14. После его завершения перезагрузите компьютер. Теперь у вас будет необходимый инструмент для очистки каталога «WinSxS».

Обновления устанавливаются в окне Центра обновления Windows в Панели управления Windows 7

Далее мы рассмотрим различные способы очистки каталога «WinSxS» с помощью инструмента Cleanmgr.

Способ 1: «Командная строка»

Нужную нам процедуру можно выполнить с помощью «Командной строки», через которую запускается утилита Cleanmgr.

  1. Щелкните Пуск. Нажмите «Все программы».Перейти ко всем программам с помощью кнопки «Пуск» в Windows 7
  2. Перейдите в папку «Стандартные».Перейдите в каталог аксессуаров с помощью кнопки «Пуск» в Windows 7
  3. Найдите в списке «Команда». Нажмите на название правой кнопкой мыши (ПКМ). Выберите опцию «Запуск от имени администратора».
  4. Командная строка включена. Введите следующую команду:Cleanmgr

    Нажмите Ввод.

    Запустите утилиту cleanmgr, введя команду в интерфейсе командной строки Windows 7

  5. Откроется окно с предложением выбрать диск, на котором следует выполнить очистку. По умолчанию должен быть раздел C. Оставьте его, если ваша операционная система имеет расположение по умолчанию. Если по какой-то причине он установлен на другом диске, выберите его. Нажмите ОК».Выбор диска для очистки в диалоговом окне в Windows 7
  6. После этого инструмент делает оценку того, сколько места он может очистить во время соответствующей операции. Это может занять некоторое время, поэтому наберитесь терпения.Оцените, сколько места можно освободить на диске C с помощью Очистки диска в Windows 7
  7. Откроется список объектов системы, подлежащих очистке. Среди них обязательно найдите место «Очистка Центра обновления Windows» (или «Файлы резервных копий пакета обновлений») и поставьте напротив него галочку. Именно эта позиция отвечает за очистку папки WinSxS. Ставьте галочки напротив остальных пунктов на свое усмотрение. Вы можете снять все остальные теги, если не хотите больше ничего чистить, или пометить те компоненты, где вы также хотите удалить «мусор». Затем нажмите «ОК». Запустите очистку диска из окна очистки диска в Windows 7

    Обратите внимание на следующее! В окне «Очистка диска» может отсутствовать параметр «Очистка Центра обновления Windows». Это означает, что в каталоге «WinSxS» нет элементов, которые можно было бы удалить без негативных последствий для системы.

  8. Откроется диалоговое окно с вопросом, действительно ли вы хотите удалить выбранные компоненты. Соглашаемся, нажав «Удалить файлы».Подтвердите удаление файлов в диалоговом окне «Очистка диска» в Windows 7
  9. Затем средство Cleanmgr очистит папку WinSxS от ненужных файлов, а затем автоматически закроется.

Как удалить файлы с помощью очистки диска в Windows 7

Способ 2: Графический интерфейс Windows

Не всем пользователям удобно запускать инструменты через «Командную строку». Большинство пользователей предпочитают делать это с помощью графического интерфейса ОС. Это вполне осуществимо и для инструмента Cleanmgr. Конечно, этот способ более понятен для простого пользователя, но, как вы увидите, он займет больше времени.

  1. Нажмите «Пуск» и перейдите в «Компьютер».Навигация по компьютеру через меню «Пуск» в Windows 7
  2. В открывшемся окне «Проводника» в списке жестких дисков вы найдете название раздела, на котором установлена ​​текущая операционная система Windows. В подавляющем большинстве случаев это диск C. Щелкните его правой кнопкой мыши. Выберите «Свойства». Перейдите к свойствам диска C в проводнике Windows с помощью контекстного меню в Windows 7
  3. Нажмите «Очистка диска» в появившемся окне».Следует очистить диск C на вкладке «Общие» окна свойств диска в Windows 7
  4. Будет запущена точно такая же процедура оценки очищаемого пространства, которую мы видели с помощью предыдущего метода.Процедура оценки того, сколько места можно освободить на диске С с помощью программы «Очистка диска» в Windows 7
  5. В открывшемся окне игнорируем список очищаемых элементов и нажимаем «Очистить системные файлы». Перейдите в окно «Очистка системных файлов» из окна «Очистка диска» в Windows 7
  6. Освободившееся место на станции будет переоценено, но с учетом системных элементов.
  7. После этого откроется точно такое же окно «Очистка диска», которое мы наблюдали в способе 1. Далее нужно выполнить все действия, которые были в нем описаны, начиная с шага 7.

Окно очистки диска в Windows 7

Способ 3: Автоматическая чистка «WinSxS»

В Windows 8 есть возможность запланировать очистку папки WinSxS через планировщик задач. К сожалению, эта опция недоступна в Windows 7. Тем не менее, вы все равно можете запланировать периодическую очистку через ту же «командную строку», но без гибкого расписания.

  1. Включите «Командную строку» с правами администратора так же, как описано в способе 1 этого руководства. Введите следующее выражение::: параметры очистки каталога winsxs
    REG ADD «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCachesUpdate Cleanup» /v StateFlags0088 /t REG_DWORD /d 2 /f
    :: параметры для очистки временных объектов
    REG ADD «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCachesTemporary Files» /v StateFlags0088 /t REG_DWORD /d 2 /f
    :: генерация запланированной задачи «CleanupWinSxS»
    schtasks /Create /TN CleanupWinSxS /RL Highest /SC ежемесячно /TR «cleanmgr /sagerun:88»

    Нажмите «Ввод.

  2. Теперь вы запланировали ежемесячную очистку папки «WinSxS» с помощью инструмента Cleanmgr. Задание будет выполняться автоматически раз в месяц в 1 число без непосредственного участия пользователя.

Как видите, в Windows 7 удалить папку «WinSxS» можно как через «Командную строку», так и через графический интерфейс ОС. Вы также можете запланировать периодический запуск этой процедуры, введя команды. Но во всех перечисленных выше случаях операция будет производиться с помощью утилиты Cleanmgr, специального обновления, которое в случае его отсутствия на ПК необходимо установить через стандартный алгоритм обновления Windows. Каждому пользователю очень важно помнить: категорически запрещается чистить папку WinSxS вручную путем удаления файлов или с помощью сторонних программ.

Как очистить папку WinSxS в Windows 7

В Windows 7 вы можете удалить ненужные данные из папки WinSxS, выполнив команду в командной строке.

  1. Запустите командную строку от имени администратора.
  2. Введите команду в окно интерпретатора командной строки и нажмите клавишу «Enter»:

DISM/онлайн/Cleanup-Image/SpSuperseded

команда Run

Оцените статью
WinRAR
Adblock
detector