Любой бывалый 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
Если служба Winmgmt запущена, вы можете проверить работоспособность WMI, обратившись к ней с помощью простого WMI-запроса. Вы можете выполнить wmi запрос из командной строки или из PowerShell. Например, следующая команда выведет список установленных в Windows программ:
wmic product get name,version
Простейшая PowerShell команда для получения информации о версии и билда Windows 10 через WMI может выглядеть так:
get-wmiobject Win32_OperatingSystem
Как вы видите, служба WMI ответила на запрос корректно. Если при выполнении такого WMI-запроса Windows возвращает ошибку, скорее всего сервиса WMI работает некорректно, поврежден WMI репозиторий или есть какие-то другие проблемы.
В моем случае, например, при открытии свойств 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.
Совет. В 64 битных версиях Windows wmidiag нужно запускать так:
c:windowsSystem32cscript.exe wmidiag.vbs
в противном случае появится ошибка:
WMIDiag must be run from native 64-bit environment. 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
Если команда возвращает, что база данных 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_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
На 64 битной версии Windows нужно также перерегистрировать dll/exe и перекомпилировать mof файлы в каталоге %windir%sysWOW64wbem.
Данный скрипт полностью пересоздает хранилище WMI (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.
Проверьте состояние WMI репозитория. Если ошибки исправлены, команда
winmgmt /verifyrepository
должна вернуть:
WMI repository is consistent
В этой статье мы собрали основные способы, позволяющие продиагностировать и устранить неполадки службы и репозитория WMI.
WMI is a comprehensive and versatile system for monitoring nearly all aspects of a Windows computer. However, as it is very complex
and based on a complex communications protocol (DCOM) it tends to be more error-prone than everyone would like it to be. Here is what
you can do if you keep getting errors that indicate problems with the WMI system itself.
IMPORTANT
As WMI is primarily a Windows function set, the problems described here should be solved by Microsoft — however,
we know how frustrating a search for solutions for WMI problems can be so we offer you these suggestions here. Although these procedures
are tested and used successfully in many cases, we by no means take any responsibility for their outcome and/or negative side effects.
The WMIdiag option
A very good start to approaching WMI problems is the use of Microsoft’s very own diagnosis tool, WMIDiag,
of course. You can find it in
Microsoft’s download center (or search Microsoft’s website for “WMIDiag”, should the download ID
have been altered in the meantime).
The re-enable performance counters option
Apparently, performance counters can be disabled via the Windows registry. Should this happen after a
Windows Update or the installation of some software package, search in the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices branch
for «Disable Performance Counters». If you find one or more entries set to “1”, set them to “0”.
One case where this has helped is the WMI Process sensor, where setting this key in the
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPerfProcPerformance branch brought red sensors back online.
NOTE: Working with the registry is for advanced users only. See
No Perf Counters for details.
The refresh performance counters option
This will probably fix many problems concerning performance data and is much less intrusive than almost
every other suggested method.
Full details about the WMIADAP command here:
https://msdn.microsoft.com/en-us/library/aa394528(VS.85).aspx
Usage:
wmiadap /f
The /f switch still forces an update of the WMI classes from the performance libraries.
wmiadap /r
The /r switch to parse the Windows Driver Model drivers to create performance objects.
The re-sync performance counters option
The winmgmt console program offers another way of getting corrupted performance counters back on track.
1. Open a command prompt window (Run as Administrator) and enter the following lines.
2. On older Windows systems up to 2003 you have to clear earlier re-sync attempts (on newer systems this will not work):
winmgmt /clearadap
3. Then do the resynchronization:
winmgmt /resyncperf
The reload performance counters option
As pointed out in
this technet article, you can reload the performance counters if you run the following command in a administrator-run command line:
lodctr /r for both folder %WINDIR%/System32 and %WINDIR%/SysWOW64
Repair Windows Management Instrumentation (WMI) tool
This tool will repair WMI on the system. See
Repair WMI article on
my site.
See this articles too:
Article 1
Article 2
Article 3
I had a problem with my Microsoft SQL Server 2008, importing data and generating scripts, so I decided to uninstall it. When I tried to remove it, I got an error from the check screen. The WMI service is corrupted, so I need a way to reset the WMI service.
Platform: Windows 7 64bit
I did try winmgmt /resetrepository
to no effect.
Short of reinstalling Windows, what can I do?
slhck
219k68 gold badges591 silver badges578 bronze badges
asked Sep 21, 2010 at 3:36
0
If its a file level corruption you could probably try the sfc /scannow
command — this will check and replace any system files that are damaged.
answered Apr 23, 2011 at 23:28
Journeyman Geek♦Journeyman Geek
125k51 gold badges252 silver badges418 bronze badges
To fully rebuild the WMI Repository follow these steps:
- Disable and stop the winmgmt service.
- Remove or rename
C:WindowsSystem32wbemrepository
. - Enable and start the winmgmt service.
- Open a cmd prompt as Administrator.
- In the cmd prompt navigate to
C:WindowsSystem32wbem
- Run the command
for /f %s in ('dir /b *.mof') do mofcomp %s
This will take a minute or so to complete. - Run the command
for /f %s in ('dir /b en-us*.mfl') do mofcomp en-us%s
karel
13.2k25 gold badges44 silver badges52 bronze badges
answered Nov 4, 2015 at 13:22
1
I had the same problem and using Repair WMI from Tweaking.com fixed it.
answered Jan 2, 2012 at 11:48
SharkenSharken
1,64111 silver badges6 bronze badges
1
Another handy option to fix WMI using a WMI Fixer Tool (WMI Fixer.ps1) created by Guido Basilio de Oliviera and is freely available.
This tool is based on Windows Powershell and Windows Forms:
cd /d % windir% System32Wbem
net stop winmgmt
winmgmt /clearadap
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
winmgmt /resyncperf
del % windir% System32WbemRepository /Q
del % windir% System32WbemAutoRecover /Q
for % % i in (* .dll) do Regsvr32 -s % % i
for % % i in (* .mof, * .mfl) do Mofcomp % % i
wmiadap.exe /Regsvr32
wmiapsrv.exe /Regsvr32
wmiprvse.exe /Regsvr32
net start winmgmt
Or alternatively..
- Disable and stop the WMI service.
-
Run the following commands.
Winmgmt /salvagerepository %windir%System32wbem
(then)
Winmgmt /resetrepository %windir%System32wbem
-
Re-enable the WMI service and then reboot the PC to see how it goes.
You could also try rebuilding the repository if the above fails: -
Disable and stop the WMI service.
-
Rename the repository folder (located at
%windir%System32wbemrepository
) to repository.old. -
Re-enable the WMI service.
-
Reboot the PC
Acknowledgements
- WMI corrupt — how to reinstall/repair?
answered Oct 31, 2017 at 18:26
xavier_fakeratxavier_fakerat
2,4742 gold badges11 silver badges23 bronze badges
I run into corrupt WMI fairly often working with client systems. I was very frustrated by the acknowledgement from MS that WMI has issues and not getting releif with any suggested fix.
Last year I found this procedure and it works EVERY TIME!
Open a Microsoft PowerShell window.
Type the following commands and press enter after each command
net stop winmgmt
ren c:windowssystem32wbemrepository c:windowssystem32wbemrepository_old
net start winmgmt
cd c:windowssystem32wbem
lodctr /r
Check and make sure all services are running. A reboot is not required at this point, but it is the fastest way to assure that all services restart.
answered Apr 30, 2019 at 15:51
Восстановление поврежденного WMI (информация не считывается удалённо)
Иногда случается так, что после установки одного из обновлений Windows WMI перестает работать на сервере или рабочей станции. Если данные не собираются на каком-то компьютере даже локально (при наличии прав администратора), скорее всего WMI поврежден.
Можно попробовать восстановить WMI по следующей инструкции.
1. Исправление ошибок регистрации библиотек WMI:
1. Перейдите в системный каталог Windows. Перейдите в подкаталог wbem.
В этом каталоге находятся файлы WMI.
cd %system32%
cd wbem
2. Перерегистрируйте библиотеки
for %i in (*.dll) do RegSvr32 -s %i
3. Перерегистрируйте исполняемые файлы
regsvr32 -s scrcons.exe
regsvr32 -s unsecapp.exe
regsvr32 -s wbemtest.exe
regsvr32 -s winmgmt.exe
regsvr32 -s wmiadap.exe
regsvr32 -s wmiapsrv.exe
regsvr32 -s wmiprvse.exe
2. Исправление ошибок репозитория:
1. Остановите сервис WMI
net stop winmgmt
2. В папке
C:WindowsSystem32Wbem
переименуйте Repository в Repository_bad
3.Запустите сервис WMI
net start winmgmt
4. Запустите команду
rundll32 wbemupgd, UpgradeRepository
Скрипт, позволяющий выполнить все описанное вверху (создайте .bat-файл, скопируйте туда следующие команды, и запустите его):
cd %system32%
cd wbem
for %i in (*.dll) do RegSvr32 -s %i
regsvr32 -s scrcons.exe
regsvr32 -s unsecapp.exe
regsvr32 -s wbemtest.exe
regsvr32 -s winmgmt.exe
regsvr32 -s wmiadap.exe
regsvr32 -s wmiapsrv.exe
regsvr32 -s wmiprvse.exe
net stop winmgmt
cd %system32%
cd wbem
ren Repository Repository_bad
net start winmgmt
rundll32 wbemupgd, UpgradeRepository
Программа «10-Страйк: Инвентаризация Компьютеров» — удаленный опрос и инвентаризация ПК предприятия по сети. Создание отчетов по «железу» и ПО, мониторинг изменений, обнаружение проблем, оповещение администратора. Легко установить и настроить. Возьмите свой парк компьютеров под контроль!
Скачайте бесплатную 30-дневную версию прямо сейчас и попробуйте.
Источник
WMI Проблемы и решения
Не раз я сталкивался, что перестают у пользователя запускаться службы (хотя он является локальным админом), ну или например перестает работать SMS агент (Перестает обмениваться с SCCM).
Я очень долго пытался с этим разобраться и наконец разобрался .
Проблема кроется в злостном WMI. Давайте для начала попробуем разобраться что же это такое и с чем его есть? Всеми любимая, а также очень умная девочка Вика Wikipedia сообщает:
WMI (Windows Management Instrumentation в дословном переводе) — это инструментарий управления Windows. Если говорить более развернуто, то WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.
Опа. За нами следит большой брат .
Самое простое что можно сделать это пересобрать WMI как правило это решает большую часть проблем.
Для Выполнения этих задач нам потребуется запустить командную строку от администратора (Пуск выполнить CMD) или пользователя который будет состоять в группе Локальных администраторов и выполнить следующее:
cd /d %windir%system32wbem
REM Перерегистрируем компоненты
for %i in (*.dll) do RegSvr32 -s %i
for %i in (*.exe) do %i /RegServer
По идее этого должно быть достаточно но лишнем не будет выполнить и следующее:
Ну и напоследок перекомпиляция mof файлов
for /r %i in (*.mof *.mfl) do mofcomp %i
При устранении неисправностей следуйте простому правилу: сначала пробуйте решить проблему менее «жестким» способом (перерегистрацией библиотек и перекомпиляцией mof-файлов) и только если ничего не помогает – перестройкой (удалением и созданием заново) репозитория.
Это связано с тем, что существуют приложения, которые только обновляют репозиторий при установке, но не используют .mof-файлы. Соответственно, при удалении и создании заново репозитория данные приложения не обновят информацию автоматически и не все их данные, связанные с WMI, будут потеряны вплоть до того момента, пока вы не переустановите эти приложения.
Так же следует помнить, что не все приложения хранят свои библиотеки и .mof-файлы в %systemroot%system32wbem. Соответственно вам нужно будет их найти перед тем как зарегистрировать библиотеки заново или перекомпилировать mof.
Собрались на рыбалку? вот Вам отличная донная снасть спешите!
Источник
Нет доступа к средствам WMI
BB-код ссылки (для форумов):
Хотел узнать Hardware ID.Пробил команду msinfo32,а мне говорят Нет доступа к средствам WMI.Файлы управления Windows были перемещены или удалены. Помогите пожалуйста.
BB-код ссылки (для форумов):
1. Проверьте наличие в папке ..WindowssysWOW64wbem файла WmiApSrv.exe
2. Проверьте работает ли служба Инструментарий управления Windows: Пуск —> Панель управления —> Администрирование —> Службы, так же тип запуска должен быть Автоматически.
Если все на месте и работает:
BB-код ссылки (для форумов):
А потом я проделал ниже следующее
Вот результат
В результате не получилось
BB-код ссылки (для форумов):
BB-код ссылки (для форумов):
200?’200px’:»+(this.scrollHeight+5)+’px’);»> C:UsersTanya>net stop winmgmt
Следующие службы являются зависимыми от службы «Инструментарий управления Window
s».
Останов службы «Инструментарий управления Windows» приведет также к останову эти
х служб.
Центр обеспечения безопасности
Вспомогательная служба IP
Продолжить операцию? (Y-да/N-нет) [N]: y
Служба «Центр обеспечения безопасности» останавливается.
Служба «Центр обеспечения безопасности» успешно остановлена.
Служба «Вспомогательная служба IP» останавливается.
Служба «Вспомогательная служба IP» успешно остановлена.
Служба «Инструментарий управления Windows» останавливается.
Служба «Инструментарий управления Windows» успешно остановлена.
C:UsersTanya>cd /d %windir%sysWOW64wbem
C:WindowsSysWOW64wbem>for %i in (*.dll) do RegSvr32 -s %i
C:WindowsSysWOW64wbem>RegSvr32 -s esscli.dll
C:WindowsSysWOW64wbem>RegSvr32 -s fastprox.dll
C:WindowsSysWOW64wbem>RegSvr32 -s mofd.dll
C:WindowsSysWOW64wbem>RegSvr32 -s RacWmiProv.dll
C:WindowsSysWOW64wbem>RegSvr32 -s stdprov.dll
C:WindowsSysWOW64wbem>RegSvr32 -s vdswmi.dll
C:WindowsSysWOW64wbem>RegSvr32 -s viewprov.dll
C:WindowsSysWOW64wbem>RegSvr32 -s vsswmi.dll
C:WindowsSysWOW64wbem>RegSvr32 -s wbemcntl.dll
C:WindowsSysWOW64wbem>RegSvr32 -s wbemdisp.dll
C:WindowsSysWOW64wbem>RegSvr32 -s wbemprox.dll
C:WindowsSysWOW64wbem>RegSvr32 -s wbemsvc.dll
C:WindowsSysWOW64wbem>RegSvr32 -s Win32_Tpm.dll
C:WindowsSysWOW64wbem>RegSvr32 -s WmiApRpl.dll
C:WindowsSysWOW64wbem>RegSvr32 -s WMICOOKR.dll
C:WindowsSysWOW64wbem>RegSvr32 -s WmiDcPrv.dll
C:WindowsSysWOW64wbem>RegSvr32 -s WmiPerfClass.dll
C:WindowsSysWOW64wbem>RegSvr32 -s WmiPerfInst.dll
C:WindowsSysWOW64wbem>RegSvr32 -s wmiutils.dll
C:WindowsSysWOW64wbem>for %i in (*.exe) do %i /RegServer
C:WindowsSysWOW64wbem>mofcomp.exe /RegServer
Microsoft (r) MOF Compiler Version 6.1.7600.16385
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
File ‘/RegServer’ not found!
C:WindowsSysWOW64wbem>WinMgmt.exe /RegServer
Недопустимый параметр
Инструментарий управления Windows (WMI)
Использование: winmgmt [/backup ] [/restore ]
[/resyncperf] [/standalonehost [ ]] [/sharedhost]
[/verifyrepository [ ]] [/salvagerepository]
[/resetrepository]
/backup
WMI получает команду сохранить архивную копию базы данных с указанным
именем файла. Аргумент «имя_файла» должен содержать полный путь к
местоположению файла. Для этого процесса необходима блокировка записи
в базу данных, что позволяет приостанавливать операции записи в базу
данных до окончания архивации.
/restore
Восстанавливает базу данных WMI из указанного архивного файла.
Аргумент «имя_файла» должен содержать полный путь к местоположению
архивного файла. Для восстановления WMI сохраняет существующую базу
данных для обратной записи на случай сбоя операции. Затем база данных
восстанавливается из архивного файла, указанного в аргументе
«имя_файла». Если не удается получить монопольный доступ к базе данных,
существующие клиенты отключаются от WMI. Аргумент «флаг» должен иметь
значение 1 (принудительно — отключение пользователей и восстановление) и
ли
0 (по умолчанию — восстановление, если пользователи не подключены),
при этом он указывает режим восстановления.
/resyncperf
Регистрирует системные библиотеки производительности в WMI.
/standalonehost [ ]
Перемещает службу Winmgmt в автономный процесс Svchost, который имеет
фиксированную конечную точку DCOM. По умолчанию установлена конечная точ
ка
ncacn_ip_tcp.0.24158.
Однако конечную точку можно изменить, запустив Dcomcnfg.exe. Аргумент
«уровень» является уровнем проверки подлинности для процесса Svchost.
Если уровень не указан, по умолчанию устанавливается значение
4 (RPC_C_AUTHN_LEVEL_PKT).
/sharedhost
Перемещает службу Winmgmt в общий процесс Svchost.
/verifyrepository [ ]
Выполняет проверку согласованности базы данных WMI. При добавлении модул
я
/verifyrepository без аргумента проверяется обновляемая база
данных, используемая WMI в настоящее время. Если указать аргумент
«путь», можно будет проверить любую сохраненную копию базы данных.
В таком случае аргумент «путь» должен содержать полный путь к сохраненно
й
Копии базы данных. Сохраненная база данных должна представлять собой пап
ку
с целой базой данных.
/salvagerepository
Выполняет проверку согласованности базы данных WMI и при обнаружении
несогласованности перестраивает базу данных. Если содержимое
несогласованной базы данных можно прочитать, оно добавляется в
перестроенную базу данных. Операция восстановления всегда работает с баз
ой
данных, которая используется в настоящее время службой WMI. Файлы MOF,
содержащие инструкцию препроцессора автоматического восстановления
#pragma, восстанавливаются в базу данных.
/resetrepository
База данных восстанавливается в исходное состояние на момент установки
операционной системы. Файлы MOF, содержащие инструкцию препроцессора
автоматического восстановления #pragma, восстанавливаются в базу данных.
C:WindowsSysWOW64wbem>WMIC.exe /RegServer
Invalid Global Switch.
C:WindowsSysWOW64wbem>net start winmgmt
Служба «Инструментарий управления Windows» запускается.
Служба «Инструментарий управления Windows» успешно запущена.
C:WindowsSysWOW64wbem>winmgmt /salvagerepository
Не удалось восстановить базу данных WMI
Код ошибки: 0x8007007E
Источник
Любой бывалый Windows-админ не раз сталкивался с проблемами в работе службы WMI и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования системы, поэтому администратору приходится прибегать к тем или иным трюкам, позволяющим восстановить работоспособность WMI. В этой статье мы опишем достаточно простую методику диагностирования и устранения неполадок в службе WMI.
О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:
- Ошибки обработки WMI запросов в системных журналах и логах приложений
- Ошибки GPO, завязанные на WMI ( некорректная работа wmi фильтров политик, и пр.)
- Ошибки в работе / невозможность установки агентов SCCM/SCOM
- Ошибки в работе скриптов (vbs или powershell), использующих пространство имен WMI
В первую очередь нужно проверить имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она.
Если служба присутствует и находится в состоянии Started, рекомендуется протестировать работоспособность WMI, обратившись к ней с помощью простого wmi-запроса. С помощью Powershell, например, это можно сделать так:
get-wmiobject Win32_OperatingSystem
Если при выполнении простейшего WMI-запроса система возвращает ошибку (на скриншоте приведен пример корректного ответа службы WMI), вероятно имеет место некорректное функционирование сервиса WMI или ряда его подсистем, повреждение репозитория WMI или другие проблемы.
Утилита WMIDiag
Для «тонкой» диагностики службы WMI существует официальная утилита Microsoft — WMIDiag (Microsoft WMI Diagnosis). Утилита представляет собой vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.1 и включает в себя следующие типы фалов :
- .log файлы содержат подробный отчет об активности и работе утилиты WMIDiag
- .txt файлы содержат итоговые отчеты о найденных ошибках, на которые стоит обратить внимание
- В .csv файлах содержится информация, нужная для долгосрочного анализа работы подсистемы WMI
Совет. В 64 битных версиях Windows wmidiag нужно запускать так:
c:windowsSystem32cscript.exe wmidiag.vbs
в противном случае появится ошибка: WMIDiag must be run from native 64-bit environment. It is not supported in Wow64.
После окончания работы утилиты WMIDiag администратор должен изучить полученные файлы логов, проанализировать и попытаться исправить найденные ошибки.
В общем случае, WMIDiag может дать информацию по исправлению частных ошибок в WMI , но в большинстве случаев процесс это довольно трудоемкий и стоит потраченного времени только при решении инцидентов в критичных системах (как правило, на продуктивных серверах). Для массового сегмента рабочих станций пользователей гораздо проще «бить по площадям» и решать проблему работы WMI более радикально.
Перерегистрация библиотек WMI и перекомпиляция mof файлов
Следующий скрипт представляет собой «мягкий» вариант восстановления работоспособности службы 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 winmgmt /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
Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле и запустить его с правами администратора. После окончания работы скрипта, систему нужно перезагрузить и вновь проверить работу WMI.
В том случае, если предыдущий способ не помог, придется перейти к более «жесткому» способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилища.
WMI репозиторий (хранилище) находится в каталоге %windir%System32WbemRepository и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов. В некоторых случаях репозитория WMI может содержать статическую информацию классов. При повреждении репозитория WMI, в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.
В том случае, если вы подозреваете, что репозиторий WMI поврежден, имейте в виду, что его пересоздание это последняя вещь, к которой нужно прибегнуть только в том случае, если никакие другие операции реанимировать WMI не помогают.
Совет. На практике бывают случаи, когда пересоздание хранилища WMI приводит к проблемам со сторонним софтом. Вызван этот эффект тем, что все записи в базе WMI обнуляются (до состояния чистой системы). Такое ПО, вероятно, придется переустанавливать в режиме восстановления.
В Windows Vista и выше проверить целостность репозитория WMI можно с помощью команды:
winmgmt /verifyrepository
Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT), стоит попробовать выполнить «мягкое» восстановление репозитория:
Winmgmt /salvagerepository
И перезапустить службу wmi:
net stop Winmgmt
net start Winmgmt
Если описанная выше команда не помогла, выполняем сброс репозитория на начальное состояние (hard reset) так:
Winmgmt /resetrepository
В том случае, если команды Winmgmt /salvagerepository и Winmgmt /resetrepository желаемого эффекта не дали, стоит попробовать выполнить «жесткое» пересоздание базы WMI вручную таким сценарием:
sc config winmgmt start= disabled net stop winmgmt cd %windir%system32wbem winmgmt /kill winmgmt /unregserver winmgmt /regserver 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 (старый репозитория сохраняется в каталоге Repos_bakup). После окончания работы скрипта компьютер нужно перезагрузить, после чего протестировать работу службы WMI простым запросом.
Repair WMI
для Windows
Repair WMI — небольшая системная утилита для исправления параметров WMI в установленной системе. WMI (Windows Management Instrumentation) — это инструментарий управления Windows, являющийся базовой технологией централизованного управления и слежения за работой различных частей компьютерной системы.
WMI используется многими службами Windows и программными приложениями, и поэтому когда он поврежден работа многих сервисов становится невозможной (например, Windows Firewall). Особых настроек в Repair WMI нет, нужно просто запустить утилиту и она автоматически исправит найденные проблемы и конфликты.
Следует отметить, что этот инструмент входит в набор утилит для ремонта системы Windows Repair.
- Windows Repair для Windows
ТОП-сегодня раздела «Настройка, оптимизация»
CCleaner 6.08.10255
CCleaner — популярное приложение для оптимизации ПК, чистки реестра и удаления различного…
MSI Afterburner 4.6.4
MSI Afterburner — настоящая находка для истинного оверклокера, с помощью которой можно…
Mem Reduct 3.4
Mem Reduct — небольшая портативная утилита, которая позволяет высвободить до 25% используемой…
CCleaner Portable 6.08.10255
CCleaner Portable — портативная (переносная, не требующая инсталляции на компьютер) версия утилиты CCleaner для чистки системного мусора…
Win 10 Tweaker 19.3
Простой в использовании твикер для Windows, с помощью которого можно быстро и легко…
Reg Organizer 9.10
Reg Organizer — мощная программа, позволяющая следить за состоянием системного реестра и…
Отзывы о программе Repair WMI
Admin
Отзывов о программе Repair WMI 2.8.8 пока нет, можете добавить…