5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как уменьшить размер папки WinSxS в Windows 8

  • Почему папка WinSxS такая большая
  • Почему папка WinSxS постоянно растет
  • Новые возможности системы обслуживания
  • Как определить реальный размер папки WinSxS в Windows 8.1
  • Как очистить папку WinSxS в Windows 8 и 8.1
  • Команда DISM (рекомендую)
  • Утилита «Очистка диска»
  • Запланированное задание
  • Как удалить старые версии компонентов из папки WinSxS в Windows 8.1
  • Команда для удаления
  • Что происходит при удалении предыдущих версий компонентов
  • Сжатие компонентов в папке WinSxS (тайное знание)
  • С чем связаны изменения в системе обслуживания Windows 8 и 8.1
  • Серверные ОС
  • Клиентские ОС

Сначала я обозначу два вопроса, которые сильнее всего волнуют людей в контексте папки WinSxS.

Способы уменьшения размера папки 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).

Читать еще:  Как iPhone может улучшить ваш образ жизни

Жесткая ссылка создается командой:
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

Для очистки WinSxS в Windows 7 SP1 требуется предварительно установить необязательное обновление KB2852386, которое добавляет соответствующий пункт в утилиту очистки диска.

Вот как это сделать:

  1. Зайдите в центр Обновления Windows 7 — это можно сделать через панель управления или воспользоваться поиском в меню пуск.
  2. Нажмите «Поиск обновлений» в меню слева и подождите. После этого, кликните по необязательным обновлениям.
  3. Найдите и отметьте необязательное обновление KB2852386 и установите его.
  4. Перезагрузите компьютер.

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

Очистка через командную строку

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

Дождитесь окончания выполнения этих команд. Далее оцените объем освобожденной памяти через параметр AnalyzeComponentStore.

Как очистить папку WinSxS в Windows 10, 8.1

Я быстро исследовал жёсткий диск программой «Scanner » и обнаружил, что 5 ГБ свободного пространства на диске «съела» папка WinSxS, после этого она стала занимать рекордный размер — 21 ГБ .

  • Примечание : Начиная с Windows 10, сброс системы к исходному состоянию (заменивший откат к заводским настройкам) происходит также с помощью компонентов из папки WinSxS

В моём случае папка весит довольно много 21 ГБ .

Открываем командную строку от имени администратора и вводим команду:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore ( данная команда произведёт анализ папки WinSxS)

Судя по результату, сама система рекомендует нам произвести очистку хранилища компонентов.

Очищаем папку WinSxS с помощью командной строки администратора, вводим команду:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

Папка WinSxS очищена! Интересно, насколько она стала меньше в размере (напомню, что до очистки она занимала размер 21 ГБ )

Производим анализ хранилища компонентов уже знакомой вам командой:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Вот и всё. Теперь хранилище компонентов на нашем компьютере занимает 7.74 GB! Размер папки уменьшен в три раза.

Друзья, папку WinSxS можно ужать ещё. Дело в том, что у параметра /StartComponentCleanup есть дополнительный ключ /ResetBase, с помощью которого можно удалить все замененные версии для всех компонентов в хранилище компонентов. Вводим команду:

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

Теперь наша папка WinSxS стала ещё меньше 6,85 ГБ!

Очистка папки WinSxS с помощью встроенной в Windows утилиты «Очистка диска»

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

Возьмём компьютер, где папка WinSxS занимает размер 20 ГБ.

Щёлкаем на диске (C:) правой кнопкой мыши и выбираем «Свойства», выбираем вкладку «Общие» и жмём на кнопку «Очистка диска»

«Очистить системные файлы »

Первый пункт в данном окне «Очистка обновлений Windows », как раз отвечает за очистку хранилища компонентов. Всего может быть очищено 3,63 ГБ.

Жмите « ОК » и папка WinSxS будет очищена.

PS. При операции очистки папки WinSxS с помощью командной строки у вас может выйти ошибка «Хранилище компонентов повреждено. Ошибка: 14098», что делать в этом случае, читайте в следующей статье.

Статьи, которые вам пригодится:

Наш сайт рекомендует:

  • Защита ресурсов Windows не может выполнить запрошенную операцию
  • Очистка Windows: статьи сайта
  • Хранилище компонентов повреждено. Ошибка: 14098
  • Куда пропало место на диске C: или как пользоваться программами TreeSize Professional, Scanner и поиском Windows
  • Куда делось место на диске: работаем с программой Scanner

  • Комментарии (48)

