В этой статье мы поговорим о каталоге WinSxS и Windows 8, причинах его постоянного роста и способах очистки. Каталог C:\windows\WinSxS является хранилищем компонентов Windows. В этом каталоге содержатся dll библиотеки, бинарные и xml файлы, необходимые для установки и работы той или иной роли ОС Windows. При установке обновлений ОС, новая версия обновляемого компонента устанавливается в систему, а старая сохраняется в хранилище WinSxS (по словам Microsoft это необходимо для обеспечения совместимости и возможности «отката» на старые версии компонентов).
Склонность производителей мобильной техники создавать всё более компактные и тонкие устройства постепенно вызвала непреодолимые препятствия для стороннего ремонта такой техники. В ряде случаев популярные гаджеты оказывается невозможно разобрать, не повредив детали, а разнообразие моделей даже в пределах одного бренда создаёт большой разброс в необходимых для починки запчастях. Это выгодно для производителей — так их технику покупают ещё больше. О сложившейся тенденции рассказывает NBC News.
Одной из самых серьезных угроз последнего времени являются трояны-шифровальщики. Это вредоносное ПО способно в одночасье лишить пользователя всей накопленной информации. Для небольших фирм подобный инцидент способен полностью парализовать деятельность на продолжительное время и привести к значительным финансовым и репутационным издержкам. Поэтому мы, когда в наши руки попал свежий экземпляр данного трояна, решили проверить насколько надежную защиту предоставляют популярные антивирусы.
В этой статье мы попытаемся разобраться с довольно часто возникающей проблемой при подключении Windows 8.1 к Wi-FI точке доступа, выражающейся в ограниченном подключении к интернету или периодическом самопроизвольном отключении Windows 8.1 от WiFi- точки.
Как уменьшить размер папки WinSxS в Windows 8
Как не трудно догадаться, каталог WinSxS со временем будет постоянно увеличиваться, причем размер его не ограничен ничем. Ситуация усугубляется тем, что какой либо возможности управлять или влиять на этот процесс не предусмотрено.
Самым естественным способ уменьшить размер папки WinSxS в Windows 8 могла бы быть возможность удаления из системы старых версий компонентов, однако инструмента для этих целей Microsoft пока не предоставила.
Еще одной основной особенностью папки WinSxS является наличие в ней большого количества так называемых hard links (жестких символьных ссылок). Жесткая ссылка представляет собой полностью равноправный оригинальному указатель на файл. Т.е. указатель и исходный файл могут иметь разные имена и находиться в пределах одного раздела в разных каталогах, но реально указывать они будут на один и тот же объект. Именно из-за наличия жестких ссылок, которые включаются в расчет общего размера каталога, файловые менеджеры (и в том числе Windows Explorer) показывают несколько преувеличенный размер папки WinSxS. Узнать реальный (без учета жестких ссылок) размер папки WinSxS можно с помощью утилиты SysInternal du:
du -v c:\windows\winSXS
У многих пользователей возникает естественный вопрос можно ли вручную удалить файлы из папки WinSxS. Ответ на этот вопрос – категоричное НЕТ! Такими действиями с большой долей вероятности получиться нарушить работоспособность Windows 8. И хотя некоторые попытки удаления файлов из папки WinSxS могут быть удачными, рекомендовать этот способ с точки зрения потенциальной опасности для системы нельзя.
Остановимся на наиболее безвредных с точки зрения системы способах очистки папки WinSxS в Windows 8. Это:
- Технология Features on Demand, позволяющая удалить неиспользуемые компоненты Windows 8 с диска
- Сжатие файлов в папке WinSxS – способ уменьшить размер каталога WinSxS за счет NTFS компрессии ее содержимого
Для достижения максимального результата оба данных способа можно использовать совместно.
Features on Demand в Windows 8
В статье «Безопасная очистка папки WinSxS в Windows Server 2012» мы рассмотрели новую функцию Features on Demand, предоставляющую возможность удаления бинарных файлов неиспользуемых ролей из каталога WinSxS. Для удаления с диска неиспользуемых ролей существует специальный командлет Powershell – Uninstall-WindowsFeature. Однако в случае с Windows 8 не все так просто. Дело в том, что командлет Uninstall-WindowsFeature в Windows 8 отсутствует. А технология Features on Demand реализуется только с помощью DISM или командлета DISM PowerShell. Кроме того, важно знать, что команда DISM в отличии от командлета Uninstall-WindowsFeature не анализирует зависимости пакетов друг от друга. Так что при удалении пакета Windows с помощью DISM будет удален только указанный в команде компонент, а все зависимые от него пакеты останутся в системе. Именно по этой причине для удаления ролей с диска в Windows Server 2012 не стоит использовать DISM, т.к. есть гораздо более удобное и функциональное средство.
Полный список доступных функций в Windows 8 можно получить с помощью команды:
DISM.exe /Online /English /Get-Features /Format:Table
Предположим, например, что служба TelnetServer в дальнейшем нам не понадобится. Удалим ее полностью с диска (по сути из каталога WinSxS) командой:
DISM.exe /Online /Disable-Feature /Featurename:TelnetServer /Remove
Если еще раз вывести список всех доступных функций Windows 8, вы увидите, что статус компонента изменится на Disabled with Payload Removed.
Таким образом в Windows 8 можно существенно уменьшить размер папки WinSxS, удалив с диска неиспользуемые компоненты. Единственный нюанс, это вариант очистки каталога WinSxS подойдет для достаточной продвинутых пользователей, которые разбираются в компонентах и их назначении Windows 8.
Сжимаем содержимое папки WinSxS в Windows 8
Еще один способ уменьшения размера каталога WinSxS в Windows 8 – сжать содержимое каталога на уровне файловой системы NTFS.
- Откройте командную строку с правами администратора
- Остановите и отключите службы Windows Installer и Windows Module Installer
sc stop msiserver sc stop TrustedInstaller sc config msiserver start= disabled sc config TrustedInstaller start= disabled
- Создадим резервную копию списков доступа (ACL) назначенных на файлы и папки в каталоге WinSxS (в дальнейшем этот бэкап понадобиться для восстановления оригинальных ACL)
icacls "\WinSxS" /save "\WinSxS_NTFS.acl" /t
- Назначим себя владельцем папки WinSxS и всех вложенных каталогов
takeown /f "\WinSxS" /r
- Предоставим своей учетной записи полные права на каталог WinSxS
icacls "\WinSxS" /grant "":(F) /t
- Сожмем каталог WinSxS и все его содержимое с помощью команды compact. Часть файлов может использоваться системой, поэтому если запустить команду без параметра /i, сжатие будет остановлено на первом же файле, используемом в настоящий момент системой. С помощью Process Explorer можно найти имя процесса, открывшего данный файл (CTRL+F) и завершить его. Тем самым можно добиться максимальной степени сжатия. Мы лишь ограничимся сжатием неиспользуемых файлов.
compact /s:"\WinSxS" /c /a /i *
- Восстановим владельца каталога WinSxS на TrustedInstaller
icacls "\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
- Восстановим оригинальные списки доступа ACL на каталог WinSxS
icacls "" /restore "\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 8 работает со сжатыми файлами в прозрачном режиме, однако при обработке таких файлов, ей может понадобиться дополнительное время на их декомпрессию/компрессию, это означает некоторое замедление процессов установки компонентов Windows или обновлений. Однако для современного CPU эти процессы выполняются практически мгновенно, так что реального уменьшения скорости пользователь может даже не заметить. Мало того, если жесткий диск медленный, а процессор достаточно быстрый – при сжатии можно заметить даже увеличение скорости работы! Отметим, что при включении ntfs-сжатия всего содержимого папки WinSxS, за счет использования жестких ссылок окажутся сжатыми ряд файлов в других системных каталогах.
Указанные команды можно выполнять по отдельности (так проще контролировать успешность выполнения каждой из них), либо можно объединить все операции в один файл сценария, запустив который запуститься описанный процедура сжатия данных в папке WinSxS. Скачать готовый командный файл можно тут: compress_winsxs.bat
Данный скрипт можно использовать постоянно в процессе эксплуатации системы, т.к. после установки новых обновлений и программ в каталоге WinSxS будут появляться новые «несжатые» файлы.
Автор: itpro — 07.08.2013







