Как исправить ошибку 0x81000203 в Windows 10

1 ответ 1

Я столкнулся с этой ситуацией на днях: мои студенты тестировали управление системными функциями и две машины в домене (на обеих – Windows 10) стали возвращать ошибки при работе с Windows Management Instrumentation. Основной админ ещё не вышел из отпуска, пришлось вспоминать, что я бывший руководитель Отдела ИТ 🙂

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

Теперь о причинах произошедшего: их может быть очень много. Забегая вперед, скажу что на одной машине это произошло из-за того, что на жестком диске закончилось место, а затем был сбой по питанию из-за сломанного ИБП (увы, никто не застрахован; сервера, конечно, защищены от подобного, а обычная рабочая машинка не была).

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

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

1 этап. Проверка работы сервиса.

Проверяем имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она. Вызываем Службы (в Windows 10 проще всего через Пуск/Средства администрирования/Службы, но я предпочитаю в любой версии Windows, кроме самых старых, напечатать в командной строке services.msc ), ищем Инструментарий управления Windows/Windows Management Instrumentation , проверяем, запущена ли она:

Если она не запущена, пытаемся запустить, выставим режим запуска в «Автоматически». Если запущена, пытаемся перезапустить (Остановить/запустить). После этого проверяем работоспособность WMI. Проще всего сделать это, выполнив любой WMI-запрос в powershell (напоминаю, что powershell в Windows 10 запускается через Пуск/Windows PowerShell/Windows Power Shell, но проще, на мой взгляд, запустить командную строку с админовскими правами, а в ней уже набрать powershell ), например, такой: (вы можете выполнить другой, свой любимый :))

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

Между делом скажу пару слов об официальной утилите Microsoft WMI Diagnosis. Все почему-то наперебой её рекомендуют, как хороший помощник при восстановлении. Увы, я убил достаточно много времени на анализ результатов действия этой утилиты: скрипт создал кучу лог-файлов, через которые продраться можно, если вы никуда не торопитесь, у вас есть куча времени и полкило пуэра/кофе-машина.

2 этап. Недеструктивное восстановление

Стоит попытаться вначале выполнить перерегистрацию библиотек и рекомпиляцию файлов расширения свойств объектов ( Managed Object Format, MOF ) и языковую составляющую этих файлов ( MFL ). Практически гарантированно сработает, если попытка WMI-запроса у вас вызывала ошибку вида “Ошибка в файле WMI.MOF” или любом другом MOF-файле. Для этого выполним следующие операции:

  1. Остановим службу WMI, обязательно запретив её автостарт
  2. Перерегистрируем все библиотеки в папке Windowssystem32wbem
  3. Перерегистрируем службы WMI и WMI Provider Host
  4. Запускаем службу WMI и разрешаем её автостарт
  5. Рекомпилируем MOF и MFL файлы

Можно собрать всё это в один BAT-файл и запустить:

Отмечу, что таким образом я восстановил работу WMI на первой машине. Со второй, увы не получилось. Если у вас не получается, пора переходить к 3му этапу

3 этап. Деструктивное восстановление

Фактически, на 3м этапе мы пересоздаем хранилище WMI, как таковое, которое находится в папке WindowsSystem32WbemRepository и является базой данных, в которой хранятся данные и определения стандартных WMI-классов и статическая информация дополнительных WMI-классов, если они создавались на вашей машине.

Перед операциями проверьте состояние жёсткого диска и файловой системы.

Проверяем целостность (На Windows XP и ниже не работает):

В случае ответа отличного от “База данных WMI согласована”, можно выполнить «мягкое восстановление» командой:

с последующим перезапуском службы:

Если мягкое восстановление не помогло, пробуем вернуть хранилище в начальное состояние (последствия: все дополнительные классы WMI, когда-либо зарегистрированные в вашей системе, скорее всего, придётся регистрировать заново):

с последующим рестартом системы. Отмечу, что вторая машина заработала после этого этапа. Последствия были не сильно удручающими, но серьёзными: пришлось переинсталлировать Visual Studio и Delphi Starter, MS Office отказался работать и его пришлось деинсталлировать вручную, удаляя папки, файлы и записи из реестра, с последующей повторной установкой. Также слетели все наши собственные классы WMI.

:/>  Вакансии компании Центр молекулярной диагностики CMD (ООО Эко-Маркет) - работа в Москве, Подольске (Московская область), Климовске (Московская область)

Но, если и это не помогло, придётся удалять и создавать хранилище заново. Это можно сделать следующим BAT-файлом:

Перегружаем компьютер. Если и после этих действий WMI не заработала, путь один – переустановка системы.

Rebuilding the wmi repository

If the method described above has not helped, use more “hard” way of the WMI recovery that implies the recreation of the WMI repository.

