Servicing что это за папка windows 10

Обновлено: 04.07.2024

В этом разделе описаны различные способы уменьшения размера папки WinSxS в работающей версии Windows 10.

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

Windows 10 и Windows Server 2016 автоматически сокращают размер папки WinSxS с помощью методов, аналогичных описанным в этом разделе, в дополнение к внутренним процессам, например к удалению и удалению пакетов с компонентами, замененными другими компонентами с более новыми версиями. Предыдущие версии некоторых компонентов хранятся в системе в течение определенного периода времени, что позволяет выполнять откат при необходимости. По истечении определенного периода времени эти старые компоненты автоматически удаляются из установки.

кроме того, можно уменьшить размер образа Windows с помощью одних и тех же приемов, как описано в разделе уменьшение размера хранилища компонентов в автономном Windowsном образе.

Дополнительные сведения о поиске размера папки WinSxS см. в разделе Определение фактического размера папки WinSxS.

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

в Windows 10 и Windows Server 2016 существует несколько способов запуска очистки хранилища компонентов, которые используют сочетание удаления пакета и сжатия компонентов для очистки папки WinSxS:

планировщик задач

задача старткомпонентклеануп была создана в Windows 8 для регулярной очистки компонентов, если система не используется. Эта задача настроена на автоматический запуск при активации операционной системой. При автоматическом запуске задача будет ожидать не менее 30 дней после установки обновленного компонента перед удалением предыдущих версий компонента.

Если вы решили выполнить эту задачу, задача будет иметь время ожидания в 1 час и может не полностью очистить все файлы.

Выполнение задачи Старткомпонентклеануп в планировщик задач для очистки и сжатия компонентов

Если планировщик задач не открыт, запустите планировщик задач. Дополнительные сведения см. в разделе Start планировщик задач.

разверните дерево консоли и перейдите к библиотеке планировщик задач библиотека \ Microsoft \ Windows \ обслуживание \ старткомпонентклеануп.

В разделе выбранный элемент нажмите кнопку выполнить .

Задачу Старткомпонентклеануп также можно запустить из командной строки.

Dism.exe

Параметр /Cleanup-Image Dism.exe предоставляет опытным пользователям дополнительные возможности для дальнейшего уменьшения размера папки WinSxS. Дополнительные сведения см. в разделе параметры Command-Line обслуживания пакетов операционной системы DISM.

Использование параметра/Старткомпонентклеануп

использование параметра /старткомпонентклеануп Dism.exe на работающей версии Windows 10 дает аналогичные результаты для выполнения задачи старткомпонентклеануп в планировщик задач, за исключением того, что предыдущие версии обновленных компонентов будут немедленно удалены (без 30-дневного льготного периода), а ограничение в 1 час не будет ограничено.

В командной строке с повышенными привилегиями введите следующую команду:

Использование параметра/Ресетбасе с параметром/Старткомпонентклеануп

с помощью параметра /ресетбасе с параметром /старткомпонентклеануп DISM.exe на работающей версии Windows 10 удаляются все заменяемые версии каждого компонента в хранилище компонентов.

В командной строке с повышенными привилегиями введите следующую команду:

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

Использование параметра/Спсуперседед

чтобы уменьшить объем пространства, используемого пакетом обновления, используйте параметр /спсуперседед Dism.exe на работающей версии Windows 10, чтобы удалить все компоненты резервного копирования, необходимые для удаления пакета обновления. Пакет обновления — это набор накопительных обновлений для конкретного выпуска Windows.

В командной строке с повышенными привилегиями введите следующую команду:

Предупреждение
После завершения этой команды Удалить пакет обновления невозможно.

Очистка диска

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

Запустите программу очистки диска, чтобы удалить системные файлы

Аватар пользователя

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

Что это за папка и для чего она нужна

WinSxS — служебная папка, которая появилась еще в Windows Vista, и присутствует во всех последующих версиях операционной системы. Полный путь к папке: C:\Windows\WinSxS. Увидеть ее можно, если включить отображение скрытых файлов и папок в параметрах папок (вкладка «Вид»).


