Хранилище компонентов Windows, или Component Store (также известное как WinSxS — Windows Side-by-Side), является критически важной частью операционной системы. По сути, это центральное хранилище всех файлов, необходимых для работы Windows, включая системные библиотеки, драйверы, а также файлы, используемые для установки, настройки и обновления компонентов системы.
Его основная задача — управление различными версиями системных файлов и компонентов. Это позволяет программам работать, даже если они зависят от старых версий библиотек, при этом обеспечивая стабильность и безопасность всей ОС.
Если хранилище компонентов повреждается, Windows теряет возможность корректно устанавливать обновления, добавлять или удалять функции, и даже может столкнуться с проблемами при загрузке.
Почему возникает ошибка DISM /RestoreHealth?
Команда DISM (Deployment Image Servicing and Management) — это мощный инструмент командной строки, предназначенный для обслуживания и подготовки образов Windows, включая текущую установку. Ключевая функция /RestoreHealth используется для проверки целостности хранилища компонентов и автоматического устранения обнаруженных повреждений путем загрузки и замены поврежденных файлов.

Основные причины повреждения хранилища компонентов:
1. Внезапное выключение или сбой питания: Непредвиденные сбои во время работы или обновления системы могут привести к неполной записи данных и повреждению файлов WinSxS.
2. Некорректная установка обновлений: Сбой или прерывание процесса обновления Windows.
3. Проблемы с жестким диском: Секторы диска могут быть повреждены, что делает невозможным корректное чтение или запись файлов.
4. Вирусное или вредоносное ПО: Вредоносные программы могут целенаправленно изменять или удалять системные файлы.
Когда DISM обнаруживает повреждение, которое не может быть устранено, он выдает ошибку, часто с кодом 0x800f081f, указывающим на невозможность найти исходные файлы для восстановления.
Начальные шаги: Команда SFC и предварительная проверка
Прежде чем переходить к более сложным методам, всегда начинайте с проверки целостности основных системных файлов с помощью команды System File Checker (SFC).
Шаг 1: Запуск SFC /scannow
1. Запустите Командную строку или PowerShell от имени Администратора.

2. Введите команду:
sfc /scannow
3. Дождитесь завершения процесса. SFC попытается восстановить поврежденные или отсутствующие системные файлы, используя кэшированные копии.
4. Если SFC не обнаружит проблем или не сможет их исправить, переходите к следующему шагу.

Шаг 2: Использование DISM с проверкой и сканированием
После SFC запустите полную проверку и сканирование с помощью DISM.
1. Запустите Командную строку или PowerShell от имени Администратора.
2. Введите следующие команды поочередно:
DISM /Online /Cleanup-Image /CheckHealth
(Эта команда просто проверяет, было ли обнаружено повреждение.)

3. Затем:
DISM /Online /Cleanup-Image /ScanHealth
(Эта команда выполняет более глубокое сканирование хранилища компонентов.)
Если обе проверки указывают на наличие повреждений, можно приступать к команде /RestoreHealth.

Устранение ошибок DISM /RestoreHealth
Основной метод восстановления — это использование команды /RestoreHealth.
Метод 1: Восстановление с помощью DISM без указания источника
Это стандартный метод, при котором DISM пытается автоматически загрузить необходимые файлы восстановления с серверов Windows Update.
1. Убедитесь, что у вас есть стабильное подключение к интернету.
2. Запустите Командную строку или PowerShell от имени Администратора.
3. Введите команду:
DISM /Online /Cleanup-Image /RestoreHealth
Если процесс завершится успешно, вы увидите сообщение о том, что повреждения хранилища компонентов были исправлены. Перезагрузите систему.

