В приложении wmi произошла ошибка

Любой бывалый 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 и т.д.).

Содержание:

  • Диагностика проблем с WMI
  • Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов
  • Сброс и пересоздание WMI репозитория (хранилища)

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

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

Get-Service Winmgmt | Select DisplayName,Status,ServiceName

служба Windows Management Instrumentation (Winmgmt) работает

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

wmic product get name,version

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

get-wmiobject Win32_OperatingSystem

powershell проверка работы wmi командой get-wmiobject

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

ошибка Failed to initialize all required WMI classes

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

Failed to initialize all required WMI classes
Win32_Processor. WMI: Invalid namespace
Win32_WMISetting. WMI: Invalid namespace
Win32_OperationSystem. WMI: Invalid namespace

Ранее для диагностики WMI существовала официальная утилита от Microsoft – WMIDiag.vbs (Microsoft WMI Diagnosis). WMIdiag это vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.2 и включает в себя следующие типы фалов:

  • .log файлы содержат подробный отчет об активности и работе утилиты WMIDiag;
  • .txt файлы содержат итоговые отчеты о найденных ошибках, на которые стоит обратить внимание;
  • В .csv файлах содержится информация, нужная для долгосрочного анализа работы подсистемы WMI.

скрипт для исправления ошибок WMI WMIDiag.vbs

Совет. В 64 битных версиях Windows wmidiag нужно запускать так:

c:windowsSystem32cscript.exe wmidiag.vbs

в противном случае появится ошибка:

WMIDiag must be run from native 64-bit environment. It is not supported in Wow64.

WMIDiag It is not supported in Wow64

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

К сожалению, последняя версия WMIDiag 2.2 корректно работает только с версиями до Windows 8.1/Windows Server 2012 R2. На данный момент Microsoft даже удалила ссылку на загрузку WMIDiag из Download Center. Но при желании, этот скрипт можно найти в сети.

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

Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов

В Windows 10/Windows Server 2016 вы можете проверить целостность репозитория WMI с помощью команды:

winmgmt /verifyrepository

winmgmt-verifyrepository - проверка состояния репозитория wmi

Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT или WMI repository verification failed), стоит попробовать выполнить “мягкое” исправление ошибок репозитория:

Winmgmt /salvagerepository

WMI repository has been salvaged.

Данная команда выполняет проверку согласованности хранилища WMI и при обнаружении несогласованности перестраивает базу данных WMI.

Перезапустите службу WMI:

net stop Winmgmt
net start Winmgmt

Если стандартный способ исправления ошибок в WMI не помог, попробуйте следующий скрипт. Данный скрипт представляет собой ”мягкий” вариант восстановления службы WMI на компьютере (выполняется перерегистрация dll библиотек и службы WMI, перекомпилируются mof файлы). Данная процедура является безопасной и ее выполнение не должно привести к каким-либо новым проблемам с системой.

sc config winmgmt start= disabled
net stop winmgmt
cd %windir%system32wbem
for /f %s in ('dir /b *.dll') do regsvr32 /s %s
wmiprvse /regserver
sc config winmgmt start= auto
net start winmgmt
for /f %s in ('dir /b *.mof') do mofcomp %s
for /f %s in ('dir /b *.mfl') do mofcomp %s

На 64 битной версии Windows эти действия нужно также выполнить для каталога SysWOW64. Замените третью строку на

cd %windir%SysWOW64wbem

bat скрипт для перерегистрации компонентов wmi

Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле wmi_soft_repair.bat и запустить его с правами администратора. После окончания работы скрипта, перезагрузите Windows и проверьте работу WMI.

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

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

WMI репозиторий (хранилище) находится в каталоге
%windir%System32WbemRepository
и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов. В некоторых случаях WMI репозиторий может содержать статическую информацию классов. При повреждении репозитория WMI, в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.

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

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

Winmgmt /resetrepository

Совет. На практике бывают случаи, когда пересоздание хранилища WMI приводит к проблемам со сторонним софтом. Это связано с тем, что все записи в базе WMI обнуляются (до состояния чистой системы). Такие программы скорее всего, придется переустанавливать в режиме восстановления.

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

sc config winmgmt start= disabled
net stop winmgmt
cd %windir%system32wbem
winmgmt /resetrepository
winmgmt /resyncperf
if exist Repos_bakup rd Repos_bakup /s /q
rename Repository Repos_bakup
regsvr32 /s %systemroot%system32scecli.dll
regsvr32 /s %systemroot%system32userenv.dll
for /f %s in ('dir /b *.dll') do regsvr32 /s %s
for /f %s in ('dir /b *.mof') do mofcomp %s
for /f %s in ('dir /b *.mfl') do mofcomp %s
sc config winmgmt start= auto
net start winmgmt
wmiprvse /regserver

сброс и восстановление хранилища wmi в windows 10

На 64 битной версии Windows нужно также перерегистрировать dll/exe и перекомпилировать mof файлы в каталоге %windir%sysWOW64wbem.

Данный скрипт полностью пересоздает хранилище WMI (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.

Проверьте состояние WMI репозитория. Если ошибки исправлены, команда
winmgmt /verifyrepository
должна вернуть:

WMI repository is consistent

WMI repository is consistent

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

description ms.assetid ms.tgt_platform title ms.topic ms.date

When accessing WMI local or remote data in an application or script, you may encounter errors ranging from missing classes to access denied. Providers also have debugging options and troubleshooting classes available.

b0aecdf6-ec30-49be-af4e-7eac5d124057

multiple

WMI Troubleshooting

article

05/31/2018

When accessing WMI local or remote data in an application or script, you may encounter errors ranging from missing classes to access denied. Providers also have debugging options and troubleshooting classes available.

[!Note]
The following documentation is targeted for developers and IT administrators. If you are an end-user that has experienced an error message concerning WMI, you should go to Microsoft Support and search for the error code you see on the error message. For more information about troubleshooting problems with WMI scripts and the WMI service, see WMI Isn’t Working!

WMI Diagnosis Utility

The WMI diagnosis Utility (WMIDiag.exe) is no longer supported starting with Windows 8 and Windows Server 2012.

**Windows 7, Windows Server 2008 R2, Windows Vista and Windows Server 2008: **

If WMI returns error messages, be aware that they may not indicate problems in the WMI service or in WMI providers. Failures can originate in other parts of the operating system and emerge as errors through WMI. Under any circumstances, do not delete the WMI repository as a first action because deleting the repository can cause damage to the system or to installed applications.

To obtain more information about the source of the problem, you can download and run the WMI Diagnosis Utility diagnostic command line tool. This tool produces a report that can usually isolate the source of the problem and provide instructions on how to fix it. The report also aids Microsoft support services in assisting you. You can download the WMI Diagnosis Utility at the Download Center.

Provider writers may also encounter debugging issues unless you are writing a decoupled provider. For more information, see Debugging Providers.

Logging and Tracing

The WMI log files no longer exist; they were replaced by Event Tracing for Windows (ETW). For more information, see Tracing WMI Activity, Logging WMI Activity, and WMI Log Files.

Troubleshooting in Scripts and Applications

WMI contains a set of classes for troubleshooting client applications that use WMI providers. For more information, see Troubleshooting WMI Client Applications.

How Provider Writers Can Prevent WMI Problems

Provider writers can prevent many problems, which appear in error messages through WMI, by performing the following actions:

  • Registering your provider correctly. For more information, see Registering a Provider.
  • Adding the #pragma autorecover statement to the Managed Object Format (MOF) file that defines your provider classes.

For more information, see Debugging Providers, Providing Data to WMI, and Provider Configuration and Troubleshooting Classes.

Access Denied

Access Denied errors that are reported by scripts and applications that access WMI namespaces and data generally fall into three categories. The following table lists the three categories of errors along with issues that might cause the errors and possible solutions.

Error Possible Issues Solution
0x800706BA HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE)
Firewall issue or server not available.
The computer really doesn’t exist or the Windows Firewall is blocking the connection Connecting to Vista: netsh advfirewall firewall set rule group=»windows management instrumentation (wmi)» new enable=yes Connecting to downlevel: Allow the «Remote Administration» rule in Windows Firewall.
0x80070005 E_ACCESS_DENIED
Access denied by DCOM security.
The user does not have remote access to the computer through DCOM. Typically, DCOM errors occur when connecting to a remote computer with a different operating system version. Give the user Remote Launch and Remote Activation permissions in dcomcnfg. Right-click My Computer-> Properties. Under COM Security, click «Edit Limits» for both sections. Give the user you want remote access, remote launch, and remote activation. Then go to DCOM Config, find «Windows Management Instrumentation», and give the user you want Remote Launch and Remote Activation. For more information, see Connecting Between Different Operating Systems
0x80041003 WBEM_E_ACCESS_DENIED
Access denied by a provider
The user does not have permission to perform the operation in WMI. This could happen when you query certain classes as a low-rights user, but most often happens when you attempt to invoke methods or change WMI instances as a low rights user. The namespace you are connecting to is encrypted, and the user is attempting to connect with an unencrypted connection Give the user access with the WMI Control (make sure they have Remote_Access set to true) Connect using a client that supports encryption.
  • Typically, DCOM errors occur when connecting to a remote computer with a different operating system version.

  • Providers may also deny access to data in specific namespaces or may require certain levels of connection security. For more information, see Setting Client Application Process Security and Provider Hosting and Security.

  • Access denied errors from Internet Connection Firewall (ICF) changes.

    For more information, see Connecting Through Windows Firewall.

  • An access denied error is returned by DCOM security when a low-integrity client tries to access WMI. For example, an ActiveX control that is running in Internet Explorer, which has the security level set to low, does not have access to perform local WMI operations.

    Windows 7: Low-integrity users have read-only permissions for local WMI operations.

Information on Errors

When you get an error message from WMI, you can locate the message in WMI Error Constants or, for scripting, WbemErrorEnum. However, the information supplied by the error alone is typically insufficient to determine what is happening. WMI repository corruption may masquerade as classes or instances «not found».

For more information about WMI errors:

  • The WMI logs track events from within the WMI core and from providers. For more information, see Logging WMI Activity.
  • Use the WMI Troubleshooting Classes to check WMI internal status or receive notifications of provider or WMI service events. For more information, see Provider Configuration and Troubleshooting Classes and Troubleshooting WMI Client Applications.

Related topics

WMI Troubleshooting

Tracing WMI Activity

Logging WMI Activity

Ошибка WMI код 10 встречается в операционной системе Windows 7 на всех компьютерах после установки операционной системы и сервис пака с привода DVD или с загрузочной флэшки на которой был установочный образ системы.

Что бы посмотреть наличие ошибки WMI с кодом 10 щелкните правой клавишей мышки (далее ПКМ) на «Мой компьютер» в выпадающем меню нажмите левой кнопкой мыши (далее ЛКМ) на «Управление».

вход в управление компьютером

вход в управление компьютером

В открывшемся окне «Управление компьютером (локальным)» нажмите на «Просмотр событий» затем «Журналы Windows» и «Приложения», нашли эту ошибку, тогда читаем дальше как устранить ошибку .

Ошибка WMI код 10

Ошибка WMI код 10

1. Отключаем контроль учетных записей.

2. Перезагружаем компьютер в безопасный режим. Для этого на начальном экране загрузки загрузки компьютера (как только у вас на мониторе появились белые буквы на черном фоне или цветная эмблема материнской платы) жмите клавишу F8, нажимать можно несколько раз ничего не испортите.

Начальный экран загрузки компьютера

Начальный экран загрузки компьютера

3. Должны увидеть варианты загрузки, выбираете «Безопасный режим» и нажимаете «Enter» на клавиатуре.

Выбор загрузки безопасного режима

Выбор загрузки безопасного режима