Здесь хранятся файлы обновлений, конфигурационные данные, резервные копии файлов. Это каталог хранилища компонентов Windows. Именно благодаря ему пользователь может откатить практически любые изменения системы. Например, если вышло очередное забагованное обновление или эти самые изменения чем-то не понравились. Содержимое WinSxS используется в откате операционной системы к первоначальным настройкам, а также необходимо для работы Windows.

Учитывая специфику каталога, со временем он будет интенсивно расширяться.

Сколько места может занимать содержимое папки WinSxS

Обновления приходят регулярно, тем более сам пользователь часто вносит различные изменения в работу операционной системы. Если оптимизация каталога ранее не проводилась, или же процедура выполнялась давно, то размер папки легко может превысить отметки в 20 ГБ, но здесь есть один нюанс.

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

Отсюда возникает и другой вопрос. Какой размер этой папки считается нормальным, и когда нужно всерьез задуматься об оптимизации содержимого?

Если папка WinSxS занимает свыше 10 ГБ памяти, то чистка практически наверняка нужна.

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


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

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

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

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

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

Как очистить папку WinSxS: способы и инструкции

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

Встроенное средство очистки дисков в Windows

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

Инструкция по использованию встроенного средства очистки дисков в Windows.

    Зайти в папку «Компьютер», кликнуть правой клавишей на системном диске (диск C), выбрать пункт «Свойства», а затем нажать кнопку «Очистка диска», где нас интересует кнопка «Очистить системные файлы». Альтернативный вариант — прописать в командной строке (открытой от имени Администратора) следующую команду cleanmgr.


Если каталог WinSxS ранее не чистился или чистился давно, то при помощи данного метода получится освободить от нескольких сотен мегабайт до пары гигабайт места.

Этот метод актуален для ОС Windows 8.1 и Windows 10. В Windows 7 данной опции изначально нет, но она появится при установке пакета обновлений KB2852386.

Утилита DISM.exe

Этот метод предполагает использование консоли. Его эффективность выше, и в результате можно освободить больше места.

Инструкция по использованию утилиты DISM.exe для очистки папки WinSxS.

    Открыть командную строку от имени Администратора и прописать в ней команду: Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore.




Но это еще не все, что можно сделать при помощи утилиты DISM.exe. Другие полезные действия перечислены ниже.

    Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase — команда для удаления устаревших и неиспользуемых версий компонентов каталога.



Теперь можно полюбоваться результатом, еще раз вызвав команду Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore и сравнив результат с первым анализом. Кстати, данная команда не поддерживается в Windows 7.

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


Планировщик задач

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

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

    Вызвать планировщик задач в меню «Выполнить» (Win+R) или в командной строке, используя команду taskschd.msc.



Преимущество метода в том, что пользователь может настроить автоматическую очистку папки WinSxS по расписанию и забыть о проблеме. Для этого нужно кликнуть правой клавишей мыши на задаче «StartComponentCleanup», выбрав пункт «Свойства», вкладку «Триггеры», а здесь настроить расписание процедуры.


Удаление неиспользуемых компонентов

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

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

    В командной строке, открытой от имени Администратора, прописываем следующее: DISM.exe /Online /English /Get-Features /Format:Table.


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


Наиболее популярными вариантами очистки директории являются первые два метода, о которых снято много видеороликов для YouTube.

Воспользовавшись предложенными в статье способами, можно уменьшить размер WinSxS. Результат зависит от выбранного способа и того, как часто пользователь выполняет очистку системы от мусора. Как правило, интерес к папке WinSxS возникает при необходимости освобождения места на системном диске. А том, как это сделать можно прочитать здесь.

Если ваш диск C переполнен или если ваша папка Windows в Windows 10/8/7 занимает слишком много места, то вы столкнетесь с нехваткой памяти. Давайте посмотрим, что можно удалить лишнее из папки Windows, чтобы освободить место на жестком диске.