The WMI repository is located in %windir%System32WbemRepository and is a database that contains information on the metadata and definitions of the WMI classes. In some cases the WMI repository can also contain static class information. When the repository is damaged, errors occur in the activity of WMI service (Winmgmt).

If you suspect that the WMI repository is damaged, keep in mind that it only should be recreated if no other means to restore WMI are effective.

The following command will reset the WMI database to its original state (as after a clean Windows install). Use this command to hard reset the WMI repository if the salvagerepository parameter didn’t fix the problem:

Winmgmt /resetrepository

Tip. In practice, there are cases, when the rebuilding of WMI repository causes problems with the third-party software. The reason is that all records in the WMI database are cleared (to the state of a clean system). Such software may have to reinstall in recovery mode.

Repairing the wmi repository and recompiling mof files

On Windows 10/Windows Server 2022, you can check the integrity of the WMI repository using the command:

winmgmt /verifyrepository

If the command returns that the WMI database is in an inconsistent state (INCONSISTENT or WMI repository verification failed), you should try doing a soft fix of WMI repository errors:

Winmgmt /salvagerepository

WMI repository has been salvaged.

This command checks the consistency of the WMI repository and rebuilds the WMI database if inconsistencies are found.

Restart the WMI service:

net stop Winmgmtnet start Winmgmt

If the standard WMI fix doesn’t work, try the following script. This script is a “soft” option for recovering the WMI service on the computer (the DLL libraries and WMI are re-registered and MOF files are recompiled). This procedure is safe and its implementation should not cause any more problems with the operating system:

sc config winmgmt start= disablednet stop winmgmtcd %windir%system32wbemfor /f %s in (‘dir /b *.dll’) do regsvr32 /s %swmiprvse /regserversc config winmgmt start= autonet start winmgmtfor /f %s in (‘dir /b *.mof’) do mofcomp %sfor /f %s in (‘dir /b *.mfl’) do mofcomp %s

Troubleshooting wmi problems

The first step is to check the Windows Management Instrumentation (Winmgmt) service is installed on Windows and running. You can check the status of the service in the services.msc console or using PowerShell:

Get-Service Winmgmt | Select DisplayName,Status,ServiceName

If the Winmgmt service is running, you can test the health of WMI by quering it with a simple WMI command. You can execute wmi request from command prompt or from PowerShell. For example, the following command will list the programs installed on Windows:

wmic product get name,version

The simplest PowerShell command to get information about the version and build of Windows 10 via WMI might look like this:

get-wmiobject Win32_OperatingSystem

As you can see, the WMI service responded to the request correctly. If Windows returns an error when executing such a WMI query, most likely the WMI service is not working correctly, the WMI repository is damaged, or there are other problems.

Wmi: исправление ошибок, восстановление репозитория в windows

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

О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:

  • Ошибки обработки WMI запросов в системных журналах и логах приложений ( 0x80041002 — WBEM_E_NOT_FOUND , WMI: Not Found , 0x80041010 WBEM_E_INVALID_CLASS );
  • Ошибки обработки GPO, связанные на WMI ( некорректная работа wmi фильтров групповых политик, и пр.);
  • WMI запросы выполняются очень медленно;
  • Ошибки при установке или работе агентов SCCM/SCOM;
  • Ошибки в работе скриптов (vbs или PowerShell), использующих пространство имен WMI (скрипты с Get-WmiObject и т.д.).
:/>  Автозагрузка программ в Windows 10: где находится и как отключить

Архивирование и восстановление хранилища wmi – windows – компьютерное железо

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

– Не устанавливается SCCM или SCOM агент.
– Не работает стороннее ПО.
– Ошибки в системных журналах связанные с источником WMI.
– При запуске собственного скрипта и пр

Всегда нужно иметь бекап WMI.

Чтобы выполнить архивирование или восстановление хранилища WMI:

1. Откройте консоль элемента управления WMI: в меню Пуск выберите пункт Выполнить, введите команду

2. wmimgmt.msc и нажмите кнопку ОК.

3. В дереве консоли щелкните правой кнопкой Управляющий элемент WMI и выберите Свойства.

4. Перейдите на вкладку Архивация или восстановление.

5.Нажмите кнопку Архивировать или Восстановить.

Дополнительная информация

Для выполнения этой процедуры необходимо быть членом группы «Администраторы» на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы «Администраторы домена». По соображениям безопасности для выполнения этой процедуры рекомендуется использовать команду Запуск от имени.

Чтобы сохранить файл архива в папке %Windir%System32WbemRepository, необходимо иметь права Администратора локального компьютера. В противном случае файл можно сохранить в папке «Документы» для профиля учетной записи.