Популярные статьи

  • Не могу войти в «Одноклассники»
  • Где скачать Windows 10
  • Как обновить Windows 7 до Windows 10
  • Как перевернуть видео с телефона
  • Как убрать поиск из панели задач Windows 10
  • Opera: синхронизация пользовательских данных
  • Ventoy: как пользоваться утилитой для создания загрузочного носителя UEFI и Legacy
  • Лучшие PDF-редакторы для Windows
  • Отключение UAC
  • Как увеличить громкость в браузере
  • Бюджетная видеокарта для игр 2020
  • Недорогой игровой компьютер 2020 за 50 тыс. руб.
  • Дешёвый игровой компьютер 2020 за 20-27 тыс. руб.
  • Как найти файл по содержимому
  • Как в Windows 10 кнопки панели задач сделать маленькими
  • Как сделать ссылку на текст на сайте
  • Видеокарта для игр 2020
  • Обновление Windows 10 October 2020 Update (20H2)
  • Оптимальный игровой компьютер 2020
  • Тёмный режим браузера

Список категорий:

  • Windows
    • Windows
    • Windows 10
    • Лицензирование и активация
    • Windows 8.1
    • Windows 7
    • Windows XP
    • Установка Windows
    • Драйвера
    • Обновления Windows
    • Восстановление Windows
    • Перенос (миграция, клонирование) Windows
    • Учётные записи и пароли
    • Чистка, оптимизация, твики
    • Сборки и дистрибутивы Windows
    • Кастомизация
    • Функционал Windows
  • Безопасность
    • Безопасность
    • Антивирусы
    • Восстановление данных
    • Резервное копирование
    • Шифрование данных
  • Интернет
    • Интернет
  • Программы
    • Программы
  • Жёсткий диск
    • Жёсткий диск
  • BIOS
    • BIOS
  • Железо и периферия
    • Железо и периферия
  • Загрузочный носитель
    • Загрузочный носитель
    • LiveDisk
  • Виртуальные машины
    • Виртуальные машины
  • Разное
    • Разное
    • Другие операционные системы
    • Веб-дизайн

    Как уменьшить размер папки WinSxS с помощью командной строки

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

    Проверка размера папки WinSxS

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

    1. Откройте командную строку.
    2. Введите следующую команду, чтобы определить размер папки WinSxS, и нажмите Enter :

  • Посмотрите фактический размер хранилища компонентов, чтобы узнать, сколько места занимает папка WinSxS.
  • Обратите внимание на пункт «Рекомендуется очистка хранилища компонентов», чтобы определить, нужна ли очистка.
  • Выполнив эти шаги, вы сможете определить фактический размер папки Windows Side by Side и рекомендуется ли её очистка.

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

    Очистка папки WinSxS

    Чтобы уменьшить размер папки WinSxS с помощью командной строки, выполните следующие действия.

    1. Откройте командную строку.
    2. Введите следующую команду, чтобы очистить папку WinSxS, и нажмите Enter :

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

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

    Можно ли удалить папку WinSxS или ее содержимое?

    Да, удалить можно вообще любую системную папку или файл. Правда, в этом случае последствия не заставят себя ждать: уже при следующем включении или перезагрузке Windows может не запуститься, а большинство способов восстановления окажутся бесполезными.

    Другие возможные последствия удаления отдельных файлов папки WinSxS:

    • сбои, вылеты и перезапуск компьютера;
    • проблемы с установкой обновлений;
    • проблемы с откатом изменений.

    Удалять саму папку WinSxS или ее содержимое, как и любой другой системной директории, настоятельно не рекомендуется, но это не означает, что пользователю нужно смириться с ситуацией. Есть возможность уменьшить занимаемый ею объем памяти.

    Функции по требованию в 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 и их назначении.

    Другие варианты

    Существует еще несколько программ и проблем, о которых стоит знать. Вкратце расскажу о каждом из них.

    • В редких случаях, при выполнении каких-либо действий вы можете наблюдать загрузку процессора или оперативной памяти до максимума. Тогда следует выполнить проверку на вирусы.
    • Также для решения задачи можно использовать утилиту «Ashampoo WinOptimizer» или антивирус, обладающий встроенным чистильщиком, например, «360 Total Security».
    • Бывает, что winsxs не очищается несмотря на все усилия. Тогда следует убедиться, что ее объем превышает норму «10 ГБ», в противном случае ничего не выйдет.

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

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector