Уменьшение размера папки windows

FAQ: Очистка и сжатие папки WinSxS в Windows 10 и 8.1

В этой статье мы поговорим о каталоге WinSxS в Windows 10 и Windows 8.1, причинах его постоянного роста и способах очистки. Каталог C:\windows\WinSxS является хранилищем компонентов Windows. В этом каталоге хранятся dll библиотеки, бинарные и xml файлы, необходимые для установки и работы той или иной роли ОС Windows. При установке обновлений Windows (это происходит ежемесячно), новая версия обновляемого компонента устанавливается в систему, а старая сохраняется в хранилище WinSxS (это необходимо для обеспечения совместимости и возможности «отката» на старые версии компонентов при удалении проблемного обновления).

Самым естественный способ уменьшить размер папки WinSxS в Windows 10 и Windows 8 — удалить из системы старые версий компонентов, оставшиеся после обновления системы. Для этого используется стандартный мастер очистки диска cleanmgr или специальные опции команды DISM (см. ниже).

Как узнать реальный размер папки WinSxX в Windows 10 / 8.1

Еще одной особенностью папки WinSxS является наличие в ней большого количества так называемых hard links (жестких символьных ссылок). Жесткая ссылка представляет собой полностью равноправный оригинальному указатель на файл. Т.е. указатель и исходный файл могут иметь разные имена и находиться в пределах одного раздела в разных каталогах, но реально указывать они будут на один и тот же объект. Именно из-за наличия жестких ссылок, которые включаются в расчет общего размера каталога, файловые менеджеры (и в том числе Windows Explorer) показывают несколько преувеличенный размер папки WinSxS. Узнать реальный (без учета жестких ссылок) размер папки WinSxS можно с помощью утилиты SysInternal du:

Так же вы можете проанализировать размер хранилища компонентов (папку WinSxS) с помощью команды DISM:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

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

Размер хранилища компонентов по данным проводника : 5.70 GB (это размер хранилища без учета жестких ссылок)
Фактический размер хранилища компонентов : 5.49 GB (реальный размер хранилища компонентов с учетом жестких ссылок)
Совместно с Windows : 3.12 GB (обязательные файлы системы, не могут быть удалены)
Резервные копии и отключенные компоненты : 2.12 GB (устаревшие файлы компонентов, которые нужны на случай проблем установленными обновлениями)
Кэш и временные данные : 245.87 MB (файлы используются для ускорения работы системы обслуживания)
Дата последней очистки : 2018-07-31 12:45:23
Число освобождаемых пакетов : 10 (файлы, которые обновились после установки обновлений Windows, они будут удалены при очистке хранилища)
Рекомендуется очистка хранилища компонентов : Да

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

У многих пользователей возникает естественный вопрос можно ли вручную удалить файлы из папки WinSxS. Ответ на этот вопрос – категоричное НЕТ! Такими действиями с большой долей вероятности получиться нарушить работоспособность Windows. И хотя некоторые попытки удаления файлов из папки WinSxS могут быть удачными, рекомендовать этот способ с точки зрения потенциальной опасности для системы нельзя.

Остановимся на наиболее безвредных с точки зрения системы способах очистки папки WinSxS в Windows 10 и Windows 8.1. Это:

  • Удаление старых версий компонентов, оставшихся после установки обновлений;
  • Технология FeaturesonDemand (функции по требованию), позволяющая удалить неиспользуемые компоненты Windows с диска;
  • Сжатие файлов в папке WinSxS – способ уменьшить размер каталога WinSxS за счет NTFS компрессии ее содержимого.

Для достижения максимального результата все три способа можно использовать совместно.

Очистка хранилища компонентов (папки WinSxS ) в Windows 10 / 8.1

На мой взгляд самый быстрый и простой способ очистить место в хранилище компонентов (т.е. очистить папку WinSxS), удалив старые версии компонентов – выполнить команду:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup


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

Читайте также:  Mediaget для windows 10 без вирусов

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

Также вы можете удалить устаревшими обновления из мастера «очистки диска». Выполните команду cleanmgr c правами администратора.

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

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

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

