Корректная очистка папки WinSxS в Windows

Анализируя, чем занято свободное место на системном диске в Windows, многие пользователи обнаруживают, что довольно много места занимает каталог WinSxS ( %windir%\WinSxS ). В этой статье мы расскажем, что хранится в системной папке WinSxS и как корректно ее очистить.

Каталог C:\windows\WinSxS (WinSxS, Windows Side By Side) является хранилищем компонентов Windows. В этом каталоге хранятся dll библиотеки, бинарные и xml файлы, необходимые для установки и работы различных ролей и компонентов Windows (как установленных, так и доступных к установке). При установке обновлений Windows, некоторые системные файлы компонентов заменяются новыми, при это в хранилище компонентов WinSxS сохраняются старые версии файлов. Это позволяет в случае появления проблем после установки обновлений, безопасно удалить обновления в Windows и откатиться к предудущей версии компонента.

каталог WinSxS в windows10

Другая сторона такой архитектуры – размер каталога WinSxS постоянно растет из-за хранения старых версий компонентов.

Размер папки winsxs в windows 11

Размер папки WinSxS обычно не должен превышать 10-15 Гб. Если на вашем компьютере размер этой директории существенно выше, вам может потребоваться запустить процедуру очистки.

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

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

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

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

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

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

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Dism.exe Cleanup Image-AnalyzeComponentStore

Разберемся, что возвращает данная команда:

Размер хранилища компонентов по данным проводника 11.30 GBЭто размер хранилища с учетом жестких ссылок, который отображается в проводнике Windows
Фактический размер хранилища компонентов 11.12 GBРеальный размер хранилища компонентов за исключением жестких ссылок
Совместно с Windows 6.66 GBОбязательные системные файлы системы. Не могут быть удалены
Резервные копии и отключенные компоненты 4.46 GBУстаревшие файлы компонентов, которые нужны на случай проблем с установленными обновлениями
Кэш и временные данные 0 bytesФайлы используются для ускорения работы системы обслуживания
Дата последней очистки 2026-05-05 10:21:49
Число освобождаемых пакетов 1Компоненты, чьи файлы были обновлены после установки обновлений Windows. Старые версии файлов этих компонентов можно безопасно удалить при очистке хранилища
Рекомендуется очистка хранилища компонентов Да/Нет

Как вы видите, в данном случае можно уменьшить размер каталога WinSxS на 4.46 Гб.

Список старых версий компонентов в образе, доступные к удалению можно вывести с помощью команды:

Dism /Online /Get-Packages /Format:Table

supressed пакеты которые можно удалить из образа windows

Пакеты со статусом Superseded были заменены более новыми обновлениями и могут быть удалены. Для ручной очистки используется команда: Dism /Online /Remove-Package /PackageName:PACKAGE_Full_Name. Но использовать ее нет смысла, так как есть процедура автоматической очистки (описаны ниже)

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

В Windows есть встроенное задание планировщика StartComponentCleanup, которое автоматически удаляет старые версии компонентов в папке WinSxS через 30 дней после их замены (чтобы у пользователя было время на откат к предыдущей версии). Это задание работает в фоновом режиме, запускается в рамках пакета задач обслуживания системы и не требует вмешательства пользователя.

С помощью PowerShell, проверьте, что это задание планировщика существует, что оно активно и когда запускалось последний раз:

Get-ScheduledTask StartComponentCleanup

Get-ScheduledTask StartComponentCleanup | Get-ScheduledTaskInfo

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

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

Start-ScheduledTask StartComponentCleanup

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

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

Для ручного запуска немедленной процедуры очистки хранилища компонентов Windows от старых версий файлов, не дожидаясь истечения 30 дней, можно использовать команду:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup

Dism.exe Cleanup Image StartComponentCleanup

Команда ищет замененные компоненты (Superseded) и удаляет старые (неиспользуемые) версии системных файлов. DISM дополнительно применяет дельта-компрессию для замененных компонентов, превращая их в компактные разностные файлы.

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

