[Developer's community]

Очистка WinSxS в Windows 7 и 8

 В Windows 7 и Windows 8 появилась новая папка "WinSxS" находящаяся  в C:\Windows, в которой в основном хранятся файлы компонентов. Она также по совместительству является "свалкой" старых версий всех DLL библиотек и файлов компонентов и ее размер постоянно растет. В дополнение к этому, много места занимают папки резервного копирования, которые разрастаются до действительно больших объемов после установки Service Pack 1 для Windows 7. К примеру на моем ПК, с установленной Windows 7 Home Pro размер этой директории достигает почти 8Гб.

 

Это довольно много места, особенно для свежей установки обеих операционных систем. Как только вы установите обновления для ОС или сервис-пак, эта директория вырастет в размерх еще на несколько гигабайт. Как выражаются в Майкрософт, это супер-сет файлов для Windows (они требуются для стабильной работы ОС), поэтому не следует удалять эту директорию полностью (хотя это возожно). Однако, вы можетесэкономить немного дискового пространства.

Первое что вы можете сделать - это уменьшить размер бэкапа этой директории, посредством простой команды: Win+R, наберите cmd, появится командная строка, наберите 

dism /online /cleanup-image /spsuperseded /hidesp

 

Детальное описание команд см. на сайте майкрософта.

Примите во внимание, что на х64 системах Dism.exe находится в другой директории (SysNative или SysWOW64, зависит от типа ОС), поэтому путь к нему нужно указать явно, к примеру:

cd C:\Windows\SysNative

...и только потом выполнить вышеуказанную команду.

Еще одна опция, которая не требует знаний системного администрирования - это использовать стандартный тул "Очистка диска" (или Disk cleanup).

ПКМ на любом логическом диске, в вы падающем меню выберите "Свойства", затем кликните на "Очистка диска". Файлы бэкапа - это как раз то, что хранится в директории WinSxS.

Довольно просто да?

UPDATE:

ОС Windows хорошо известна частым выпуском различных обновлений и пользователь обычно ставит все что появляется в "Центре обновления" не особо задумываясь, а может и вовсе не ставит. Во имя избежания ошибок с выполнением системных команд рекомендуется установить обновление KB2533552 (исправляет возникающие ошибки после установки SP1). Проверьте наличие данного апдейта и если его нет, скачайте и установите его (http://support.microsoft.com/kb/2533552) 

 

Comments (18) -

  • Не удается найти текст сообщения с номером 0x2350 в файле сообщений Application.


    (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
    Недостаточно памяти для обработки команды.

    C:\Windows\system32>dism /online /cleanup-image /spsuperseded /hidesp

    Cистема DISM
    Версия: 6.1.7600.16385


    Ошибка: 11

    Нельзя обслуживать 64-разрядную операционную систему 32-разрядной версией систем
    ы DISM.
    Следует использовать версию DISM, соответствующую архитектуре компьютера.

    Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log

    C:\Windows\system32>


    У меня семерка 64 разрядная
  • Спасибо за замечание. Действительно, я упустил из внимания х64 системы и в данном случае вам нужно использовать другой каталог (SysNative или SysWOW64), т.е. переходим в него командой:
    c:
    cd\Windows\SysNative
    остальная часть остается той-же:
    dism /online /cleanup-image /spsuperseded
    Пост исправил...
    Успехов!
  • "Примите во внимание, что на х64 системах Disp.exe находится в другой директории".
    Разве Disp.exe, а не dism.exe. И еще у меня Windows 7 Pro SP1, не пришлось ничего лишнего прописывать, команда сработала.
  • Windows 7 Pro x64 SP1 конечно же
  • у меня x64 разрядная "семерка". папки sysnative и syswow64 есть, но при попытке в нее перейти пишет:"системе не удается найти указанный путь"
  • подскажи делаю всё по указаниям,но пишет "Ошибка :740  Для запуска DIMS требуется более высокий уровень разрешений.Для выполнения этих задач воспользуйтесь командной строкой с повышенными привелегиями."
  • c:\>dism /online /cleanup-image /spsuperseded /hidesp

    Cистема DISM
    Версия: 6.1.7600.16385

    Версия образа: 6.1.7600.16385


    Ошибка: 87

    Параметр spsuperseded не распознан в этом контексте.
    Дополнительные сведения см. в справке.
    Параметр hidesp не распознан в этом контексте.
    Дополнительные сведения см. в справке.

    Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log
  • Это объясняется тем, что в C:\Windows\system32> находится х32 версия DISM.
    Читайте статью внимательнее:

    Примите во внимание, что на х64 системах Disp.exe находится в другой директории (SysNative или SysWOW64, зависит от типа ОС), поэтому путь к нему нужно указать явно, к примеру:

    cd C:\Windows\SysNative

    ...и только потом выполнить вышеуказанную команду.

  • Похоже что у вас в системе нет прав администратора или настроена политика, где все программы выполняются с наименьшими привиленгиями для минимизации ущерба... В данном случае как самый простой выход я могу посоветовать создать ярлык (к примеру на рабочем столе), в пути к исполняемому файлу прописать cmd.exe (абсолютный путь указывать не нужно) и сохранить. Потом нажать на нем ПКМ, выбрать "Выполнить от имени администратора" (Run as administrator) и повторить команду.
  • 1. Посмотрите работает ли сервис "Установщик модулей Windows" (Windows Modules Installer), если нет, запустите его и повторите команду.
    2. Если этот сервис работает, но вы по-прежнему получаете ошибку 87, это возможно связано с тем что команда c:\>dism /online /cleanup-image /spsuperseded /hidesp уже выполнялась и кэш чист.
  • Та же проблема (87) Ладно, а как этот кеш очистить. Glary utilities не помогает.
  • 1. Убедитесь что у вас есть права администратора.
    2. См. комментарий выше для решения проблемы с ошибкой 87.
    3. Самый простой способ это использовать "Очистку диска" а не консольные команды, посмотрите может у ваш кэш уже очищен (как на скриншоте в статье).
  • У меня х64 Win 7 (пока не обновил)
    1. я администратор
    2 ввожу команду: cd C:\Windows\SysNative
    пишет - Системе не удаётся найти указанный путь
    3 ввожу: dism /online /cleanup-image /spsuperseded /hidesp
    пишет - Cистема DISM
    Версия: 6.1.7600.16385

    Версия образа: 6.1.7600.16385


    Ошибка: 87

    Параметр spsuperseded не распознан в этом контексте.
    Дополнительные сведения см. в справке.
    Параметр hidesp не распознан в этом контексте.
    Дополнительные сведения см. в справке.

    Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log

    (!) Укажите несколько вариантов команд, которые можно просто скопировать и вставить!

    P.S. Вышеописанный текст в статье мне не помог, и не только мне.
  • Спасибо! У меня эта директория занимала 12 Гб теперь занимает 7 Гб. А что-то еще можно сделать чтобы еще меньше стала занимать, у меня на ноуте стоит только SSD 120Gb поэтому сами понимаете за каждый Гб борюсь.
  • Способов много, все зависит от возможностей Smile С появлением SSD это особенно важная проблема, т.к. нужно не только уменьшить объем занимаемых системой файлов, но еще и сократить количество дисковых операций (до разумного предела конечно). Хоть и говорят, что SSD достигнет предела I/O операций не ранее, чем рак на горе свиснет, но все-же... вот некоторые полезные советы для различных ситуаций:
    1. Для десктопов
    - Удаление установочных файлов (WinSxS);
    - Отключение Hibernate (для десктопов я не вижу смысла его использовать);
    - Отключение (или уменьшение) дисковой подкачки (Virtual Memory Paging). ИМХО, если памяти достаточно то она вообще не нужна, т.к. системе ни к чему обращаться в жесткому диску для временного хранения. Если сделать видимыми системные файла, то в корне диска можно увидеть файл pagefile.sys немалого размера;
    - Очистка временных файлов (%TEMP%);
    - Удаление временных файлов интернета;
    - Удаление старых точек восстановления и бэкапов системы (бэкапы лучше хранить на других дисках или съемных носителях);
    - Удалите все дубликаты (в нете полно утиля который все сделает за вас);
    - Применяйте компрессию для редко используемых файлов (каждый файл имеет свойство "Сжимать содержимое для экономии места на диске");
    - Используйте утилиты на подобие FolderSizes для определения наиболее объемных файлов.
    2. Для ноутбуков и систем с загрузочным SSD
    Применимо все вышеописанное с некоторыми изменениями, т.к. нам важно уменьшить не только объем занимаемого места но еще и сократить кол-во I/O операций, как было описано выше:
    - Перенести %TEMP% на другой диск;
    - При большом желании использовать Hibernate - перенести его на др. диск;
    - Отключить подкачку совсем (для SSD систем она теряет актуальность, а если учитывать объем оперативной памяти в современных системах то и подавно);
    - Автоматизируйте процесс удаления временных файлов при помощи CCleaner к примеру.
    В следующей статье я опишу каждый шаг подробно.
  • На самом деле команды, которые можно просто скопировать и вставить уже были описаны в статье и здесь стоит искать корень проблемы. Данная ОС хорошо известна частым выпуском различных обновлений и пользователь обычно ставит все что появляется в "Центре обновления" не особо задумываясь, а может и вовсе не ставит. Конкретно данная ошибка связана с отсутствием некоего апдейта системы (KB2533552). Проверьте наличие данного апдейта и если его нет, скачайте и установите его (http://support.microsoft.com/kb/2533552).
  • Ввёл cd C:\Windows\SysNative получил сообщение, что путь не найден. Тогда ввёл cd C:\Windows\SysWOW64  Получилось, вошёл. Но при приминении команды dism /online /cleanup-image /spsuperseded /hidesp  получил сообщение, что "Ошибка 11 нельзя обслуживать 64-разрядную операционную систему 32-разрядной версией системы DISM. Следует использовать версию DISM, соответствующую архитектуре компьютера" Система Windows 7 64 бит. Профиль суперадминистратора, имя профиля Администратор.
  • Для корректной работы этой команды в х64 разрядных системах используется системная директория по-умолчанию, т.е. C:\Windows\System32
    Вводит в заблуждение название этих директорий, т.е. System32 следуя логике должна использоваться для х32 приложений и SysWOW64 для совместимости с х64 приложениями, хотя на деле все наоборот.

Add comment

Loading