При выборе команды Архивировать для архивирования хранилища вручную резервную копию можно сохранить в файл с определенным именем, а впоследствии восстановить базу данных с помощью этого сохраненного файла. Данный подход удобен, если необходимо сохранить определенную конфигурацию классов. Можно также запустить из командной строки команду Winmgmt и восстановить базу данных из сохраненного файла. Для получения дополнительных сведений об использовании команды Winmgmt в меню Пуск выберите пункт Выполнить и введите winmgmt /?

Восстановление поврежденного WMI.

В большинстве случаев ”
Восстановление WMI
”, выполняется:
Остановка службы и удаление папки C:WindowsSystem32WbemRepository
Если первый метод не помог то приходится прибегнуть к утилите WMIDIAG.

1. Восстановление wmi:

Вводим команду
rundll32 wbemupgd, UpgradeRepository

и проверяем результат в файле журнала %windir%/system32/wbem/logs/setup.log

Rundll32 wbemupgd, CheckWMISetup
Rundll32 wbemupgd, RepairWMISetup

2. Регистрация компонент:

cd /d %windir%/system32/wbem
for %i in (*.dll) do RegSvr32 -s %i
for %i in (*.exe) do %i /RegServer

4. Синхронизация WMI-счетчиков производительности:

winmgmt /clearadap
winmgmt /resyncperf

5. Перекомпиляция mof-файлов:

cd /d %windir%/system32/wbem
for /r %i in (*.mof *.mfl) do mofcomp %i

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

Копируем представленный ниже скрипт и запускаем его на удаленном ПК.

@echo off
cd /d %windir%/system32/wbem
net stop winmgmt /y
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
winmgmt /resyncperf
if exist Rep_bak rd Rep_bak /s /q
rename Repository Rep_bak
for %i in (*.dll) do RegSvr32 -s %i
for %i in (*.mof,*.mfl) do Mofcomp %i
net start winmgmt

Более “жестокий вариант”.

%windir%system32wbemwinmgmt /clearadap
%windir%system32wbemwinmgmt /kill
%windir%system32wbemwinmgmt /unregserver
%windir%system32wbemwinmgmt /reserver
%windir%system32wbemwinmgmt /resyncperf
net stop winmgmt /y
if exist %windir%system32wbemrepository.old rmdir /s /q
%windir%system32wbemrepository.old
rename %windir%system32wbemrepository
%windir%system32wbemrepository.old
regsvr32 /s %systemroot%system32scecli.dll
regsvr32 /s %systemroot%system32userenv.dll
mofcomp %windir%system32wbemcimwin32.mof
mofcomp %windir%system32wbemcimwin32.mfl
mofcomp %windir%system32wbemrsop.mof
mofcomp %windir%system32wbemrsop.mfl
for /f %s in (‘dir /b /s %windir%system32wbem*.dll’) do regsvr32 /s %s
for /f %s in (‘dir /b /s %windir%system32wbem*.mof’) do mofcomp %s
for /f %s in (‘dir /b %windir%system32wbem*.mfl’) do mofcomp %s
net start winmgmt
%windir%system32wbemwmiprvse /regserver

Вариант 1: проверка работы служб

Одной из распространенных причин ошибки восстановления с кодом 0x81000203 является остановка или некорректная работа системных служб, отвечающих за функцию восстановления.

  1. Откройте оснастку управления службами, для чего в диалоговом окошке, вызываемом клавишами Win R, выполните команду services.msc.
  2. Как исправить ошибку 0x81000203 в Windows 10-1

  3. Отыщите в списке службы «Программный поставщик теневого копирования», «Теневое копирование тома», «Планировщик заданий» и посмотрите их статус.
  4. Как исправить ошибку 0x81000203 в Windows 10-2

  5. Если какая-то служба остановлена, откройте ее свойства, тип запуска выставьте «Автоматически» и запустите.
  6. Как исправить ошибку 0x81000203 в Windows 10-3

  7. Если служба уже запущена, перезапустите ее из контекстного меню.
  8. Как исправить ошибку 0x81000203 в Windows 10-4

Вариант 2: удаление сторонних оптимизаторов

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

Вариант 3: проверка политик в редакторе gpo

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

  1. Откройте нажатием Win R диалоговое окошко быстрого выполнения команд, введите в него команду gpedit.msc и нажмите клавишу ввода.
  2. Как исправить ошибку 0x81000203 в Windows 10-5

  3. В левой панели оснастки «Редактор локальных групповых политик» разверните ветку «Конфигурация компьютера»«Административные шаблоны»«Система»«Восстановление системы».
  4. В правой колонке найдите политику «Отключить восстановление системы» и убедитесь, что она имеет статус «Не задана» или «Отключена».
  5. Как исправить ошибку 0x81000203 в Windows 10-6

  6. Если политика активна, отключите ее и перезагрузите компьютер.
  7. Как исправить ошибку 0x81000203 в Windows 10-7