1. Временная папка Windows

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

2. Файл гибернации

Файл гибернации используется Windows для поддержания текущего состояния ОС. Состояние сохраняется в файл - hiberfil.sys . Обычно это около 70-80% памяти вашего компьютера. Если на вашем компьютере находится от 6 до 8 ГБ памяти, то это от 4 до 6 ГБ дискового пространства, занимаемого этим файлом.

Чтобы удалить это, сначала включите опцию скрытых системных файлов, а затем найдите файл в папке Windows. Другой вариант - полностью отключить спящий режим, если он вам не нужен. Выполните команду powercfg.exe /hibernate off в командной строке, и она отключит ее.

3. Папка Windows.old

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

Занимает значительное количество места. Если вам это больше не нужно, вы можете удалить эту папку.

4. Загруженные программные файлы

Расположенная в C:\Windows\Downloaded Program Files , это папка, в которой хранятся Internet Explorer и все программы, использующие загруженные файлы, связанные с технологией ActiveX или Java. Эти технологии уже устарели, и вы можете удалить всё.

5. Папка Prefetch

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

Вы можете удалить содержимое папки Prefetch, но со временем она будет заполнена.

6. Шрифты

Шрифты в Windows 7/8/10 находятся в папке C:\Windows\Fonts . Windows содержит более 40 новых шрифтов.

Вы можете удалить ненужные шрифты, чтобы уменьшить размер папки шрифтов.

7. Папка SoftwareDistribution

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

Вы можете удалить содержимое папки SoftwareDistribution, но она будет заполнена после запуска "Центра обновления Windows".

Вы когда-нибудь задумывались, с помощью чего формируется список установленных обновлений Windows? А через какое API его достать? Ответы на эти и другие возникающие вопросы я постараюсь дать в своём небольшом исследовании.




Предыстория или с чего всё началось.

В нашей компании каждый год проходит конференция молодых специалистов, где каждый участник может решить проблему какого-либо отдела (список тем заранее предлагается).

Раньше на каждое «ТО» с помощью WSUS подтягивались все выпущенные обновления и распространялись на все машины. Также периодически выходили ТСБ (технические сервисные бюллетени), в которых указывалось, что требуется установить необходимые обновления в виде изолированных пакетов. В итоге у нас накапливаются обновления, которые в WSUS отследить нельзя, а можно было увидеть только через панель управления в разделе «Установленные обновления».

Наглядная схема обновления

Бывают ситуации, когда АРМ или сервер «падает» и приходится его восстанавливать из образа, созданного некоторое время назад. При восстановлении из образа есть вероятность того, что мы можем потерять нужные нам обновления (которые пришли в виде изолированных пакетов), которые устанавливались до падения машины. Объяснил максимально подробно насколько мог, потому что уточнения будут уже коммерческой тайной.

Как вы могли догадаться из названия статьи, уже на выборе метода получения списка у меня возникла непростая задача. Я, как обычно, решил поискать нужное в поисковике, задал вопросы на профильных ресурсах (раз, два, на английском stackoverflow почему-то не понравился мой вопрос и его пришлось удалить), но все ответы не давали нужного результата. Поэтому пришлось разбираться самому, о чем и пойдет речь далее.

Консольные команды

Начнем с простого и воспользуемся тем, что предлагает нам Windows без использования сторонних средств. Это можно сделать с помощью следующих команд:

  • wmic qfe list
  • systeminfo
  • dism /online /get-packages
  • через PowerShell:

  • Get-HotFix
  • Get-SilWindowsUpdate (доступно только в серверных редакциях)
  • Get-WmiObject -Class win32_quickfixengineering — через доступ к WMI классу win32_quickfixengineering (о WMI чуть позже)

