В процессе эксплуатации ОС, пользователи замечают стремительный рост папки Windows. Увеличение размеров связано с тем, что внутренняя папка winsxs начинает много весить. Давайте разберемся, что это за папка winsxs в Windows 7, 10, 8 и можно ли ее удалить или очистить.
Winsxs — что это за папка, и подлежит ли удалению
Данная папка находится по пути C:Windowswinsxs и хранит файлы компонентов ОС, а также резервные копии и обновления к этим файлам. Даже если эти компоненты не установлены в операционной системе, они хранятся в папке winsxs, занимая место HDD.
Примечание: В данных обстоятельствах буква локального диска C. У Вас буква может отличаться, будьте внимательными.
На самом деле компоненты ОС находятся в других местах, а содержание папки winsxs является ссылками на эти компоненты. Когда устанавливаются обновления Windows, то они и их старые копии оседают в папке winsxs. Со временем обновлений становится все больше и соответственно папка winsxs занимает много места в Windows.
Важно! Сразу необходимо оговорится, что удалить папку winsxs в Windows вручную традиционным способом не имеет смысла, так как Вы можете убрать компоненты жизненно важные для работы системы.
Программы чистильщики не подойдут, остаются штатные средства ОС, которые помогут очистить папку winsxs в Windows. Давайте рассмотрим способы поподробнее.
Удаление старых обновлений через утилиту очистки диска
Данный способ работает в ОС Windows 7 и старше, который позволит уменьшить папку winsxs в размерах. Запустите компонент «очистка диска» одним из следующих способов:
- По системному диску (где установлена Windows)щелкните правой кнопкой, далее из контекстного меню жмите «свойства». Во вкладке «общие» запомните объем свободного и занятого пространства жесткого диска. Нажмите кнопку «очистка диска», дождитесь окончания подсчетов.
- Зажмите клавишу Win + R, для вызова окна «выполнить» и скопируйте команду cleanmgr, нажав затем Enter. Выберите системный диск, кликните OK и ждите, пока система подсчитает объем удаляемых данных.
Примечание: функция очистки обновлений встроена в windows 8, 10. Для семерки Microsoft выпускало обновление для появления данной опции. Если Вы у себя не обнаружите пункт очистки обновлений, тогда скачайте и установите пакет обновлений KB2852386. Способы, описанные ниже, не работают в Windows 7.
Чистка с помощью планировщика заданий
С выходом Windows 8 появилась функция, позволяющая почистить папку winsxs автоматически. В ОС создано автоматическое задание StartComponentCleanup, запускающееся в фоновом режиме для удаления старых версий файлов через 30 дневный срок. Данный период дается, чтобы исключить несовместимость новых обновлений. Вы можете вручную запустить это задание, для этого проделайте шаги ниже.
Примечание: данную задачу Вы можете реализовать через командную строку. Необходимо запустить cmd с правами администратора, далее использовать команду:schtasks.exe /Run /TN «MicrosoftWindowsServicingStartComponentCleanup»
Очистка через командную строку
Dism.exe – приложение cmd, позволяющее производить различные манипуляции с компонентами Windows, которое поможет очистить папку winsxs. В Windows 10, 8.1 ввели новый параметр AnalyzeComponentStore, помогающий определить, как много места занимает пака winsxs фактически. Вызовите командную строку с администраторскими правами, введите следующую команду и кликните Enter:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
После анализа можно приступить к чистке папки winsxs. Параметр StartComponentCleanup в cmd дает аналогичные результаты, что и в планировщике заданий. Однако удаление компонентов происходит сразу, без ожидания. В cmd с правами админа, введите такую конструкцию, далее кликните Enter:
- Dism.exe /online /Cleanup-Image /StartComponentCleanup
- Используя параметр ResetBase Вы удаляете все устаревшие версии каждого компонента. Выглядит команда так:
- Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
- Параметр SPSuperseded помогает уменьшить место, которое занимает пакет обновления. Используйте такую команду:
- Dism.exe /online /Cleanup-Image /SPSuperseded
Удаление компонентов 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.
Источник: http://nastrojcomp.ru/fajly-i-papki/winsxs-v-windows-7-10-8-ochistit-ili-udalit.html
Как очистить папку WinSxS в Windows 7?
Для увеличения быстродействия Windows 7 мало знать, сколько оперативной памяти на компьютере, и принять меры к освобождению занятого объёма; не менее полезной окажется своевременная очистка системного жёсткого диска. В частности, не помешает удалить временные файлы из каталога WinSxS — как показывает практика, в ней может скапливаться до нескольких гигабайтов «мусора». Как оперативно и без риска очистить папку — попробуем разобраться.
WinSxS — что это за папка?
Каталог WinSxS служит для хранения резервных копий различных системных данных — от плановых обновлений до драйверов и отдельных приложений. Таким образом, чем активнее владелец компьютера использует возможности операционной системы, тем больше в каталоге скапливается ненужных устаревших данных — и тем весомее становится необходимость почистить каталог.
Важно: в идеале в папке WinSxS (и это касается как Windows 7, так и более поздних ОС) должны храниться только предпоследние версии обновлений. На практике же в каталоге можно найти и самые старые данные, лежащие в нём по нескольку лет и только засоряющие жёсткий диск.
В абсолютном большинстве случаев уменьшить объём папки WinSxS можно совершенно безболезненно для операционной системы — благо сделать это не труднее, чем зайти в безопасный режим Windows 7. Пользователю достаточно аккуратно следовать инструкции — и не торопиться удалять данные, о назначении которых он не имеет представления.
Как очистить папку WinSxS?
Папка WinSxS существует на жёстком диске с того момента, как пользователь решил установить Windows 7 и претворил своё решение в жизнь. Ниже будет приведено несколько простых и относительно безопасных способов почистить системный каталог — но сначала следует проверить, присутствует ли в ОС обновление с порядковым номером 2852386 — его наличие крайне облегчает задачу.
Чтобы выполнить проверку, владелец машины на Windows 7 должен:
- Открыть меню «Пуск» и запустить «Панель управления» — кнопка находится в столбце справа.
- Проследовать в раздел «Система и безопасность».
- И подраздел «Центр обновления Windows».
- Кликнуть по ссылке внизу слева «Установленные обновления».
- Пока загружаются данные, ввести в поисковой строке полное имя искомого пакета: KB2852386.
- Если в итоге юзер увидит обновление в списке установленных, можно сразу приступать к очистке папки WinSxS.
- А если нет — выполнить поиск доступных пакетов и установить их в обычном порядке.
Совет: если Windows 7 не находит обновления, пакет для работы с каталогом WinSxS можно скачать по ссылке — microsoft.com; для загрузки достаточно выбрать свой язык и нажать на соответствующую кнопку справа.
Удаление данных в каталоге
Самый простой, грубый и опасный вариант очистки папки WinSxS на Windows 7 — удаление мусорных данных вручную. При этом владелец компьютера берёт на себя полную ответственность как за вероятные сбои в результате обращения системы к уже несуществующим данным, так и за невозможность восстановить ОС из ранее созданных резервных точек.
Тем не менее, если требуется быстро освободить на системном HDD несколько гигабайтов, этот способ оптимален; юзеру потребуется:
- Открыть меню «Компьютер».
- Перейти в системный винчестер.
- Последовательно зайти в папки Windows.
- Выделить все содержащиеся в каталоге данные и, кликнув по заголовкам правой клавишей мыши, вызвать опцию «Удалить».
- Подтвердить своё намерение и дождаться полной очистки папки WinSxS — в зависимости от объёма и числа размещённых в ней файлов процесс может занять до получаса и даже более.
Важно: чтобы уменьшить занимаемое на HDD место таким способом, пользователю необходимо действовать из-под учётной записи администратора — простой «гость» удалить данные непосредственно в папке WinSxS не сможет.
Очистка диска
Для этого и последующих способов очистки папки WinSxS в полуавтоматическом режиме как раз и пригодится упоминавшееся выше обновление Windows 7. Пользователю, уверившемуся, что в системе присутствует пакет KB2852386, далее нужно:
- Открыть меню «Пуск» и в строке поиска (слева внизу) ввести запрос «Очистка диска», после чего щёлкнуть по первому результату в списке найденного.
- Подождать, пока утилита собирает данные о системе, в том числе — о файлах из папки WinSxS, которые можно удалить без вреда для Windows 7.
- В новом окне на вкладке «Очистка диска» отметить галочками чекбокс «Файлы резервной копии» — остальные можно оставить незатронутыми.
- Подтвердив действие, владелец компьютера запустит очистку каталога WinSxS — в безопасных для Windows 7 пределах.
Очистка диска из контекстного меню
Аналогичный, но более удобный с точки зрения рядового пользователя способ — в этом случае не понадобится запускать меню «Пуск» и искать в нём ранее упомянутую утилиту:
- Открыть «Проводник» Windows 7 — можно непосредственно из панели задач.
- Найти в боковой панели «Компьютер» системный жёсткий диск и кликнуть по заголовку правой клавишей мыши.
- Выбрать в контекстном меню пункт «Свойства».
- Теперь следует на вкладке «Общие» нажать на кнопку «Очистка диска» — и повторить описанные ранее манипуляции.
Очистка папки WinSxS через командную строку
Как и предыдущие (кроме первого) варианты, этот поможет пользователю Windows 7 лишь уменьшить объём папки WinSxS, но не очистить её полностью — как несложно догадаться, из соображений безопасности, а не по причине неэффективности.
Владельцу компьютера, желающему быстро и сразу очистить каталог с резервными копиями, необходимо:
- Открыть меню «Пуск» и развернуть вложенный список «Все программы».
- Перейти в папку «Стандартные».
- Найти в перечне утилиту «Командная строка» и, кликнув по заголовку правой клавишей мыши, запустить её от имени администратора.
- Ввести и применить, нажав на клавишу Enter, команду dism /online /cleanup-image /spsuperseded, лучше всего — с аргументом /hidesp, не добавляя лишние пробелы и не исключая необходимые.
- Её, как и все другие, не обязательно набирать вручную: комбинация Ctrl + V в «Командной строке» не работает, зато можно вставить текст из меню, вызываемого всё той же правой клавишей мыши.
- Дождаться уведомления об успешном выполнении команды — как правило, на обработку запроса уходит не более двух-пяти минут.
- Великолепно! Теперь остаётся ввести и применить команду exit — и убедиться, что удалось уменьшить «вес» папки WinSxS на несколько сотен, а то и тысяч мегабайтов.
Пользователь Windows 7, желающий высвободить как можно больше места на жёстком диске за счёт папки WinSxS, может ввести и применить ещё две команды:
- dism.exe /online /cleanup-image /startcomponentcleanup — для очистки текущих резервных копий установщика обновлений.
- dism.exe /online /cleanup-image /startcomponentcleanup /resetbase — для очистки базисного кеша.
Важно: в зависимости от настроек компьютера под управлением Windows 7 эти две команды могут или помешать дальнейшим обновлениям операционной системы, или не привести к положительному результату — тогда в окошке «Командной строки» появится уведомление об ошибке.
Отключение компонентов Windows
Как уже упоминалось, в папке WinSxS хранятся не только предпоследние версии обновлений ОС, но и устаревшие версии системных компонентов. Следовательно, уменьшить размер каталога пользователь Windows 7 может, деактивировав часть из них; сделать это проще всего, снова запустив от имени администратора командную строку и придерживаясь простого алгоритма:
- Ввести и применить команду dism.exe /online /english /get-features /format:table.
- Несмотря на отсутствие признаков жизни, не закрывать окошко в течение следующих нескольких минут.
- Ознакомиться с появившейся таблицей, содержащей перечень системных компонентов и описывающей их текущее состояние: включены они (Enabled) или выключены (Disabled).
- Удалить (на деле — отключить) ненужные элементы, воспользовавшись командой dism.exe /online /disable-feature /featurename:ИМЯ /remove, где ИМЯ — это наименование компонента, написанное точь-в-точь так же, как в только что сформированной таблице. Для примера, чтобы очистить платформу гаджетов Windows 7, также засоряющую папку WinSxS, юзеру следует применить команду dism.exe /online /disable-feature /featurename:WindowsGadgetPlatform /remove.
Важно: перед тем как отключать те или иные компоненты, необходимо убедиться, что их деактивация не скажется на работе Windows 7 — внесённые таким образом изменения необратимы, и в лучшем случае пользователю придётся восстанавливать ОС с помощью установочного диска.
DISM++
Уникальная в своём роде программа, напрямую работающая с системной утилитой dism.exe и позволяющая быстро и эффективно уменьшить объём папки WinSxS на жёстком диске. Пользователю Windows 7, желающему почистить компьютер от мусорных файлов, следует:
- Скачать (ссылка — softpedia.com) архив, распаковать в любую папку и запустить исполняемый файл в соответствии с разрядностью своей операционной системы.
- Переключиться на вкладку «Очистка».
- Нажать на кнопку «Снять», чтобы убрать галочки из ненужных для очистки папки WinSxS чекбоксов.
- Отметить чекбоксы «Заменённые WinSxS компоненты».
- И целиком «Временные файлы».
- Нажать на кнопку «Анализ».
- И дождаться, пока программа рассчитает размер временных файлов, которые можно удалить без вреда для Windows 7.
- Ознакомиться с результатами, щёлкнуть «Очистка».
- И подтвердить намерение очистить данные.
- По завершении работы DISM++ можно смело закрывать — и, убедившись, что места на жёстком диске стало чуть больше, приступить к работе в штатном режиме, не забыв перезагрузить компьютер.
Автоматическая очистка
Слегка упростить себе задачу пользователь Windows 7 может, автоматизировав очистку папки WinSxS:
- Владелец компьютера открывает меню «Пуск», вводит в поисковой строке regedit и, кликнув по первому результату в списке найденных, переходит в «Редактор реестра».
- В новом окне последовательно раскрывает каталоги HKEY_LOCAL_MACHINE.
- В расположенной здесь папке Temporary Files найти параметр StateFlags, дважды кликнуть по заголовку.
- И задать для него значение «2».
- То же проделать с одноимённым параметром в папке Update Cleanup.
- Запустить от имени администратора командную строку, ввести и применить команду schtasks /create /tn cleanupwinsxs /rl highest /sc monthly /tr «cleanmgr /sagerun:88».
- Теперь, благодаря выданным разрешениям на очистку кеша и созданному в «Планировщике» Windows 7 заданию, очистка каталога WinSxS будет производиться ежемесячно; дождавшись уведомления об успешном выполнении команды, пользователь может закрыть командную строку и приступить к своим делам.
Можно ли удалить папку WinSxS?
Полностью удалить папку WinSxS у юзера вследствие вшитых ограничений системы не получится, да в этом и нет необходимости: отсутствие каталога приведёт к критическому системному сбою, в результате которого придётся или восстанавливать Windows 7 с помощью установочного диска, или переустанавливать ОС.
Подводим итоги
Очистить папку WinSxS можно несколькими способами; самый простой — использовать системную утилиту «Очистка диска». Другие варианты — через командную строку или программу DISM++. Пользователь может автоматизировать процесс очистки, создав ежемесячно выполняемую задачу.
Источник: https://konekto.ru/ochistka-papki-winsxs-na-windows-7.html
FAQ: Очистка и сжатие папки WinSxS в Windows 10 и 8.1
В этой статье мы поговорим о каталоге WinSxS в Windows 10 и Windows 8.1, причинах его постоянного роста и способах очистки. Каталог C:windowsWinSxS является хранилищем компонентов Windows.
В этом каталоге хранятся dll библиотеки, бинарные и xml файлы, необходимые для установки и работы той или иной роли ОС Windows.
При установке обновлений Windows (это происходит ежемесячно), новая версия обновляемого компонента устанавливается в систему, а старая сохраняется в хранилище WinSxS (это необходимо для обеспечения совместимости и возможности «отката» на старые версии компонентов при удалении проблемного обновления).
Как не трудно догадаться, каталог WinSxS со временем будет постоянно увеличиваться, причем размер его не ограничен ничем (хотя на практике размер папки WinSxS в Windows 10/8.1 редко превышает 15-20 Гб.)
Самым естественный способ уменьшить размер папки WinSxS в Windows 10 и Windows 8 — удалить из системы старые версий компонентов, оставшиеся после обновления системы. Для этого используется стандартный мастер очистки диска cleanmgr или специальные опции команды DISM (см. ниже).
Как узнать реальный размер папки WinSxX в Windows 10 / 8.1
Еще одной особенностью папки WinSxS является наличие в ней большого количества так называемых hard links (жестких символьных ссылок). Жесткая ссылка представляет собой полностью равноправный оригинальному указатель на файл. Т.е.
указатель и исходный файл могут иметь разные имена и находиться в пределах одного раздела в разных каталогах, но реально указывать они будут на один и тот же объект. Именно из-за наличия жестких ссылок, которые включаются в расчет общего размера каталога, файловые менеджеры (и в том числе Windows Explorer) показывают несколько преувеличенный размер папки WinSxS.
Узнать реальный (без учета жестких ссылок) размер папки WinSxS можно с помощью утилиты SysInternal du:
du -v c:windowswinSXS
- Так же вы можете проанализировать размер хранилища компонентов (папку 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. Это:
- Удаление старых версий компонентов, оставшихся после установки обновлений;
- Технология Features on Demand (функции по требованию), позволяющая удалить неиспользуемые компоненты Windows с диска;
- Сжатие файлов в папке WinSxS – способ уменьшить размер каталога WinSxS за счет NTFS компрессии ее содержимого.
Для достижения максимального результата все три способа можно использовать совместно.
Очистка хранилища компонентов (папки WinSxS ) в Windows 10 / 8.1
На мой взгляд самый быстрый и простой способ очистить место в хранилище компонентов (т.е. очистить папку WinSxS), удалив старые версии компонентов – выполнить команду:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
У параметра /StartComponentCleanup есть дополнительная опция /ResetBase, позволяющая удалить все предыдущие версии компонентов (после этого вы не сможете удалить установленные обновления или Service Pack, а в панели обновлений appwiz.cpl у обновления пропадет кнопка «Удалить»). Полностью команда выглядит так:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Также вы можете удалить устаревшими обновления из мастера «очистки диска». Выполните команду cleanmgr c правами администратора.
В окне утилиты выберите диск и в следующем окне нажмите кнопку «Очистить системны файлы».
Далее выберите опцию “Файлы журнала обновления Windows» и нажмите Ок для начала очистки. Утилита очистки диска покажет сколько места вы можете освободить, удалив файлы журнала старых обновлений Windows. В моем примере это 427 Мб.
После окончания очистки хранилища с помощью DISM проверьте сколько освободилось места на диске.
Кроме того, в планировщике Windows 10 есть специальное задание автоматического обслуживания, которое выполняет ту же самую операцию, что и dism с ключом StartComponentCleanup, удаляя все устаревшие обновления старше 30 дней. Это задание с именем StartComponentCleanup находится в разделе MicrosoftWindowsServicing.
Функции по требованию в 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.
- Откройте командную строку с правами администратора;
- Остановите и отключите службы 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. Часть файлов может использоваться системой, поэтому если запустить команду без параметра /i, сжатие будет остановлено на первом же файле, используемом в настоящий момент системой. С помощью Process Explorer можно найти имя процесса, открывшего данный файл (CTRL+F) и завершить его. Такой подход к сжатию очень трудоемкий. Мы лишь ограничимся сжатием неиспользуемых файлов (в Windows 10 можно использовать более прогрессивное LZX сжатие):compact /s:»%WINDIR%WinSxS» /c /a /i *
- Восстановим владельца каталога WinSxS, вернув TrustedInstaller:icacls «%WINDIR%WinSxS» /setowner «NT SERVICETrustedInstaller» /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 за счет сжатия уменьшился с 5,8 Гб до 4 Гб (примерно на треть). Неплохо, особо для небольшого по размеру SSD-диска, место на котором стоит достаточно дорого.
На что может повлиять сжатие каталога WinSxS
Windows работает со сжатыми файлами в прозрачном режиме, однако при обработке таких файлов, ей может понадобиться дополнительное время на их декомпрессию/компрессию, это означает некоторое замедление процессов установки компонентов Windows или обновлений.
Однако для современных процессоров (CPU) компрессия / декомпрессия файлов выполняется практически мгновенно, так что реального уменьшения скорости пользователь может даже не заметить.
Мало того, если жесткий диск медленный, а процессор достаточно быстрый – при сжатии можно заметить даже увеличение скорости работы с диском! Отметим, что при включении ntfs-сжатия всего содержимого папки WinSxS, за счет использования жестких ссылок окажутся сжатыми ряд файлов в других системных каталогах.
Указанные команды можно выполнять по отдельности (так проще контролировать успешность выполнения каждой из них), либо можно объединить все операции в один файл сценария, при запуске которого начнет выполняться процедура сжатия данных в папке WinSxS. Скачать готовый командный файл можно тут: compress_winsxs.bat
Данный скрипт можно использовать постоянно в процессе эксплуатации системы, т.к. после установки новых обновлений и программ в каталоге WinSxS будут появляться новые «несжатые» файлы.
Источник: http://winitpro.ru/index.php/2013/08/07/kak-umenshit-razmer-papki-winsxs-v-windows-8/
WOW! Как грамотно уменьшить размер папки WinSxS в Windows 7 SP1
Казалось бы, две большие статьи об оптимизации папки WinSxS в Windows 8 должны были исчерпать тему. Но Microsoft внезапно решила порадовать и владельцев Windows 7, для которых я публикую этот рассказ.
Несмотря на многочисленные предостережения, обладатели Windows 7 с маленьким сами знаете чем не оставляют попыток почистить папку WinSxS кривыми способами. Вот вам свеженький пример убийства Windows 7 участником конференции OSZone под ником… xaker 7. Надеюсь, после выхода этой записи таких ужасов будет на порядок меньше.
[+] Сегодня в программе
Как очистить папку WinSxS в Windows 7
8 октября 2013 года вышло рекомендуемое обновление KB2852386 только для всех изданий Windows 7 SP1, прошедших проверку подлинности. Оно добавляет долгожданную функцию в утилиту «Очистка диска».
Совет перед очисткой
Я думаю, что вы захотите узнать, сколько места сэкономила очистка. Поэтому сейчас откройте свойства диска (а не папки winsxs) и запишите объем свободного пространства (в байтах) или просто сделайте скриншот.
Инструкции
Они предельно просты:
- Установите обновление KB2852386 посредством Windows Update (рекомендую) или скачайте в IE пакет из статьи базы знаний.
- Выполните cleanmgr в командной строке, запущенной от имени администратора (так будет быстрее).
- Найдите в списке опцию «Очистка обновлений Windows».
Примечание. Пункт очистки обновлений доступен только в том случае, когда есть файлы, которые можно удалить.
- Нажмите ОК и наберитесь терпения, потому что операция займет некоторое время.
- По окончании очистки перезагрузитесь и посмотрите в свойствах диска, сколько места освободилось.
Как работает очистка папки WinSxS в Windows 7
Я очень подробно разбирал весь процесс применительно к Windows 8 и 8.1, поэтому не буду повторяться, а лишь отмечу несколько моментов.
Реализация
Обновление KB2852386 заменяет всего один файл — Scavengeui.dll, в котором реализована вся работа по очистке. Фактически, в утилиту «Очистка диска» добавили вызов функции DISM, доступной в более новых ОС при использовании в утилите DISM.exe параметра /StartComponentCleanup (но не дополнительного ключа /ResetBase).
Увеличить рисунок
Так, при каждом запуске утилиты «Очистка диска» в папку %LocalAppData%Temp{GUID} зачем-то копируется содержимое папки %WinDir%System32DISM (причем временная папка не удаляется после завершения операции). После чего с помощью обновленной 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
В Windows 8 очистка возложена на отдельное запланированное задание, а в крайнем случае можно воспользоваться утилитой командной строки DISM.exe. В Windows 7 единственный доступный пока способ заключается в создании настроенной конфигурации утилиты «Очистка диска» и добавления полученной команды в планировщик.
В командной строке, от имени администратора, выполните:
:: настройка очистки папки winsxs
REG ADD «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCachesUpdate Cleanup» /v StateFlags0088 /t REG_DWORD /d 2 /f
:: (необязательно) настройка очистки временных файлов (в частности зачищает временную папку dism)
REG ADD «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCachesTemporary 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). Для успешного выполнения задания необходимо наличие у пользователя прав администратора.
Вопросы и ответы
Первый день обсуждения очертил круг вопросов. Ответы на большинство из них можно узнать, изучив предыдущие статьи о папке 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:WindowsWinSxS.
Увеличить рисунок
Папки со сжатыми файлами помечены синим. Пока что я не видел ни одного факта сжатия в Windows 7.
Почему не работает команда DISM /Online /Cleanup-Image /StartComponentCleanup?
Потому что она для Windows 8 и новее. В Windows 7 используйте очистку диска, следуя инструкциям этой статьи.
Продолжение следует…
Дискуссия
У меня к вам примерно те же вопросы, что и после публикации аналогичной статьи о Windows 8. Но учитывая высокий процент владельцев Windows 7, я ожидаю увидеть больше ответов 🙂
Пожалуйста, напишите в х:
- Получилось ли у вас оптимизировать папку WinSxS
- Сколько места вы сэкономили (перевести байты в гигабайты можно так)
- Как давно вы установили систему
- Подверглись ли у вас файлы в подпапках WinSxS сжатию в рамках очистки (если сжимаются, покажите скриншот TreeSize)
Если у вас возникли вопросы, я постараюсь ответить на них в х и/или дополнить статью.
Источник: http://www.outsidethebox.ms/15444/
Как безопасно уменьшить размер папки WinSxS в Windows
Судя по количеству поисковых запросов, многие пользователи Windows ищут способ уменьшить размер системной папки WinSxS.
Об эту папку, которая через некоторое время после начала эксплуатации операционной системы Windows начинает занимать на диске достаточно много места, было сломано немало копий.
Народ по-разному пытался бороться с ее размерами, однако, не всегда успешно.
На самом деле, истинный размер папки WinSXS не совсем тот, который показывают файловые менеджеры: Explorer, FAR и другие, или утилиты, наподобие Scanner. А точнее было бы сказать, – совсем не тот. Виноваты в этом жесткие ссылки (Hard Links). Но об этом чуть ниже.
Каталог WinSXS имеет очень большое значение для функционирования операционной системы Windows. Хранятся в этом каталоге, по большей части, динамические библиотеки DLL, но не только. Причем, одна и та же динамическая библиотека может быть сохранена несколько раз в разных версиях.
Записывают их инсталляторы программ и системных обновлений, а вот удалять старые версии файлов никто не торопится. Получается что-то вроде полупроводника — движение только в одну сторону. Могу лишь предположить, почему так происходит. Деинсталляторы, очевидно, не могут определить, нужны ли использовавшиеся программой динамические библиотеки кому-либо еще, и не трогают их.
Способы уменьшения размера папки WinSxS
Удаление файлов
К сожалению, вразумительных критериев того, какие файлы из каталога WinSxS уже можно удалить, а какие нет, не существует. Или, скажем так, доподлинно они не известны. Судя по отзывам пользователей, которые все же рискнули это сделать на основе неких соображений, ничем хорошим для системы такое удаление не закончилось.
Оставлю этот вариант как теоретически возможный, но сам таким способом уменьшать размер папки WinSxS никогда не буду, и вам не советую.
Скрипт Winsxslite
Большое количество публикаций представляют командный файл от Christian Bering Boegh как чудесное средство уменьшения размера WinSxS. Однако, последнюю заявленную версию WinsxsLite — 1.88 скачать уже не получилось. Видимо, с проектом Winsxslite не все так хорошо.
Смысл работы этого многопроходного скрипта заключается в поиске самых свежих версий библиотек и создании ссылок на них со всех предыдущих с последующим удалением последних.
Ну что же, тут по крайней мере есть идея. Однако, она не гарантирует 100-процентного положительного результата. Я поддался соблазну, потратил достаточно много времени и получил совершенно отрицательный результат. Скрипт отработал первую фазу и «сломался» на второй.
После требуемой, по алгоритму работы этого командного файла, перезагрузки компьютера напрочь отказалась работать системная утилита subinacl. На этом все и закончилось.
Коль уж сам скрипт не может отработать после внесенных им изменений, то о чем тут вообще можно говорить.
Если есть желание непременно воспользоваться пакетным файлом WinsxsLite, то в обязательном порядке сделайте предварительно бекап системы!
NTFS-сжатие файлов в папке WinSxS
Если сделать, в общем-то, необоснованное предположение о том, что файлы, размещенные в папке WinSxS, используются системой не так часто, как файлы из других системных папок, таких как: Program Files, ProgramData, system32 и др., то почему бы не попробовать сделать их ntfs-сжатие? Результат заранее не очевиден, но, по крайней мере, это совершенно безопасный вариант.
Microsoft постаралась максимально защитить папку WinSxS от всяческих посягательств на нее извне. Если открыть закладку «Безопасность» в свойствах папки, то можно увидеть, что только пользователь «TrustedInstaller» имеет полный доступ. Все остальные, включая «Система» и «Администраторы», приравнены к рядовым пользователям с правами на чтение и выполнение.
Таким образом, для того, чтобы иметь возможность сделать ntfs-сжатие файлов в этой папке, сначала нужно установить необходимые разрешения.
Запускаем командную строку с правами администратора и последовательно выполняем следующие команды: takeown /A /R /F C:Windowswinsxs*В результате владельцем папок и файлов в WinSxS станет группа пользователей «Администраторы». icacls C:Windowswinsxs* /T /grant Администраторы:(F)Результатом будет добавление прав полного доступа на все папки и файлы в WinSxS.
Не хочется подробно расписывать значение ключей команд. Кому интересно – посмотрите по /? в командах, все достаточно очевидно.
Теперь можно сделать сжатие файлов, но не торопитесь и дочитайте статью до конца.
Самое время вспомнить о том, что в WinSxS лежат не только уникальные файлы, но и большое количество жестких ссылок на файлы, разбросанные по различным системным папкам.
Мы уже несколько раз обращались к теме символьных ссылок, которые использовали для переноса каталогов пользователей на другой диск. (См. «Перенос Windows 7 на твердотельный диск …» Часть 2 и Часть 3).
Тогда мы использовали обычные символические ссылки (Symbolic link), которые представляют собой специальные файлы, содержащие указатели на объекты в файловой системе. При попытке обратиться к объекту, в качестве которого может выступать файл или папка, символьная ссылка передает действительный путь к нему.
- В папке WinSxS для файлов используется разновидность символической ссылки, которая называется жесткой ссылкой (Hard Links).
- Жесткая ссылка создается командой: mklink /H “Link” “Target” Link — путь к виртуальному объекту (первоначальное местоположение объекта);
- Target — путь к реальному объекту (относительный или абсолютный).
- Жесткая ссылка может быть создана только на файл и в пределах одного раздела.
Название этого типа ссылок, в какой-то степени, говорит само за себя – штука это жестокая. Hard Link создает абсолютно равноправный исходному указатель на файл.
Новый указатель и первоначальный могут иметь разные имена и находиться в разных каталогах (в пределах одного раздела), но они указывают на один и тот же объект.
Сам объект будет существовать в файловой системе до тех пор, пока на него существует хотя бы один указатель.
После создания жесткой ссылки невозможно определить, какая из ссылок на объект была исходной. Вот тут-то и кроется причина неправильного вычисления объема папки WinSxS файловыми менеджерами. Они включают в расчет суммарный размер всех файлов из других системных папок, на которые имеются жесткие ссылки (а с другой стороны, как иначе? Ссылки то равноправны).
Со ссылками всех типов, включая и жесткие, умеет работать файловый менеджер FAR (Alt/F6). С его помощью можно легко посмотреть количество ссылок, которые имеет файл:
Для этого нужно выбрать 9-й режим отображения любой из панелей. Крайний правый столбец покажет количество ссылок на файлы в текущем каталоге.
В нашем случае, если сделать ntfs-сжатие всех файлов в папке WinSxS, то сжатыми окажутся и файлы в других системных каталогах, на которые имеются жесткие ссылки.
Ничего страшного в этом нет. Если процессор быстрый, а жесткий диск обычный механический, то за счет ntfs-сжатия файлов может быть даже получен общий прирост производительности.
Это произойдет в том случае, если уменьшение времени на запись или считывание более короткого файла будет превалирующим над увеличением процессорного времени на сжатие или распаковку файла. Можно предположить, что для большинства современных компьютеров с традиционными дисками будет иметь место как раз выигрыш.
Сначала я сделал сжатие всех файлов папки WinSxS. Нам понадобится это в дальнейшем для прикидки объемов уникальных файлов и файлов, созданных жесткими ссылками. Compact /C /A /I /S:C:Windowswinsxs Результат для Windows 7 x64 получился такой:
— исходный размер папки WinSxS составлял 10,1 ГБ,
— после сжатия – 6,85 ГБ.
Выигрыш места на диске составил 3,25 ГБ, или 32% от первоначального размера папки. Очень неплохо, учитывая, что все это делается для небольшого SSD-диска.
Теперь раскрутим файлы назад: Compact /U /A /I /S:C:Windowswinsxs и попробуем сжать только уникальные файлы. Как же это сделать?
Идея такая – для каждого файла в папке WinSxS посчитать количество ссылок. Если ссылка всего одна – сжимаем, если больше – ничего не делаем. Для подсчета количества ссылок используем возможности команды fsutil hardlink list «Имя_файла».
Естественно, ручками перебрать 60 тысяч файлов дело нереальное, поэтому создадим командный файл: @echo off REM Включаем раскрытие переменных окружения в момент обращения к ним setlocal enabledelayedexpansion REM Рекурсивно перебираем все файлы в каталоге C:Windowswinsxs for /R «C:Windowswinsxs» %%i in (*) do ( REM Ищем однострочный вывод fsutil fsutil hardlink list %%i | find /c /v «» | find /I «1» >nul REM Если ссылка единичная, сжимаем файл IF !ERRORLEVEL!==0 Compact /C /A /I %%i ) @echo FINISH
pause>nul
Внимание! Пакетный файл необходимо запускать строго от имени администратора. В противном случае fsutil начнет выдавать однострочный текст ошибки, который будет благополучно обработан командами find. В результате окажутся сжатыми все файлы в каталоге WinSxS, а не только уникальные.
Скрипт, естественно, работает не так быстро, как «безразборное» сжатие всех файлов. В моем случае на i7 и SSD-диске перебор и сжатие файлов заняли около 20 минут.
- Результат получился такой:
- — исходный размер папки WinSxS составлял 10,1 ГБ,
- — после сжатия только уникальных файлов – 8,25 ГБ.
Выигрыш места на диске составил 1,85 ГБ, или 18,3% от первоначального размера папки. Много меньше, чем после сжатия всех файлов, но тоже неплохо. Для моего 60-гигабайтного SSD-диска вполне различимо.
В заключение вернем разрешения на файлы: icacls C:Windowswinsxs* /T /L /grant:r Администраторы:(RX)
Соотношение уникальных файлов и жестких ссылок в папке WinSxS Windows 7
Прикинем соотношение объемов уникальных и ссылочных файлов. Для этого решим простую математическую задачку (Можно было бы, конечно, написать еще один скрипт и подсчитать все точно, но большого практического смысла в этом я не вижу).
Сделаем допущение, что средняя степень сжатия файлов одинакова для уникальных и неуникальных файлов. Kc = Vc / Vгде V – исходный объем папки WinSxS, Vc – ее объем после полного сжатия. F1 + FL = V KC * F1 + FL = Vc1F1 – объем уникальных файлов, FL–объем ссылочных файлов, Vc1 – объем WinSxS после сжатия уникальных файлов.
- Путем несложных преобразований получим: F1 = ( V — Vc1 ) / ( 1 — Kc) После подстановки конкретных значений:
- F1 = ( 10,1 – 8,25) / ( 1 – 0,678) = 5,86 ГБ
Оказалось, что уникальные файлы занимают около 60% объема папки WinSxS. Неожиданный результат. А меня уверяли, что их там очень мало.
Заключение
В заключение необходимо отметить:
- Описанный способ уменьшения размера папки WinSxS является абсолютно безопасным, так как не делает в системе никаких деструктивных изменений и всегда позволяет вернуться к первоначальному состоянию;
- В процессе эксплуатации системы запуск скрипта нужно будет повторять после новых инсталляций программ и системных обновлений.
_____________________________
P.S.
Появились:
- Продолжение, в котором описываются другие методы борьбы с размером папки WinSxS;
- Готовый командный файл для очистки и сжатия каталога WinSxS. Ссылку на бесплатное скачивание скрипта “winsxscompact.cmd” можно найти в уведомлении о подписке на обновления блога по E-Mail.
Источник: http://www.ithabits.ru/15985-kak-bezopasno-umenshit-razmer-papki-winsxs-v-windows.html