Траблшутинг WMI: Восстановление поврежденного репозитория WMI Repository
Архитектура репозитория WMI (CIM Repository)
Репозиторий WMI (Windows Management Instrumentation), расположенный в каталоге %windir%\System32\Wbem\Repository, хранит базу метаданных классов управления операционной системой. При его повреждении администраторы сталкиваются с симптомами: оснастка wmimgmt.msc выдает ошибку "Недопустимый класс" (Invalid Class / 0x80041010), "Сбой инициализации WMI" (0x80041003), системы мониторинга (Zabbix, SCCM, SCOM) не могут собрать метрики производительности, а оснастки Server Manager и Hyper-V Manager отказываются открываться.
Причины разрушения репозитория WMI:
- Аварийное выключение сервера во время записи данных в файлы
OBJECTS.DATAилиINDEX.BTR. - Конфликт антивирусного ПО, блокирующего доступ службы
winmgmtк базе данных WBEM. - Некорректно удаленные или сбойные сторонние MOF-провайдеры управления оборудованием (HP Insight, Dell OpenManage).
Пошаговое восстановление и пересборка репозитория WMI
Шаг 1: Проверка статуса целостности базы WMI
Запустите встроенную утилиту диагностики репозитория.
# Проверка состояния репозитория WMI
winmgmt /verifyrepositoryЕсли команда возвращает "Репозиторий WMI поврежден" (WMI repository is inconsistent), переходите к шагам восстановления.
Шаг 2: Согласованное восстановление (Salvage Repository)
Попытка восстановить структуры классов без потери зарегистрированных провайдеров.
# Выполнение согласованного восстановления репозитория
winmgmt /salvagerepositoryПерезапустите службу управления WMI: net stop winmgmt & net start winmgmt. Если проверка winmgmt /verifyrepository показывает, что репозиторий согласован (Consistent), проблема решена.
Шаг 3: Полная пересборка и сброс репозитория (Reset Repository)
Если метод Salvage не помог, выполните полный сброс репозитория к начальному заводскому состоянию.
# Полный сброс репозитория WMI к дефолтному состоянию
winmgmt /resetrepositoryШаг 4: Принудительная перекомпиляция MOF и MFL файлов
Если после сброса репозитория стандартные системные классы WMI отсутствуют, выполните их пакетную перекомпиляцию.
# Пакетная перекомпиляция всех системных классов WMI (Выполнить в CMD от имени Администратора)
cd /d %windir%\system32\wbem
for /f %s in ('dir /b *.mof *.mfl') do mofcomp %s
for /f %s in ('dir /b /s %windir%\system32\wbem\*.dll') do regsvr32 /s %s
net stop winmgmt
net start winmgmtТиповые ошибки администраторов
- Ручное удаление папки Repository без остановки службы: Попытка удалить файлы в папке
C:\Windows\System32\wbem\Repositoryпри запущенной службеwinmgmtприводит к зависанию дескрипторов ядра и падению зависимых служб ОС. Всегда останавливайте службу перед вмешательством.
Повреждение репозитория WMI блокирует работу гипервизоров, мониторинга и служб бэкапа. Доверьте обслуживание инфраструктуры ITSTM: восстановим компоненты WMI, оптимизируем реестр и устраним системные сбои.
Частые вопросы (FAQ)
Чем отличается winmgmt /salvagerepository от /resetrepository?
Ключ /salvagerepository пытается прочитать поврежденные данные и восстановить их, сохраняя кастомные классы стороннего софта. Ключ /resetrepository полностью удаляет старую базу и пересоздает чистый репозиторий.
Удаляются ли классы сторонних программ при winmgmt /resetrepository?
Да. После выполнения полного сброса (/resetrepository) может потребоваться переустановка сторонних агентов управления (например, мониторинга Dell OpenManage или HP Smart Array).
Как проверить работоспособность WMI после восстановления?
Выполните в PowerShell команду: Get-CimInstance -ClassName Win32_OperatingSystem. Если команда успешно возвращает данные о версии ОС, подсистема WMI функционирует нормально.
Какие системные службы зависят от службы WMI (winmgmt)?
От WMI напрямую зависят: Hyper-V Virtual Machine Management (vmms), IP Address Management (IPAM), Windows Firewall и большинство системных служб мониторинга.