Метод 2: Ручное исправление ошибки 0x800f081f с помощью установочного образа (Source)
Ошибка 0x800f081f часто возникает, когда DISM не может получить необходимые файлы с Windows Update (например, из-за настроек прокси, проблем с подключением или специфики корпоративной сети). В этом случае необходимо указать команде DISM альтернативный источник файлов, которым может служить смонтированный ISO-образ или установочный DVD-диск вашей версии Windows.
Подготовка источника:
1. Скачайте ISO-образ той же версии и редакции Windows, которая установлена на вашем ПК.
2. Смонтируйте ISO-образ. В большинстве версий Windows достаточно дважды кликнуть по файлу ISO, и он смонтируется как виртуальный диск (например, D:).

3. Внутри смонтированного диска найдите папку \sources и внутри нее файл install.wim (или install.esd).

Запуск DISM с указанием источника:
Вам нужно найти индекс, соответствующий вашей текущей версии Windows внутри файла install.wim.
1. Определите индекс вашей версии (например, Windows 10 Pro или Home) внутри файла install.wim, используя команду (предположим, ваш ISO смонтирован как D:):
DISM /Get-WimInfo /WimFile:D:\sources\install.wim

2. В выводе вы увидите список версий с их индексами (например, Index: 1 — Pro, Index: 2 — Home). Запомните нужный индекс.
3. Выполните команду /RestoreHealth, указав путь к install.wim и нужный индекс. В этом примере мы используем D:\sources\install.wim и Index: 1 (для версии Pro):
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:2 /LimitAccess
/Source:wim:D:\sources\install.wim:1 — указывает DISM использовать файл install.wim на диске D: и извлекать файлы из Index 1.
/LimitAccess — гарантирует, что DISM не будет пытаться загружать файлы из Интернета, а будет использовать только указанный локальный источник.

Работа с файлом install.esd:
Если вместо install.wim у вас файл install.esd, команда будет выглядеть аналогично, только с заменой wim на esd:
DISM /Online /Cleanup-Image /RestoreHealth /Source:esd:D:\sources\install.esd:1 /LimitAccess
После успешного выполнения команды перезагрузите компьютер и повторно запустите SFC /scannow для окончательной проверки.

Дополнительные методы устранения проблем
Если описанные выше методы не помогли, можно попробовать очистить хранилище компонентов.
Метод 3: Очистка хранилища компонентов
Если хранилище компонентов сильно разрослось или содержит множество устаревших компонентов, его очистка может помочь.
1. Запустите Командную строку или PowerShell от имени Администратора.
2. Введите команду:
DISM /Online /Cleanup-Image /StartComponentCleanup
Эта команда удалит старые версии компонентов, освободив место и, возможно, устранив конфликты, которые могли быть причиной ошибки.

Метод 4: Сброс компонентов Windows Update
Поскольку DISM часто взаимодействует с Windows Update для загрузки файлов, сброс его компонентов может решить проблемы, связанные с доступом к сети или повреждением кэша обновлений.
1. Остановите службы:
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
2. Переименуйте папки кэша:
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

3. Снова запустите службы:
net start wuauserv
net start cryptSvc
net start bits
net start msiserver

После этого попробуйте повторить стандартную команду DISM /RestoreHealth.

Проблемы с хранилищем компонентов Windows — это серьезные сбои, которые требуют своевременного внимания. Использование команд DISM и SFC является ключевым для поддержания здоровья вашей системы. Ошибка 0x800f081f чаще всего решается путем предоставления DISM доступа к локальному источнику (ISO-образ) вместо использования Windows Update.
Ключевые рекомендации для профилактики:
— Регулярно используйте SFC /scannow в профилактических целях.
— Убедитесь, что ваш компьютер защищен антивирусным ПО.
— Используйте Источники бесперебойного питания (ИБП) для защиты от внезапного отключения питания, что является частой причиной повреждения системных файлов.
— Всегда используйте ISO-образ той же версии и сборки, что и установленная ОС, для надежного восстановления.
Своевременное обслуживание хранилища компонентов гарантирует, что ваша операционная система сможет принимать и устанавливать обновления безопасности и исправления, сохраняя свою стабильность и производительность.