Вариант 4: правка реестра

По сути, данный способ дублирует предыдущее решение, поэтому смысл прибегать к нему есть только в том случае, если вы работаете в домашней редакции Windows, в которой редактор групповых политик отсутствует.

  1. Клавишами Win R вызовите окно «Выполнить», впишите команду regedit и нажмите Enter.
  2. Как исправить ошибку 0x81000203 в Windows 10-8

  3. Раскройте в запущенном приложении «Редактор реестра» ветку (или вставьте ее в адресную строку) HKLMSOFTWAREPoliciesMicrosoftWindows NTSystemRestore.
  4. В центральной части окна найдите параметры «DisableSR» и «DisableConfig» и измените их значение на 0, для чего дважды кликните по каждому из редактируемых параметров и введите в открывшемся диалоговом окошке указанное значение.
  5. Как исправить ошибку 0x81000203 в Windows 10-9

  6. Перезагрузите компьютер.

Вариант 5: сброс репозитория wmi

Нельзя также исключать, что ошибка 0x81000203 вызвана повреждением метаданных системного компонента «Инструментарий управления Windows», или сокращенно «WMI», отвечающего за работу разных функций операционной системы, в том числе функции восстановления. В этом случае поможет его пересоздание.

  1. Загрузите компьютер в «Безопасном режиме».

    Подробнее: Запуск Windows 10 в «Безопасном режиме»

  2. Откройте «Командную строку» от имени администратора и выполните в ней команду остановки службы инструментария net stop winmgmt.
  3. Как исправить ошибку 0x81000203 в Windows 10-10

  4. Перейдите в «Проводнике» в расположение C:WindowsSystem32wbem. Найдите в каталоге «wbem» папку «repository» и переименуйте ее в «repository.bak».
  5. Как исправить ошибку 0x81000203 в Windows 10-11

  6. Перезагрузите компьютер, откройте с правами администратора «Командную строку» и выполните последовательно команды net stop winmgmt и winmgmt /resetRepository.
  7. Как исправить ошибку 0x81000203 в Windows 10-12

  8. Перезагрузите компьютер еще раз и проверьте, исчезла ли ошибка 0x81000203.

Вариант 6: восстановление windows

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

Восстановление работы windows management instrumentation (wmi) после фатального сбоя

На компьютере под управлением Windows 10 перестала работать WMI . Никакие скрипты, раньше нормально работавшие, теперь не функционируют. Диапазон возвращаемых ошибок достаточно велик: 0x80041XXX, 0x800420XX, 0x700310XX (“Инициализация класса WMI невозможна”, “Вызов WMI запрещен”, “WMI вернул некорректный ответ”, «Ошибка в файле WMI.MOF» и так далее).

Возможно ли это исправить? Почему это произошло? Если нет, то можно ли работать без функционирующего WMI ?

Диагностика проблем с wmi

В первую очередь нужно проверить служба Windows Management Instrumentation (Winmgmt) установлена в Windows и запущена. Вы можете проверить состояние службы в консоли services.msc или с помощью PowerShell:

Get-Service Winmgmt | Select DisplayName,Status,ServiceName

Если служба Winmgmt запущена, вы можете проверить работоспособность WMI, обратившись к ней с помощью простого WMI-запроса. Вы можете выполнить wmi запрос из командной строки или из PowerShell. Например, следующая команда выведет список установленных в Windows программ:

wmic product get name,version

Простейшая PowerShell команда для получения информации о версии и билда Windows 10 через WMI может выглядеть так:

Как вы видите, служба WMI ответила на запрос корректно. Если при выполнении такого WMI-запроса Windows возвращает ошибку, скорее всего сервиса WMI работает некорректно, поврежден WMI репозиторий или есть какие-то другие проблемы.

В моем случае, например, при открытии свойств WMI Control в консоли управления компьютером (compmgmt.msc) появлялась надпись:

Сброс и пересоздание wmi репозитория (хранилища)

Если вам не помогли мягкие способ восстановления WMI, рассмотренные выше, придется перейти к более “жесткому” способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилищаWMI.

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

Следующая команда выполнит сброс базы данных WMI к исходному состоянию (как после чистой установки Windows). Используйте эту команду для выполнения hard reset репозитория WMI, если параметре salvagerepository не исправил проблему:

Если обе команды ( Winmgmt /salvagerepository и Winmgmt /resetrepository ) не восстановили консистентное состояние базы WMI, попробуйте выполнить “жесткое” пересоздание базы WMI вручную таким скриптом:

Оставьте комментарий