НЕ ПРОПУСТИТЬ ИНТЕРЕСНОЕ

Свежие обсуждения

Sorry. No data so far.

Новые возможности уменьшения размера папки WinSxS в Windows 8 и Windows 7

Здравствуйте уважаемые читатели блога www.ithabits.ru. Возвращаемся к одной из самых популярных тем, а именно, к способам уменьшения размера папки WinSxS в Windows 7.

8 октября 2013 года в категории рекомендуемых вышло обновление KB2852386, которое наконец-то добавило очень важный функционал в утилиту «Очистка диска» для Windows 7 SP1 и Windows Server 2008 R2 SP1.

Folder WinSxS Cleaning

Это обновление распространяется на все легитимные, то есть прошедшие проверку подлинности, издания Windows 7 SP1 и Windows Server 2008 R2 SP1.

17 октября 2013 года состоялся релиз Windows 8.1. Начнем рассмотрение способов очистки папки WinSxS с этой новейшей версии операционной системы, так как в ней они представлены наиболее полно. Далее рассмотрим особенности реализации алгоритма очистки в Windows 8 и, наконец, в Windows 7 и Windows Server 2008.

Причины, побудившие Microsoft изменить отношение к объему, занимаемому операционной системой Windows на диске

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

Операционные системы MS Windows

Дата выхода

Место на диске Мб

Коэффициент увеличения

3.1

08.04.1992

11

95

24.08.1995

100

9,1

98

25.06.1998

200

2,0

ME

14.09.2000

500

2,5

XP

25.10.2001

2 500

5,0

Vista

30.11.2006

20 000

8,0

7

22.10.2009

20 000

1,0

 

Нетрудно подсчитать, что Windows Vista, появившаяся в 2006 году, потребовала для своей установки примерно в 1800 раз больше места на жестком диске, чем было нужно для Windows 3.1 в 1992 году. Такой фантастический скачок аппетита ОС произошел всего за 14 лет.

Особенно драматически захват дискового пространства выглядит в моменты “революционных” изменений операционной системы: 3.1 – 95, 98 – XP (ME прошла практически незамеченной), XP – Vista.

Windows Size

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

Сегодня по объему первоначально занимаемого места на накопителе Windows является абсолютным лидером. Если сравнивать с Linux, то, например, самый популярный на момент написания этой статьи (по версии distrowatch.com) Linuxmint, требует для своей установки около 5 Гб на диске.

В одной из статей я описывал установку Linuxmint на нетбук “Asus Eee PC 900” с двумя маленькими SSD (4 + 8 ГБ). Сборка для обычного компьютера (не для нетбука) с полным набором программ чувствует себя на нем вполне комфортно.

Примерно такой же объем – около 10 ГБ, нужен на диске для Mac OS.

К сожалению это еще не все. Наверняка многие слышали шутливое сравнение Microsoft Windows с газом – оба пытаются сразу занять собой весь объем в котором находятся. Это, конечно, преувеличение, но, как известно, в каждой шутке есть только доля шутки.

В процессе эксплуатации Windows начинает занимать все больше и больше места на накопителе и не только за счет новых программ и пользовательских данных. Бороться с этим неприятным явлением бывает очень непросто.

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

Сложившийся ход вещей нарушил приход в пользовательский сектор значительно более дорогих и менее емких твердотельных накопителей SSD.

Возможно, что пройдет еще немного времени и твердотельные накопители емкостью более 100 Гб станут обычными для всех пользовательских устройств. Пока же большинство планшетных компьютеров комплектуются SSD объемом до 64 Гб, а уместить на накопитель такого объема операционную систему Windows вместе с пользовательскими данными крайне проблематично.

Полноценная Windows 7 x64 на один SSD объемом 60 ГБ точно не поместилась.

Возможно, что частично это объясняет и неудачи с Surface – собственным планшетом от Microsoft.