В моем примере это помогло уменьшить размер папки WinSxS на 4.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

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

  1. Выполните команду cleanmgr c правами администратора.
  2. В окне утилиты выберите диск и в следующем окне нажмите кнопку «Очистить системны файлыcleanmgr windows 10 Очистить системны файлы
  3. Далее выберите опцию “Файлы журнала обновления Windows» и нажмите ОK. Утилита очистки диска покажет сколько места вы можете освободить, удалив файлы журнала старых обновлений Windowsудалить файлы журнала обновлений windows

В Windows 11 новый мастер очистки диска доступен в панели Settings по пути System -> Storage -> Temporary Files. Выберите опцию Windows Update Cleanup.

windows11 опция update clenup в панели Параметры

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

В рамках концепции Features on Demand (функции по требованию), в Windows можно удалить с диска бинарные файлов неиспользуемых ролей и компонентов из каталога WinSxS.

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

dism удалить с диска компоненты feature on demand

По умолчанию в образе Windows 10 и 11 удален только .Net Framework 3.5 (его всего можно установить вручную).

Чтобы удалить, например компонент TelnetClient с диска (из каталога WinSxS), выполните команду:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
DISM Disable-Feature Remove

Если еще раз вывести список всех доступных функций по требованию в Windows, вы увидите, что статус компонента изменится на Disabled with Payload Removed.

В Windows Server для удаления файлов ролей и компонентов с диска используется PowerShell командлет Uninstall-WindowsFeature.

Таким образом в Windows можно существенно уменьшить размер папки WinSxS, удалив с диска неиспользуемые компоненты. В случае необходимости, вы всегда сможете установить удалённые компоненты через Windows Update или из установочного ISО образа.

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

DISM /Online /Cleanup-Image /RestoreHealth

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

Еще один (неофициальный) способ уменьшить размера каталога WinSxS в Windows – сжать содержимое каталога на уровне файловой системы NTFS. Это даст до 30% экономии места для содержимого директории WinSxS.

Описанный способ сжатия хорошо работает в Windows 10 и почти не дает эффекта в Windows 11.

Примечание. Как и при любом другом нестандартном вмешательстве в конфигурацию системы, рекомендует создать резевную копию вашего образа Windows .
  1. Откройте командную строку с правами администратора;
  2. Остановите и отключите службы Windows Installer и Windows Module Installer:
    sc stop msiserver
    sc stop TrustedInstaller
    sc config msiserver start= disabled
    sc config TrustedInstaller start= disabled
  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" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
  6. Теперь можно выполнить сжатие файлов в каталоге WinSxS с помощью команды compact. Т.к. часть файлов может использоваться Windows, нужно указать параметр /i . Иначе сжатие будет остановлено на первом же занятом файле (в Windows 10 и 11 можно использовать более прогрессивное LZX сжатие):
    compact /s:"%WINDIR%\WinSxS" /c /a /i *

    Сжимаем содержимое каталога winsxs

  7. Теперь нужно восстановить TrustedInstaller как владельца каталога WinSxS:
    icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
  8. И вернуть оригинальные NTFS разрешения на каталог WinSxS из резервной копии ACL: icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
  9. Измените типа тип запуска служб Windows Installer и Windows Module Installer:
    sc config msiserver start= demand
    sc config TrustedInstaller start= demand

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

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

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

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

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

На что может повлиять сжатие каталога WinSxS? Windows прозрачно работает со сжатыми файлами. Однако при обработке таких файлов, ей может понадобиться дополнительное время на их декомпрессию/компрессию. Это может вызвать небольшое замедление при установке компонентов Windows или обновлений. Однако для современных CPU операция сжатия/декомпрессии выполняется практически мгновенно, так что реального уменьшения скорости пользователь даже не заметит.


Предыдущая статья Следующая статья


Комментариев: 37 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)