4. После загрузки в безопасном режиме щелкните ПКМ на «Мой компьютер» в выпадающем меню нажмите ЛКМ на «Управление».

вход в управление компьютером

вход в управление компьютером

В открывшемся окне «Управление компьютером (локальным)» нажмите на «Службы и приложения» а после на «Службы».

5. Находим службу Инструментарий управления Windows (Windows Management Instrumentation), останавливаем её кнопкой «Остановить» после этого окно «Управление компьютером» можно закрыть.

остановка системной службы winmgm

остановка службы winmgmt

6.Открываем папку, вот её местонахождение c:windowssystem32wbemrepository. В этой папке видим файлы:

INDEX.BTR
MAPPING1.MAP
MAPPING2.MAP
MAPPING3.MAP
OBJECTS.DATA>

На всякий случай скопируйте файлы в папку где бы Вы могли их потом найти. А затем удалите эти файлы из папки /repository.

7. Произведите перезагрузку компьютера «Пуск» далее «Перезагрузка».

8. При первоначальной загрузке компьютера возможно торможение, некоторое замедление в работе. Ничего страшного — после двух перезагрузок компьютер станет работать нормально.

9. Вторая загрузка должна пройти быстрее. Проверяем журнал Windows, как во втором абзаце,  больше никаких ошибок WMI код 10 у Вас не должно появляться!

10. Включаем контроль учетных записей обратно.

В Майкрософт про ошибку WMI c кодом 10 говорят, что она не критичная и на работоспособность никак не влияет. Но кому понравиться если Ваш компьютер будет «ругаться» на какие-то там ошибки, к тому же если решение довольно простое.

Надеюсь кому-нибудь пригодиться эта шпаргалка которая Вам поможет победить ошибку WMI код 10.

Не раз я сталкивался, что перестают у пользователя запускаться службы (хотя он является локальным админом), ну или например перестает работать SMS агент (Перестает обмениваться с SCCM).

Я очень долго пытался с этим разобраться и наконец разобрался grin.

Проблема кроется в злостном WMI. Давайте для начала попробуем разобраться что же это такое и с чем его есть? Всеми любимая, а также очень умная девочка Вика Wikipedia сообщает:

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

Опа. За нами следит большой брат wink.

Самое простое что можно сделать это пересобрать WMI как правило это решает большую часть проблем.

Для Выполнения этих задач нам потребуется запустить командную строку от администратора (Пуск выполнить CMD) или пользователя который будет состоять в группе Локальных администраторов и выполнить следующее:

REM Переходим в каталог

cd /d %windir%system32wbem

REM Перерегистрируем компоненты

for %i in (*.dll) do RegSvr32 -s %i

for %i in (*.exe) do %i /RegServer

По идее этого должно быть достаточно но лишнем не будет выполнить и следующее:

REM Синхронизация WMI Счетчиков

winmgmt /clearadap

winmgmt /resyncperf

Ну и напоследок перекомпиляция mof файлов

cd /d %windir%system32wbem

for /r %i in (*.mof *.mfl) do mofcomp %i

При устранении неисправностей следуйте простому правилу: сначала пробуйте решить проблему менее «жестким» способом (перерегистрацией библиотек и перекомпиляцией mof-файлов) и только если ничего не помогает – перестройкой (удалением и созданием заново) репозитория.

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

Так же следует помнить, что не все приложения хранят свои библиотеки и .mof-файлы в %systemroot%system32wbem. Соответственно вам нужно будет их найти перед тем как зарегистрировать библиотеки заново или перекомпилировать mof.

Собрались на рыбалку? вот Вам отличная донная снасть спешите!

Понравилась статья? Поделить с друзьями:
  • В приложении гугл произошла ошибка xiaomi что
  • В приложении google services framework произошла ошибка как исправить
  • В приложении гугл произошла ошибка xiaomi постоянно выскакивает
  • В приложении com google android apps plus произошла ошибка
  • В приложении гугл плей снова произошла ошибка что делать