Кроме того, в планировщике Windows 10 есть специальное задание автоматического обслуживания, которое выполняет ту же самую операцию, что и dism с ключом StartComponentCleanup, удаляя все устаревшие обновления старше 30 дней. Это задание с именем StartComponentCleanup находится в разделе \Microsoft\Windows\Servicing.

Функции по требованию в Windows 10 и 8.1

В статье «Безопасная очистка папки WinSxS в Windows Server 2012» мы рассмотрели функцию Features on Demand (функции по требованию), предоставляющую возможность удаления бинарных файлов неиспользуемых ролей из каталога WinSxS. Для удаления с диска неиспользуемых ролей существует специальный командлет Powershell — Uninstall-WindowsFeature. Однако в случае с Windows 10 и 8.1 не все так просто. Дело в том, что командлет Uninstall-WindowsFeature в этих версиях Windows отсутствует. А технология Features on Demand реализуется только с помощью DISM или командлета DISM PowerShell. Кроме того, важно знать, что команда DISM, в отличии от командлета Uninstall-WindowsFeature, не анализирует зависимости пакетов друг от друга. Так что при удалении пакета Windows с помощью DISM будет удален только указанный в команде компонент, а все зависимые от него пакеты останутся в системе. Именно по этой причине для удаления ролей с диска в Windows Server 2012 не стоит использовать DISM, т.к. есть гораздо более удобное и функциональное средство.

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

Предположим, например, что компонент TelnetClient в дальнейшем нам не понадобится. Удалим этот компонент с диска (по сути из каталога WinSxS) командой:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove

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

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

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

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

  1. Откройте командную строку с правами администратора;
  2. Остановите и отключите службы Windows Installer и Windows Module Installer:
  3. Создайте резервную копию списков доступа (ACL) назначенных на файлы и папки в каталоге WinSxS с помощью утилиты icacls. Резервная копия ACL представляет собой обычной текстовый файл, в котором указаны все файлы и каталоги и назначенные на них NTFS разрешения (в дальнейшем этот бэкап понадобиться для восстановления оригинальных ACL):

  • Назначим себя владельцем папки WinSxS и всех вложенных каталогов:
  • Предоставим своей учетной записи полные права на каталог WinSxS:
  • Выполним сжатие каталог WinSxS и всего его содержимого с помощью команды compact. Часть файлов может использоваться системой, поэтому если запустить команду без параметра /i, сжатие будет остановлено на первом же файле, используемом в настоящий момент системой. С помощью Process Explorer можно найти имя процесса, открывшего данный файл (CTRL+F) и завершить его. Такой подход к сжатию очень трудоемкий. Мы лишь ограничимся сжатием неиспользуемых файлов (в Windows 10 можно использовать более прогрессивное LZX сжатие):

  • Восстановим владельца каталога WinSxS, вернув TrustedInstaller:
  • Восстановим оригинальные NTFS разрешения на каталог WinSxS из резервной копии ACL: icacls «%WINDIR%» /restore «%WINDIR%\WinSxS_NTFS.acl»
  • Восстановим тип запуска служб Windows Installer и Windows Module Installer:
  • Проверим текущий размер каталога WinSxS:

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

    На что может повлиять сжатие каталога WinSxS.

    Windows работает со сжатыми файлами в прозрачном режиме, однако при обработке таких файлов, ей может понадобиться дополнительное время на их декомпрессию/компрессию, это означает некоторое замедление процессов установки компонентов Windows или обновлений. Однако для современных процессоров (CPU) компрессия / декомпрессия файлов выполняется практически мгновенно, так что реального уменьшения скорости пользователь может даже не заметить. Мало того, если жесткий диск медленный, а процессор достаточно быстрый – при сжатии можно заметить даже увеличение скорости работы с диском! Отметим, что при включении ntfs-сжатия всего содержимого папки WinSxS, за счет использования жестких ссылок окажутся сжатыми ряд файлов в других системных каталогах.

    Читайте также:  Linux сетевые интерфейсы удалить

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

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

    Очищаем папку «WinSxS» в Windows 7

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

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

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

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

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

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

      Щелкайте «Пуск». Заходите в «Панель управления».

    Жмите «Система и безопасность».

    Переходите в «Центр обновлений Windows».

    Открывается окно с перечнем установленных на компьютере обновлений. Нам нужно отыскать обновление KB2852386 в разделе «Microsoft Windows» данного списка.

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

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

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

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

    Для того чтобы удостовериться, что необходимый апдейт ваш компьютер увидит, щелкните по надписи «Поиск обновлений» в левой части окна. Особенно это важно, если у вас не включены автообновления.

    Система выполнит поиск не установленных на ваш ПК апдейтов.

    После завершения процедуры щелкните по надписи «Важных обновлений доступно».

    Откроется список важных апдейтов, которые не установлены на вашем ПК. Вы можете выбрать, какие из них устанавливать, поставив слева от наименований пометки в чекбоксы. Поставьте флажок напротив наименования «Обновление для Windows 7 (KB2852386)». Далее жмите «OK».

    Вернувшись в окно «Центра обновлений», жмите «Установить обновления».

    Запустится процесс инсталляции выбранных апдейтов.

    Читайте также:  Постоянная загрузка процессора windows 10

  • После его окончания совершите перезагрузку ПК. Теперь у вас будет в наличии необходимый инструмент для очистки каталога «WinSxS».
  • Далее мы рассмотрим различные способы очистки каталога «WinSxS» с помощью утилиты Cleanmgr.

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

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

    Заходите в папку «Стандартные».

    В перечне найдите «Командная строка». Жмите по наименованию правой кнопкой мышки (ПКМ). Выбирайте вариант «Запуск от имени администратора».

    Производится активирование «Командной строки». Вбейте следующую команду:

    Открывается окошко, где предлагается выбрать диск, в котором будет выполняться чистка. По умолчанию должен стоять раздел C. Его и оставляйте, если ваша операционная система имеет стандартное расположение. Если же она, по какой-либо причине, установлена на другом диске, то выберите его. Жмите «OK».

    После этого утилита производит оценку объема места, которое она сможет очистить при проведении соответствующей операции. Это может занять определенное время, так что наберитесь терпения.

    Откроется перечень объектов системы, которые подлежат очистке. Среди них обязательно найдите позицию «Очистка обновлений Windows» (либо «Файлы резервной копии пакета обновлений») и поставьте около него пометку. Именно данная позиция отвечает за очистку папки «WinSxS». Напротив остальных пунктов расставляйте флажки на свое усмотрение. Можете все другие пометки снять, если не желаете больше ничего чистить, или отметить те компоненты, где также хотите произвести удаление «мусора». После этого жмите «OK».

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

  • Далее утилита Cleanmgr выполнит очистку папки «WinSxS» от ненужных файлов и после этого автоматически закроется.
  • Способ 2: Графический интерфейс Windows

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

      Щелкайте «Пуск» и переходите по надписи «Компьютер».

    В открывшемся окошке «Проводника» в перечне жестких накопителей отыщите наименование того раздела, где установлена текущая ОС Виндовс. В подавляющем большинстве случаев это диск C. Кликните по нему ПКМ. Выбирайте «Свойства».

    В появившемся окошке жмите «Очистка диска».

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

    В открывшемся окошке не обращайте внимания на перечень подлежащих очистке элементов, а жмите «Очистить системные файлы».

    Будет выполнена повторная оценка освобождаемого места на накопителе, но уже с учетом системных элементов.

  • После этого будет открыто точно такое же окно «Очистка диска», которое мы наблюдали в Способе 1. Далее нужно произвести все те действия, которые были описаны в нем, начиная с пункта 7.
  • Способ 3: Автоматическая чистка «WinSxS»

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

      Активируйте «Командную строку» с административными правами тем же методом, который был описан в Способе 1 данного руководства. Введите следующее выражение:

    :: параметры очистки каталога winsxs
    REG ADD «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup» /v StateFlags0088 /t REG_DWORD /d 2 /f
    :: параметры очистки временных объектов
    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»

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

    Оцените статью