Получить список через графический интерфейс можно через стандартный пункт Панели управления «Установка/удаление программ», но скопировать оттуда мы ничего не можем. Каждый инструмент панели управления представлен файлом .cpl в папке Windows\System. Файлы .cpl в системную папку Windows автоматически загружаются при запуске панели управления. За пункт Программы отвечает файл Appwiz.cpl. Его анализ ни к чему не привел.

Формально все методы получения списка обновлений можно разделить на две группы: локальные и сетевые.

Локальные и сетевые методы получения информации

Все методы проверялись на чистых образах систем (Windows 7, 8, Server 2012 R2) с интегрированными обновлениями, после каждого обновления через Центр обновления с официальных серверов Microsoft проводилась дополнительная проверка. Остановимся на каждом из них подробнее.


WUApi (Windows Update Agent API) — использование API агента обновления Windows. Самый явный вариант, название которого говорит само за себя. Использовать для этого будем библиотеку Wuapi.dll.
Примечание: далее для своего удобства все результаты я буду вставлять в List. Это, возможно, не рационально, но тогда мне это казалось хорошей идеей.

Есть и вторая вариация этого метода: Update Session — получение информации с помощью подключения к сессии обновления Windows Update Agent (в данном случае работаем не напрямую с библиотекой).

Microsoft подсказывает об удаленном использовании API.

Главный минусы этих двух методов — не позволяют найти исправления KB, которые не распространяются через Центр обновления Windows. Можно увидеть только то, что прошло через сам агент обновления, то есть данный вариант нас не устраивает.

Система обслуживания образов развертывания и управления ими (Deployment Image Servicing and Management) — это средство командной строки, которое может использоваться для обслуживания образа Windows или для подготовки образа среды предустановки Windows (Windows PE). Является заменой диспетчера пакетов (Pkgmgr.exe), PEimg и Intlcfg.

Данная утилита используется для интеграции обновлений, сервис паков в образ системы. Обновления Windows представляют собой отдельные модули, которые могут быть представлены в нескольких вариантах:

  • .cab-файлы (Cabinet) — архивы. Предназначены для распространения и установки при помощи модулей Центра обновлений Windows в автоматизированном режиме;
  • .msu-файлы (Microsoft Update Standalone Package) — исполняемые файлы. Предназначены для распространения и установки самими пользователями в ручном режиме через каталог обновлений Microsoft. Фактически представляют собой упакованный набор, состоящий из .cab-, .xml, .txt-файлов.

Количество обновлений совпадало с количеством из списка Панели управления до первого апдейта через центр управления — после него количество обновлений стало меньше (было 214, стало 209), хотя по логике они должны были увеличиться. Примеры вывода До обновления, После обновления.

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

Чуть позже я наткнулся на утилиту от китайцев DISM++, которая основана не на DISM API или DISM Core API, но имеющиеся в ней библиотеки не имеют нужных мне открытых методов, поэтому я забросил эту идею и продолжил поиски дальше.

Windows Server Update Services (WSUS) — сервер обновлений операционных систем и продуктов Microsoft. Сервер обновлений синхронизируется с сайтом Microsoft, скачивая обновления, которые могут быть распространены внутри корпоративной локальной сети. Опять же специальный инструмент, предназначенный для работы с обновлениями.