Можно предположить, что эти обстоятельства и заставили инженеров Microsoft искать возможности для минимизации дискового объема, необходимого для работы Windows. Перейдем к рассмотрению таковых, известных на сегодняшний момент времени.

Очистка папки WinSxS в Windows 8.1

Графическая утилита очистки

Начнем с более привычных для большинства пользователей графических утилит. А для того, чтобы оценить эффективность новых способов очистки, зафиксируем исходный объем места, занимаемого Windows 8.1.

Windows 8.1 Disk size

Кроме этого запомним количественные свойства папки WinSxS из “Свойства”:

Размер: 5,54 ГБ
На диске: 5,46 ГБ
Файлов: 46657
Папок: 12786

Теперь нажимаем “Очистка диска”.

Windows 8.1 system files cleaning

Пока ничего нового по сравнению c предыдущими версиями Windows не появилось.

Нажимаем “Очистить системные файлы”, дожидаемся завершения процесса обнаружения кандидатов на удаление и смотрим еще раз:

Windows 8.1 update files cleaning

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

Windows 8.1 cleaning disk

Не смотря на небольшой объем удаляемых файлов, очистка занимает ощутимое время. Посмотрим, что получилось в результате. Папка WinSxS:

Размер: 5,05 ГБ
На диске: 4,97 ГБ
Файлов: 45519
Папок: 12758

Нетрудно посчитать, что показанный файловым менеджером объем папки WinSxS уменьшился примерно на 500 МБ. Это даже больше, чем было обещано. Однако, посмотрим диск:

10,3 - 9,97 = 0,33 ГБ или 338 МБ

Можно предположить, что это более правильное значение. Такая разница показаний может быть обусловлена ошибками расчета занятого места из-за большого количества жестких символьных ссылок в папке WinSxS. Как можно в Windows 8.1 посмотреть точный размер WinSxS, чуть ниже.

Быстро вызвать графическую утилиту очистки диска во всех системах можно командой cleanmgr.

Переходим к консольным командам.

Команды очистки файлов обновлений

Начнем опять же с Windows 8.1, как наиболее продвинутой в этом плане.

Запускаем командную строку от имени администратора. В Windows 8.1 это можно сделать через “Поиск”. В окне поиска нужно набрать cmd, затем выбрать по клику  правой кнопкой мыши “Запуск от имени администратора”.

Все команды, которые будут представлены, можно выполнять и в Windows PowerShell. Кому как больше нравится.

Речь пойдет о системе обслуживания образов DISM, вернее о ее новых возможностях.

Выполним в начале команду:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Windows 8.1 Dism AnalizeComponentStore

Эта команда покажет размер хранилища компонентов WinSxS каким его видит проводник, фактический размер и сколько места занято общими с Windows файлами (жесткими ссылками), объем резервных копий и отключенных компонентов, дату последней очистки и сколько пакетов можно освободить.

Показанное на рисунке состояние WinSxS соответствует полученному в результате очистки с помощью графической утилиты. Посмотрим, изменится ли что-то если повторно запустить процесс очистки, но с помощью DISM.

Выполним основную команду очистки в DISM:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

Повторяем запуск DISM с ключом /AnalyzeComponentStore и убеждаемся, что в папке WinSxS ничего не изменилось. Это означает, что запуск команды очистки в DISM эквивалентен рассмотренной выше графической утилите “Очистка диска”.

Судя по описанию команд в TechNet можно дополнительно уменьшить занимаемый системой объем за счет удаления всех предыдущих версий компонентов. Сделать это можно выполнив предыдущую команду очистки с дополнительным ключом:

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

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

Надо сказать, что в рассматриваемом примере выполнение указанной команды на первый взгляд не возымело на папку WinSxS никакого действия, но при этом неожиданно уменьшилось общее место, занимаемое системой на диске C:\ до 9,58 ГБ. Впрочем, сомневаться в том, что это работает, не стоит.

Если после выполнения команды очистки с ключом /ResetBase открыть “Программы и компоненты” в “Панель управления” и попытаться удалить любое обновление из списка, то это окажется невозможным – кнопка “Удалить” попросту не появляется.

Очистка системы по расписанию

Согласно документации TechNet, начиная с Windows 8 очистка системы теперь выполняется автоматически как запланированное задание:

TaskSheduler Windows 8.1 - StartComponentCleanup

Если открыть “Планировщик заданий”, в разделе “Администрирование” панели управления, то в папке Servicing можно увидеть задание “StartComponentCleanup”.

При автоматическом запуске задание не будет удалять обновления, установленные в последние 30 дней.

Кроме того, в заголовке описания — “Run the StartComponentCleanup task in Task Scheduler to clean up and compress components” есть прямой намек на сжатие компонентов.

К сожалению, пока информации о том, что действительно имелось в виду, нет. Возможно, редко используемые компоненты будут подвергаться ntfs-сжатию, как это некогда было раньше. Например, в Windows Server 2003. История покажет.

Теперь перейдем к предыдущим версиям Windows и коротко посмотрим какие из перечисленных возможностей очистки системы имеются в них.

Средства очистки в Windows 8

Графическая утилита

По внешнему виду она ничем не отличается от Windows 8.1 и точно также может быть запущена разными способами: из свойств диска, командой cleanmgr или из “Панель управления” –> “Администрирование”:

Windows 8 disk cleaning

Процесс очистки так же внешне ничем не отличается от Windows 8.1 и занимает весьма значительное время. В виртуальной машине Windows 8 х64 удаление обещанных 1,12 ГБ файлов обновлений происходило ну очень долго. Думал, что уже и не дождусь завершения.

Возможные варианты запуска очистки в команде DISM в Windows 8

Собственно, не варианты, а один единственный вариант:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

Посмотреть информацию о WinSxS и обновлениях по /AnalyzeComponentStore не получится – версия DISM Windows 8 такой ключ не распознает.

То же самое относится и к /ResetBase – не поддерживается.

Запланированная очистка

Точно также, как в Windows 8.1.

Новые возможности обслуживания папки WinSxS в Windows 7

Как уже говорилось в начале статьи, эти возможности появились с выпуском обновление KB2852386 8 октября 2013 года.

Можно сказать, что это обновление настоящий подарок Microsoft пользователям легальных версий Windows 7 SP1.

В отличие от новейших версий операционной системы, в Windows 7 изменения коснулись исключительно графических утилит. Версия системы DISM осталась прежней и никакие ключи, связанные с очисткой обновлений, она не воспринимает. Но, как говорится, и за это большое спасибо.

Запуск очистки из свойств диска или командой cleanmgr. В “Администрирование” новый пункт не добавился.

Процесс полностью аналогичен описанному для Windows 8.1. Если запустить очистку диска командой cleanmgr, то нажимать кнопку “Очистить системные файлы” не придется – в списке кандидатов на удаление сразу появится строка “Очистка обновлений Windows”:

Windows 7 update cleaning

В отличие от Windows 8 / 8.1 непосредственно после выполнения очистки ничего не произойдет. Для того, чтобы файлы удалились из папки WinSxS, компьютер надо перезагрузить.

На представленном рисунке их объем равен нулю, но на самом деле на рабочем компьютере удалось избавится примерно от 3 ГБ. Это отличный результат.

Возможность очистки системного диска в Windows Server 2008 R2 SP1

Обновление KB2852386 коснулось не только настольной версии Windows, но и серверной Windows Server 2008 R2 SP1. Это не удивительно, так как Windows Server 2008 и Windows 7 имеют одинаковую основу.

Непосредственно после установки этого замечательного обновления на сервер ничего не произойдет. Дело в том, что по-умолчанию в Windows Server 2008 не устанавливается, как это ни странно, утилита «Очистка диска» (Disk Cleanup) и, стало быть, несмотря на то, что обновление установлено, ни о какой очистке обновлений Windows речь идти не может.

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

Первый, скажем так, стандартный по версии Microsoft, предполагает добавление с помощью оснастки “Диспетчер сервера” компоненты “Возможности рабочего стола” (Desktop Experience).

При этом надо иметь в виду, что помимо “Очистка диска” будут добавлены “Проигрыватель Windows Media”, “Темы оформления рабочего стола”, “Видео для Windows”, “Windows SideShow”, “Защитник Windows”, “Центр синхронизации”, “Звукозапись”, “Таблица символов” и “Ножницы”.

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

Благо, существует второй и очень простой способ включить “Очистку диска”. Для этого нужно скопировать из каталога:

%systemroot%\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da в %systemroot%\System32 файл cleanmgr.exe

и из:

C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_ru-ru_02ec7949035cc80a в %systemroot%\System32\ru-RU файл cleanmgr.exe.mui

Таким способом можно включить очистку диска (но не очистку обновлений) и в других релизах Windows Server 2008. Окончания названий папок в WinSxS будут другими, но найти их по слову cleanmgr труда не составит.

При добавлении функционала по второму варианту запустить очистку диска можно выполнив команду

cleanmgr

от имени администратора.

Далее все полностью аналогично описанному чуть выше для Windows 7 SP1. 

В Windows 7 SP1 и Windows Server 2008 R2 SP1 это пока все. В запланированные задания ничего не добавляется, сжатия файлов также не наблюдается. Поэтому, если есть желание дополнительно уменьшить объем, занимаемый файлами в папке WinSxS, то можно сделать это выполнив выборочное ntfs-сжатие.

Описанный и реализованный ранее  в командном файле “winsxscompact” алгоритм ntfs-сжатия папки WinSxS дополнен новыми командами очистки обновлений для операционных систем Windows 7 SP1/Server 2008 R2 SP1 — Windows 8/8.1.

Напоминаю, что для того, чтобы совершенно бесплатно скачать скриптwinsxscompact.cmd”, выполняющий очистку обновлений и ntfs-сжатие уникальных файлов в папке WinSxS, достаточно подписаться на обновления блога по E-Mail. Ссылка на скачивание будет в почтовом подтверждении подписки.

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

Комментарии: 49. Присоединяйтесь к обсуждению!

  1. павел:

    500 мб ушло примерно.
    windows 8.1 64 бит Корпоративная
    ставил месяц назад +все обновления скачиваю.

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

  2. Дмитрий:

    В меню очистки диска писало «Очистка обновлений Windows — 1.13 ГБ», после очистки и перезагрузки освободилось 1.06 ГБ, так что похоже на правду :-)
    Это при том, что месяц назад я уже экспериментировал с winsxscompact, и уже тогда сжал папку WinSxS на 1.5 ГБ.

    Win 7 Домашняя расширенная х86, обновляется в полуавтоматическом режиме.

    • Если нет следов установки сервисного пакета, то winsxscompact ничего не удаляет, а только сжимает уникальные файлы в папке WinSxS. Так что все правильно. Одно другого не заменяет, а только дополняет.

    • Дмитрий:

      Попробовал на работе, сжал на 1.5 ГБ примерно.
      Win 7 Домашняя расширенная х64, обновляется в полуавтоматическом режиме.

  3. Кирилл:

    Скажите, а пункт “Очистить системные файлы” влияет на какой-то возможный функционал (в частности на возможность удаления тех же обновлений) и может ли он хоть как-то в перспективе повлиять на стабильность системы?

    • На стабильность системы не повлияет точно — удаляются только заведомо неиспользуемые файлы.
      Что касается удаления обновлений, то возможность бесповоротной «уборки» следов обновлений есть только в Windows 8.1 — команда очистки DISM с ключом /ResetBase.
      В моей рабочей Windows 7 х64 после выполненной очистки в списке многолетних обновлений кнопка «Удалить» доступна для каждого из них. И в папке ..\winsxs\backup присутствуют и очень старые файлы.
      Так что winsxscompact после очистки не потерял свою актуальность.

  4. павел:

    я запускал именно команду
    Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
    а система была поставлено «начисто»

  5. Лёлик:

    Для 8.1 прокатывают все указанные вами команды!
    для 8.0 тоже можно вычистить командной строкой, только без предварительного анализа системы.
    /Cleanup-Image /spsuperseded [/hidesp]
    Используйте параметр /SPSuperseded для удаления всех файлов резервной копии,
    созданных при установке пакета обновления, а параметр /HideSP — чтобы
    не включать пакет обновления в список установленных обновлений для
    операционной системы.
    Так что СПС за подсказку в нужном направлении!

    • В 8-ке командой:
      Dism.exe /Online /Cleanup-Image /spsuperseded
      ничего очистить не получится, как как она направлена именно на сервисные пакеты. А так как вместо SP1 получилась Windows 8.1, то, видимо, эти ключи уже не будут актуальны никогда:

      Версия образа: 6.2.9200.16384
      Продолжение очистки пакета обновления невозможно: не найдены файлы резервной копии пакета обновления.
      Операция успешно завершена.

  6. Andrey:

    Винда уже больше 2х лет стоит, старушка, можно сказать :)
    на диске очистилось 4 гига :) Сижу в шоке, столько места теперь, класс :)

  7. RuLine:

    -3,3 Гб :)
    Когда интересно Win придет к удобной системе монтирования, как в linux.
    Взять бы папку winsxs на hdd и смонтировать ее в папку /windows/ на ssd. Или дать нормальную жесткую ссылку, а не это подобие, что в форточке.

    • Могу предположить, что у Вас Windows 7 х64. По моим наблюдениям это типичный результат для 7-ки.
      Я думаю, что никогда. Испокон века в Windows была принята простейшая одноранговая система монтирования томов на буквы.

  8. павел:

    а вот товарищ выше написал вопрос :

    Когда интересно Win придет к удобной сиcтеме монтирования, как в linux.
    Взять бы папку winsxs на hdd и смонтировать ее в папку /windows/ на ssd. Или дать нормальную жесткую ссылку, а не это подобие, что в форточке.

    я особо не в курсах-а что это дает рядовому пользователю ?

    • Попробую ответить. Думаю, что имелось в виду следующее. В Windows папку winsxs в принципе нельзя переместить на другой том или диск из-за наличия в ней жестких ссылок, действующих исключительно в пределах одного тома.
      В ближайших планах статья по поводу «правильной» установки Linux. Думаю, что из нее станет понятно какие преимущества дает возможность монтирования томов к произвольной точке дерева каталогов.

  9. павел:

    в windows 7 любые манипуляции по очистке через командную строку -не работают ?

    • Не работают. Вернее — их просто нет. За исключением удаления файлов сервисного пакета SP1. Но сегодня, я думаю, это уже не актуально.

  10. Игорь:

    Всем Привет!
    Подгадил мне капитально Ваш “winsxscompact”. А история получилась следующая:
    Установил «начисто» Windows 7, автоматически не обновлял. Закрыл эту возможность и обновил с пакета, предоставленного здесь.
    Папку «winsxs» «раздуло» более чем до 8 Гб. Ну и запустил я Ваш “winsxscompact”, долго-долго оно паковало-сжимало файлы. Не на сотню метров объём папки «winsxs» не уменьшился. Но в результате отвалилось штатное обновление системы, в списке установленных обновлений не одного КВ не значится. При инсталляции любой программы — инсталлировать не даёт. Говорит — не обнаружен msiexec. В общем перебирать и исправлять глюки — не стал. Пришлось всё заново инсталлить. Хорошо, что система была пустая и эксперименты не принесли никакого урона.
    Вот как то так…. :(

    • Игорь, здравствуйте. Сочувствую, что приключилась такая неприятность, только думаю, что скрипт тут ни при чем — обычное ntfs-сжатие файлов никак не может вызвать таких последствий. Видимо как-то это связано с тем пакетом, с помощью которого Вы обновлялись. Как только будет время обязательно посмотрю что он делает. Кстати, в недавнем посте я как раз описывал оффлайн метод установки обновлений.
      А вообще, в статье я четко написал, что до того, как запускать скрипт, имеет смысл вначале использовать штатные способы. Благо, для Windows 7 они теперь тоже существуют.

    • Утро вечера мудренеe. Могу предположить такой сценарий развития событий. По какой-либо причине скрипт был остановлен в процессе выполнения. В самом его начале делается остановка сервисов msiserver и TrustedInstaller. Соответственно, если “winsxscompact” до конца не доработал, то данные службы остались выключенными. Это и привело к возникшим у Вас неприятностям с установкой программ и обновлений. Можно было ничего не переставлять, а просто запустить их ручками.

  11. Dwarf1980:

    Win7 x64 освободил 2,8Гб. Спасибо автору.

  12. Максим:

    Захожу в очистку диска, ставлю галочку на Очистка обновлений windows, нажимаю Ok… И ничего не происходит. Ничего не удаляется. Появляется это финальное окно Очистка диска и сразу закрывается. С чем может быть связано?

    • Все правильно. В Windows 7 очистка обновлений происходит в момент перезагрузки системы. Просто перезагрузите компьютер после того, как поставили соответствующую отметку.

  13. Sim:

    Windows 7 Home Premium
    После очередной очистки и сжатия при помощи winsxscompact службы msiserver и TrustedInstaller остались отключенными, именно не остановленными а отключенными, пришлось включать их вручную.
    А еще у меня включено автоматическое обновление и оно вдруг предложило установить 6 старых обновлений, давно установленных и забытых, которые видимо были удалены из winsxs.
    среди них Internet Explorer 11, но он у меня установлен, специально запустил и посмотрел «О программе». И чего? игнорировать предложение заново установить эти обновления?

    • Чуть выше в комментариях уже было нечто подобное. Итак, по неизвестной мне причине скрипт не доработал до конца. Стало быть из-за этого остались выключенными сервисы msiserver и TrustedInstaller. Дополнительно к включению сервисов надо сделать сброс разрешений на winsxs:
      icacls.exe C:\Windows\winsxs /reset /t
      Почему вдруг Windows нашел как бы неустановленные обновления объяснить не возьмусь. По идее из-за работы скрипта такого быть не может — он ведь не удаляет никакие файлы, а сжаты они или нет роли не играет. Могу предположить, что все же имел место некий сбой в результате которого и скрипт не отработал.
      Я выложил измененный вариант winsxscompact. Изменения такие: временные разрешения устанавливаются не на всю папку, а только на файлы, подлежащие сжатию, причем поочередно на каждый файл и тут же восстанавливаются. Неизменными остаются неуникальные файлы (жесткие ссылки), файлы размером равным или менее 4 Кб (они все равно не сжимаются) и сжатые ранее.
      Идею и часть готового кода любезно предоставил читатель блога Alex, за что большое ему спасибо.
      На первый взгляд в таком варианте при выполнении скрипт не требует много памяти (по этой причине в новом релизе я посчитал возможным отключить проверку памяти на <2 Гб), и много менее «травматичен» для разрешений на файлы в случае непредвиденной остановки. Время работы специально не замерял, но по ощущениям из-за дополнительных проверок не быстрее.
      Если будете использовать, не сочтите за труд отписаться о результатах.

    • Sim:

      Подскажите пожалуйста ссылку на обновленный winsxscompact, а то чего-то не получается найти ее.

    • Отправил файл на mail.

    • Sim:

      А какой пароль к архиву?

    • Sim:

      Сделал сжатие папки winsxs при помощи нового winsxscompact, во время сжатия видел много сжимаемых файлов с коэффициентами от 2 к 1 до 4 к 1, после сжатия посмотрел размер папки как был 6.1 ГБ так и остался, зато в свойствах папки занимаемое место на диске сейчас показывает 4.2 ГБ, т.е. реально уменьшилось занимаемое место? по объему свободного места на диске я не заметил разницы.

    • Как я уже говорил в статье, из-за большого количества жестких ссылок в winsxs, файловые менеджеры показывают ее размер не правильно. К сожалению посмотреть правильный объем этой папки можно только в Windows 8.1 с помощью Dism.
      Не думаю, что есть основания не доверять информации команды compact. Коль она пишет, что файл сжат, значит действительно сжат. Другое дело каков относительный объем этих файлов. Он может оказаться весьма незначительным.
      А вообще, после того, как появились штатные средства очистки winsxs, в том числе и в Windows 7, которые, кстати, в полной мере представлены в winsxscompact, уменьшение занимаемого обновлениями объема путем их ntfs сжатия точно перешло в факультативную категорию. При вашем весьма скромном объеме winsxs сильно «дожать» ее за счет ntfs сжатия точно не получится.

  14. Дмитрий:

    Приветствую. С успехом пользовался вашим скриптом на самых разных машинах, но тоже неоднократно сталкивался с тем, что скрипт тупо вылетает на половине работы. И всё. Приходится запускать его снова и снова, чтобы он, наконец, всё сжал, вернул все разрешения и запустил обратно все службы. Вы писали выше про обновленную версию скрипта. Можете выслать её?

    • Отправил. Отпишитесь потом, пожалуйста, о результатах применения — вылетает/не вылетает/скорость работы. А то народ как-то попритих. Видимо все хорошо.

  15. Василий:

    Добрый день!
    Проверил кодировку своей консоли через команду chcp
    и отображается Active code page: 866

    а при открытии вашего скрипта блокнотом, то кирилица отображается йероглифами.

    можно попросить сделать скрипт чтобы его можно было читать в блокноте, сохранить правильной кодировкой.

    спасибо!

    • Василий! Командный файл сделан в правильной кодировке 866 и менять ее только для того, чтобы открыть в Notepad было бы как-то неправильно. Я бы даже сказал, совершенно неправильно. Установите себе один из бесплатных редакторов, которые умеют работать не только в кодировке 1251 и все проблемы будут решены. Например, хороший редактор в файловом менеджере Far, или, что еще лучше, Notepad++.

  16. Спасибо за все способы

  17. Олег:

    Здравствуйте. Скажите почему при запуске скрипта winsxscompact, когда выбираю 2 сжатие, выдает ошибку [BS] ControlService: ошибка 1062 служба не запущена. Подскажите как сделать что бы происходило сжимание??

    • Олег. Для того, чтобы я смог ответить на ваш вопрос, мне надо знать хотя бы в какой системе запускается скрипт.

  18. Олег:

    Александр, Windows 7 х64 Максимальная SP1

    • Перед тем, как приступить к ntfs-сжатию файлов, предварительно останавливаются сервисы msiserver и TrustedInstaller. По завершении они вновь запускаются. Проверьте все ли у Вас с ними в порядке. Если да, то думаю сообщение об ошибке можно игнорировать.

  19. Александр:

    Александр, а как их остановить? Вот так что ли:
    sc config msiserver stop= demand
    sc config TrustedInstaller stop= demand
    Если да то пробовал, ничего не помогло. Та же ошибка:
    [SC] ControlService: ошибка: 1062:

    Служба не запущена.

    [SC] ControlService: ошибка: 1062:

    Служба не запущена.

    [SC] ChangeServiceConfig: успех
    [SC] ChangeServiceConfig: успех
    Если сообщение игнорировать об ошибке то ничего не происходит, висит так это сообщение и все.

    • Скрипт ищет файлы не имеющие жестких ссылок в других системных папках. При этом он перебирает огромное количество файлов. Могу предположить, что «зависание» кажущееся. Посмотрите, есть в этот момент активность по жесткому диску. Скорее всего она есть. Нужно просто набраться терпения минут на 10 и дождаться когда на экране пойдут сообщения о сжатии файлов (выводятся только они).

  20. Владимир:

    Задам глупый вопрос. А можно ли winsxs при установке системы «с нуля» куда-то скопировать, а потом им подменить рабочий winsxs, который раздуется, скажем, за полгода? Разумеется, не из-под винды это делать, а с LiveCD.
    Спасибо.

    • Sim:

      Ну и какой толк от этого? Ведь winsxs раздувается от установленных обновлений, и если его подменять на старый, который до обновлений был, то обновления будут устанавливаться заново и получишь тоже самое.

  21. Вячеслав:

    Александр, доброго вечера
    Не могли бы Вы и мне подсобить с Вашим скриптом?
    Имею удаленный Win Server 2008 R2 Sp1
    Диск 60Г разбит 40+20… Винда съела все 40… перенес с С все что можно, применил cleanmgr, но детище Майкрософта снова сжимает клещи…
    Встает вопрос перераспределения диск.пространства, отдав на съедение 5 свободных Гб
    Но на удаленке стремно играться с Акронисом…
    Winsxs больше видится проводником больше 10Г
    заранее спасибо

    • Вячеслав, здравствуйте. Однако 40 Гиг, конечно, маловато и на удаленке эксперименты сомнительного толка лучше не делать. Скрипт я на серверах не тестировал и вообще думаю, что в данном случае погоды он не сделает. Если cleanmgr ничего не дал и 20 Гб целиком добавить к системному разделу нельзя (интересно, что на нем лежит. Размерчик то, вроде, ни туда, ни сюда), то я бы сделал сжатие всего С:\ целиком. Операция «родная», стало быть совершенно безопасная. На скорость дисковых операций и производительность сервера в целом NTFS-сжатие сильно не повлияет. Запустить процесс на ночь и дело с концом. Когда-то я проделал такое с сервером на Windows 2003. Причина была та же — маленький системный диск. Никаких отрицательных эмоций после сжатия диска C:\ не возникло. Так сервер и доработал благополучно до своей логической кончины без смены дисков.

    • Вячеслав:

      Ларчик просто открывался… стоял MS Office 2013 full. Снес его и — вуаля — почти +20Гб )) После переустановки с минимально необходимым набором компонентов и полного обновления — еще в запасе 9 Гб.
      Кстати, скрип Ваш я таки запустил — и порядка 1.5 Гб ушло.
      Так что спасибо. Пока поюзаем так, потом, как прижмет — расширение дисков, переустановка системы, софта…
      С уважением,
      Вячеслав

  22. Андрей:

    Спасибо за скрипт, но после него свободного места не добавилось, даже полгига уменьшилось. Диск С 80Гб, свободно 3Гб. Решил, что дело не в папке winsxs и стал искать. Запустил с другого диска винду ХР и ей просматривал папку вин7. Оказалось дело в папке LocalMLS по адресу C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Media Player\Кэш файлов графики\LocalMLS У меня там за 6 лет накопилось более миллиона файлов jpg общим весом в 37гб!!! При этом родной проводник вин7 и программа TreeSizeProfessional показывают её как ПУСТУЮ! Поискал в инете, нашёл вот что. для решения проблемы, проделайте следующее — WIN+R —> services.msc —> в русской системе, в списке найдите службу «Служба общих сетевых ресурсов проигрывателя Windows Media», если система английская то службу «Windows Media Player Network Sharing Service», кликаем на ней ПКМ —> Свойство, появиться окно, в этом окне нажимаем на кнопку «Остановить» и «Тип запуска» — ставим «Отключено» — ОК, после чего, смело можете очистить папку LocalMLS и можете спокойно продолжать работать с ПК, в дальнейшем проблем быть не должно. Сейчас уже третий час это всё удаляю… Решил, что кому пригодится, а то уже всё перепробовал и файлы подкачки, и точки восстановления и папку winsxs шерстил, а оно оказалось из-за плеера виндовского. Слов для разработчиков винды не хватает…

Написать комментарий

Subscribe without commenting