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

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

Размер папки WinSxS обычно не должен превышать 10-15 Гб. Если на вашем компьютере размер этой директории существенно выше, вам может потребоваться запустить процедуру очистки.
Как узнать реальный размер папки 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 с помощью команды DISM:
Dism.exe /Online /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

Пакеты со статусом Superseded были заменены более новыми обновлениями и могут быть удалены. Для ручной очистки используется команда:
Dism /Online /Remove-Package /PackageName:PACKAGE_Full_Name.
Но использовать ее нет смысла, так как есть процедура автоматической очистки (описаны ниже)
Автоматическая очистка хранилища компонентов заданием планировщика
В Windows есть встроенное задание планировщика StartComponentCleanup, которое автоматически удаляет старые версии компонентов в папке WinSxS через 30 дней после их замены (чтобы у пользователя было время на откат к предыдущей версии). Это задание работает в фоновом режиме, запускается в рамках пакета задач обслуживания системы и не требует вмешательства пользователя.
С помощью PowerShell, проверьте, что это задание планировщика существует, что оно активно и когда запускалось последний раз:
Get-ScheduledTask StartComponentCleanup
Get-ScheduledTask StartComponentCleanup | Get-ScheduledTaskInfo

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

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

Команда ищет замененные компоненты (Superseded) и удаляет старые (неиспользуемые) версии системных файлов. DISM дополнительно применяет дельта-компрессию для замененных компонентов, превращая их в компактные разностные файлы.
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
В моем примере это помогло уменьшить размер папки WinSxS на 4.5 Гб.
С помощью другого параметра /ResetBase, вы можете удалить все предыдущие версии компонентов, оставшиеся после установки обновлений Windows:
appwiz.cpl
у обновлений пропадет кнопка «Удалить».
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
dism /online /Cleanup-Image /spsuperseded
Также для удаления старых файлов, оставшихся после установки обновлений, можно использовать графический мастер очистки диска.
- Выполните команду
cleanmgrc правами администратора. - В окне утилиты выберите диск и в следующем окне нажмите кнопку «Очистить системны файлы

- Далее выберите опцию “Файлы журнала обновления Windows» и нажмите ОK. Утилита очистки диска покажет сколько места вы можете освободить, удалив файлы журнала старых обновлений Windows

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

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

По умолчанию в образе Windows 10 и 11 удален только .Net Framework 3.5 (его всего можно установить вручную).
Чтобы удалить, например компонент TelnetClient с диска (из каталога WinSxS), выполните команду:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove

Если еще раз вывести список всех доступных функций по требованию в Windows, вы увидите, что статус компонента изменится на Disabled with Payload Removed.
В Windows Server для удаления файлов ролей и компонентов с диска используется PowerShell командлет Uninstall-WindowsFeature.
Таким образом в Windows можно существенно уменьшить размер папки WinSxS, удалив с диска неиспользуемые компоненты. В случае необходимости, вы всегда сможете установить удалённые компоненты через Windows Update или из установочного ISО образа.
DISM /Online /Cleanup-Image /RestoreHealth
Включаем NTFS сжатие на папке WinSxS в Windows
Еще один (неофициальный) способ уменьшить размера каталога WinSxS в Windows – сжать содержимое каталога на уровне файловой системы NTFS. Это даст до 30% экономии места для содержимого директории WinSxS.
Описанный способ сжатия хорошо работает в Windows 10 и почти не дает эффекта в Windows 11.
- Откройте командную строку с правами администратора;
- Остановите и отключите службы Windows Installer и Windows Module Installer:
sc stop msiserver sc stop TrustedInstaller sc config msiserver start= disabled sc config TrustedInstaller start= disabled
- Создайте резервную копию списков доступа (ACL), назначенных на файлы и папки в каталоге WinSxS с помощью утилиты icacls. Резервная копия ACL представляет собой обычной текстовый файл, в котором указаны все файлы и каталоги и назначенные на них NTFS разрешения (в дальнейшем этот файл понадобиться для восстановления оригинальных ACL):
icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t

- Назначьте себя владельцем папки WinSxS и всех вложенных каталогов:
takeown /f "%WINDIR%\WinSxS" /r
- Предоставьте своей учетной записи полные права на каталог WinSxS:
icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
- Теперь можно выполнить сжатие файлов в каталоге WinSxS с помощью команды compact. Т.к. часть файлов может использоваться Windows, нужно указать параметр
/i. Иначе сжатие будет остановлено на первом же занятом файле (в Windows 10 и 11 можно использовать более прогрессивное LZX сжатие):compact /s:"%WINDIR%\WinSxS" /c /a /i *
- Теперь нужно восстановить TrustedInstaller как владельца каталога WinSxS:
icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
- И вернуть оригинальные NTFS разрешения на каталог WinSxS из резервной копии ACL:
icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl" - Измените типа тип запуска служб Windows Installer и Windows Module Installer:
sc config msiserver start= demand sc config TrustedInstaller start= demand
Проверьте текущий размер каталога WinSxS.

Как вы видите, в нашем примере размер папки WinSxS за счет сжатия уменьшился с 9,36 Гб до 6,5 Гб (примерно на треть). Неплохо, особо для небольшого по размеру SSD-диска.
Указанные команды можно выполнять по отдельности (так проще контролировать успешность выполнения каждой из них), либо можно объединить все операции в один скрипт. Вы можете скачать готовый bat файл для сжатия WinSxS здесь compress_winsxs.bat
Данный скрипт нужно запускать периодически, т.к. в каталоге WinSxS будут появляться новые «несжатые» файлы после установки новых обновлений Windows и программ.