Распространяется только на серверных редакциях ОС Windows, поэтому был развернут следующий стенд:

  • основная система – Windows Server 2016;
  • а через систему виртуализации Hyper-V были развернуты две клиентские ОС:
    • Windows 8.1
    • Windows 7

    Чтобы не выделять раздел жесткого диска для новой системы я пользуюсь WinNTSetup и устанавливаю систему в VHD диски — загрузчик, начиная с Windows 7 (редакций Professional/Ultimate), прекрасно справляется с загрузкой с образа диска. Полученные таким образом диски можно спокойно использовать и в Hyper-V — убиваете сразу двоих зайцев. Не забудьте только сделать заранее копию хранилища BCD через команду bcdedit /export e:\bcd_backup.bcd.

    Настраивать AD для рассылки обновлений я не захотел, поэтому просто прописал в групповых политиках путь к WSUS серверу:

    Параметры настройки

    Обязательно уделите внимание на порт, я из-за опечатки (8350 вместо 8530) не мог получить обновления на клиентских машинах, хотя сделано было всё верно. Так же названия пунктов в групповых политиках на Windows 7 и Windows 8 различаются.

    Для получения отчета средствами WSUS необходимо дополнительно установить пакет — система уведомит вас об этом.

    Так как интернета нет, то ситуация с обновлениями выходит как на скриншоте ниже:


    Поведение похоже на WUApi — если обновления не прошли через них, то они не знают об этом. Поэтому данный метод снова не подходит.

    Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows.

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

    Данный метод позволяет получить данные как с локальной машины, так и удаленно в пределах локальной сети. Для обращения к объектам WMI используется специфический язык запросов WMI Query Language (WQL), который является одной из разновидностей SQL. Получать список мы будем через WMI класс win32_quickfixengineering.

    Количественно всё совпадает (даже после обновлений), поэтому было решено использовать этот метод. Для программного создания WMI запросов советую использовать следующую утилиту — WMI Delphi Code Creator. Благодаря ей я немного по другому взглянул на свой код и решил использовать заготовку из этой программы.

    Полученные данные методом WMI меня не остановили, и я решился на „поверхностный реверс-инжиниринг“. Воспользуемся утилитой Process Monitor из сборника программ Sysinternals Suite для выявления файлов и ветвей реестра, которые используются при вызове выше перечисленных консольных команд и обращению к пункту „Установленные обновления“ через Панель управления.

    Моё внимание привлек файл wuindex.xml, расположенный в папке C:\Windows\servicing\Packages\. Для его анализа была написана следующая программа:

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

    Вот мы подошли к тому, с чем связаны все эти методы. Продолжая анализ логов Process Monitor я выявил следующие папки и файлы.

    Файл DataStore.edb, расположенный в папке C:\Windows\SoftwareDistribution\DataStore. Это база данных, в которой содержится история всех обновлений установленной версии Windows, включая те обновления, которые только стоят в очереди.

    Для анализа файла DataStore.edb использовалась программа ESEDatabaseView. В БД существует таблица tbUpdates, содержимое которой трудно интерпретировать.

    Таблица tbUpdates в ESEDatabaseView

    После мое внимание привлек процесс TiWorker.exe, который вызывался каждый раз при открытии пункта в Панели управления. Он „ходил“ по многим папкам, одна из которых вывела меня на верный путь.

    C:\Windows\SoftwareDistribution — это папка, используемая службой обновления Windows для загрузки обновлений на компьютер с последующей их установкой, а также хранит сведения обо всех ранее установленных обновлениях.

    Папка WinSxS, расположенная по адресу C:\Windows\winsxs. Это служебная папка операционной системы Windows служащая для хранения ранее установленных версий системных компонентов. Благодаря ее наличию существует возможность отката к более старой версии обновления в случае необходимости.

    C:\Windows\servicing — основная составляющая всей системы, имя которой Component-Based Servicing (CBS).

    CBS — обслуживание на основе компонентов, составляющая Windows, интегрированная с службой Windows Update. В противоположность обслуживанию на основе файлов File-Based Servicing (FBS) (для ОС, предшествующих Windows Vista), в котором файлы обновлялись прямо в системных директориях, в CBS появилась целая иерархия директорий и целое семейство (стек) модулей/библиотек обслуживания.

    CbsApi.dll — основная библиотека поддержки технологии CBS. Не имеет открытых методов, поэтому напрямую использовать её я не смог. Microsoft использует TrustedInstaller.exe и TiWorker.exe для доступа к методам данной библиотеки и уже через эти процессы выводит нужные нам данные. ‪Записи ведутся в C:\Windows\Logs\CBS\CBS.log.

    Вывод

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

    В результате исследования была написана следующая программа, демонстрацию работы которой можно увидеть в данном видео:

    Читайте также: