Windows POSReady 7. Очистка папки WinSxS - banhanman/ab-wiki GitHub Wiki
Разработчики Microsoft, начиная с Win Vista, решили сделать так, что все старые обновления системы (файлы компонентов и библиотеки) не удаляются, а остаются в системе и хранятся в папке WinSxS, которая располагается по адресу C:\Windows\WinSxS. Это служебная папка операционной системы Windows.
Поэтому уже при установке Windows она занимает достаточно много места, и размер этой папки будет всё больше увеличиваться со временем.
Дело в том, что подавляющее большинство содержимого папки WinSxS является «жесткими ссылками» (hard links), а Проводник и файловые менеджеры это не учитывают. Реальный вес этой папки гораздо меньше, чем пишется в ее свойствах.
Попытка удалить часть содержимого папки WinSxS вручную или с помощью программ может привести к ошибкам в работе операционной системы или к полной потере работоспособности.
Несколько способов корректной очистки этой папки будет рассмотрено ниже:
Способ 1. Безопасный, используются встроенные возможности Windows. Cжатие папки.
Команды запускаются из командной строки от имени администратора.
- перейти в каталог ОС
cd /d C:\Windows
- остановить службы "Установщик Windows" (msiserver) и "Установщик модулей Windows" (TrustedInstaller) и измененить для них типа запуска:
sc stop msiserver sc stop TrustedInstaller
sc config msiserver start= demand
sc config TrustedInstaller start= demand
- сохранить в файл списка управления доступом, чтобы восстановить его позже:
icacls "winsxs" /save "C:\winsxs.acl" /t
- установить текущего пользователя с администраторскими полномочиями в качестве владельца папки WinSxS:
takeown /f "winsxs" /r
- установить права полного доступа к папке WinSxS:
icacls "winsxs" /grant "%USERDOMAIN%%USERNAME%":(F) /t
- сжать папку WinSxS средствами системы:
compact /s:"winsxs" /c /a /i *
восстановить TrustedInstaller в качестве владельца папки WinSxS.
icacls "winsxs" /setowner "NT SERVICE\TrustedInstaller" /t
- восстановить из ранее сохраненного файла права доступа к папке WinSxS:
icacls . /restore "C:\winsxs.acl"
Данный способ не особо результативный, но безопасный.
Способ 2. Потенциально опасный, но более результативный
Перед выполнение работ необходимо сделать резервную копию папки WinSxS.
Все работы делаются под учетной записью "Администратор". Нахождение в группе "Администраторы" не дает полных прав!
Используется утилита winsxslite v1.88.7z
Перед запуском скрипта необходимо закрыть все запущенные программы и не запускать их до окончания работы скрипта.
Последовательность действий:
-
Щелкните правой кнопкой мыши на файл WinsxsLite.bat и выберите пункт Запуск от имени администратора.
-
Введите q и нажмите Enter для создания файла конфигурации и выхода из программы.
-
Повторно запустите файл WinsxsLite.bat от имени Администратора.
-
Введите 1 и нажмите Enter для выбора действий, относящихся к первой фазе работы скрипта.
-
Введите s и нажмите Enter для начала сканирования. По результатам сканирования будет создан файл ToDo1.txt, содержащий список файлов, которые должны быть заменены жесткими ссылками на более новые их версии.
-
Введите 1 и нажмите Enter для выбора действий, относящихся к первой фазе работы скрипта.
-
Введите a и нажмите Enter для применения результатов сканирования в дальнейшей работе скрипта.
-
Введите q и нажмите Enter для выхода из программы.
-
Перезагрузите компьютер.
-
Повторно запустите файл WinsxsLite.bat от имени Администратора.
-
Введите 2 и нажмите Enter для выбора действий, относящихся ко второй фазе работы скрипта.
-
Введите s и нажмите Enter для начала сканирования. По результатам сканирования на основе выбранных языковых приоритетов будет создан файл ToDo2.txt, содержащий список файлов, которые должны быть заменены жесткими ссылками на их английскую версию.
-
Введите 2 и нажмите Enter для выбора действий, относящихся ко второй фазе работы скрипта.
-
Введите a и нажмите Enter для применения результатов сканирования в дальнейшей работе скрипта. Не замененными на жесткие ссылки останутся только те языковые версии файлов, которые были добавлены вами на первом шаге данной инструкции. По умолчанию - это русские языковые версии файлов.
-
Введите q и нажмите Enter для выхода из программы.
-
Перезагрузите компьютер.
-
Запустите файл WinsxsLite.bat от имени администратора.
-
Введите q и нажмите Enter для выхода из программы.