Любой бывалый 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 код 10 встречается в операционной системе Windows 7 на всех компьютерах после установки операционной системы и сервис пака с привода DVD или с загрузочной флэшки на которой был установочный образ системы.
Что бы посмотреть наличие ошибки WMI с кодом 10 щелкните правой клавишей мышки (далее ПКМ) на «Мой компьютер» в выпадающем меню нажмите левой кнопкой мыши (далее ЛКМ) на «Управление».
В открывшемся окне «Управление компьютером (локальным)» нажмите на «Просмотр событий» затем «Журналы Windows» и «Приложения», нашли эту ошибку, тогда читаем дальше как устранить ошибку .
1. Отключаем контроль учетных записей.
2. Перезагружаем компьютер в безопасный режим. Для этого на начальном экране загрузки загрузки компьютера (как только у вас на мониторе появились белые буквы на черном фоне или цветная эмблема материнской платы) жмите клавишу F8, нажимать можно несколько раз ничего не испортите.
3. Должны увидеть варианты загрузки, выбираете «Безопасный режим» и нажимаете «Enter» на клавиатуре.
4. После загрузки в безопасном режиме щелкните ПКМ на «Мой компьютер» в выпадающем меню нажмите ЛКМ на «Управление».
В открывшемся окне «Управление компьютером (локальным)» нажмите на «Службы и приложения» а после на «Службы».
5. Находим службу Инструментарий управления Windows (Windows Management Instrumentation), останавливаем её кнопкой «Остановить» после этого окно «Управление компьютером» можно закрыть.
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.
Содержание
- WMI: Исправление ошибок, восстановление репозитория в Windows
- Диагностика проблем с WMI
- Исправление WMI репозитория, перерегистрация библиотек, перекомпиляция MOF файлов
- Сброс и пересоздание WMI репозитория (хранилища)
- Восстановление работы Windows Management Instrumentation (WMI) после фатального сбоя
- 1 ответ 1
WMI: Исправление ошибок, восстановление репозитория в Windows
Любой бывалый Windows-админ периодически сталкивается с проблемами в работе службы WMI (Windows Management Instrumentation) и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования Windows, поэтому администратору необходимо проверить и восстановить работоспособность WMI. В этой статье мы опишем простую методику диагностирования и устранения неполадок службы WMI в Windows.
О наличии проблем с 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 существовала официальная утилита от Microsoft – WMIDiag.vbs (Microsoft WMI Diagnosis). WMIdiag это vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.2 и включает в себя следующие типы фалов:
в противном случае появится ошибка:
После окончания работы утилиты 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 с помощью команды:
Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT или WMI repository verification failed), стоит попробовать выполнить “мягкое” исправление ошибок репозитория:
Данная команда выполняет проверку согласованности хранилища 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
Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле wmi_soft_repair.bat и запустить его с правами администратора. После окончания работы скрипта, перезагрузите Windows и проверьте работу WMI.
Сброс и пересоздание WMI репозитория (хранилища)
Если вам не помогли мягкие способ восстановления WMI, рассмотренные выше, придется перейти к более “жесткому” способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилищаWMI.
Если вы подозреваете, что репозиторий WMI поврежден, имейте в виду, что его пересоздание — это последняя шаг, к которому нужно прибегнуть только тогда, когда другие операции не помогают реанимировать WMI.
Следующая команда выполнит сброс базы данных WMI к исходному состоянию (как после чистой установки Windows). Используйте эту команду для выполнения hard reset репозитория WMI, если параметре salvagerepository не исправил проблему:
Если обе команды ( 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 (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.
Проверьте состояние WMI репозитория. Если ошибки исправлены, команда winmgmt /verifyrepository должна вернуть:
В этой статье мы собрали основные способы, позволяющие продиагностировать и устранить неполадки службы и репозитория WMI.
отличная и очень редкая информация! спасибо!
Отличная полезная статья. Сразу решил проблему.
На компьютере возникли проблемы в WMI. При каждом запуске компьютера выходит окошко: «The model does not support WMI», компьютер при этом работает как обычно. Нашла Вашу статью «Устранение неполадок в WMI» и, руководствуясь ей, сначала проверила имеется ли в системе служба Windows Management Instrumentation и включена ли она (имеется и включена), а затем, как у Вас написано, попробовала протестировать работоспособность WMI, обратившись к ней с помощью Powershell — служба выдаёт корректный ответ. Также, вычитав информацию на другом ресурсе, вводила в командную строку sfc/scannow, но никаких ошибок. Посоветуйте, пожалуйста, что я могу сделать?
Как правило в таких ситуациях должен помочь ребилд хранилища WMI. Попробуйте, в статье это подробно описано.
Спасибо, выручил.
Я сразу воспользовался же методом «Перерегистрация библиотек WMI и перекомпиляция mof файлов»
Плиз, поясните по-подробнее смысл команды
if exist Repos_bakup rd Repos_bakup /s /q и её ключей. То ли это условное указание на незнамо что или ещё что. Я в сомнениях по недомыслию. Сенькую.
Плиз, поясните по-подробнее смысл команды
if exist Repos_bakup rd Repos_bakup /s /q и её ключей. То ли это условное указание на незнамо что или ещё что. Я в сомнениях по недомыслию. Сенькую. А то на некоторых сайтах со ссылкой на ваш скрипт юзеры, его применившие, плачут на полный стопер системы и вынуждены откатываться.
ОГРОМНОЕ СПАСИБО! Ничего не помогало, наткнулся на эту статью случайно ЗАРАБОТАЛО! Поклоны бью!
C:WindowsSystem32wbem>for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
Непредвиденное появление: %%s.
oO
windows 2012 r2
У вас в команде неправилные одиночные кавычки. Наберите руками.
for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
у меня та же проблема. кавычки правильные вроде
Формат %%s используется при запуске внутри сценария (*.bat или *.cmd файла).
При использовании в консоли нужно убрать один знак ‘%’. Т.е. команда будет такая:
for /f %s in (‘dir /b /s *.dll’) do regsvr32 /s %s
Здравствуйте. Я ни разу не системщик, работаю вынужденно на фрилансе. Столкнулся в 8.1 Pro с признаками, которые не мог распознать, стал копать, вышел на WMI. К моменту разборок со службой точки сохранения старше 2 дней уже были затёрты. Нашёл, как заменить куст System версией из RegBack с помощью инсталляционного диска (там дата была недельной давности). Нашёл ваши рекомендации. Остановил службу, ввожу (power shell из-под админа, для меня непонятно его отличие от командной строки, командную строку запустил чуть позже) for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s — мне отвечает: «строка:1 знак:4
+ for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s
+ »
Отсутствует открывающий знак «(» после ключевого слова «for»…
Дописываю скобку после for — выдаёт строку >> и тишина.
Читаю комменты — «надо убрать знак «%», если не бат-файл. Но если он выдаёт ошибку со скобкой, то бат-файл не выполнится.
Там же вы пишите «Указанные команды можно выполнить путем простой вставки в окно командой строки» — и ни слова про %%.
Понятно, что продираюсь сквозь ваши советы, и конечно спасибо, но для несистемщика — очень тяжко.
Вот еще: wmiprvse /regserver командная строка молча проглотила, а на winmgmt /regserver командная строка ответила «недопустимый параметр
WMI
Использование:….»
далее идёт мануал.
Для меня это тупик, не понимаю. Стал выполнять далее, на последнюю строку for /f %s in (‘dir /b *.mfl’) do mofcomp %s ответил: Файл не найден.
Подскажите, пожалуйста, при установке на Windows 7 x64 пакета WebDeploy 3.6 в самом конце установки пишет об ошибке в скрипте и возвращает код ошибки 1702. Гугл сообщает, что ошибка возможно кроется в некорректной работе WMI, перекомпиляция файлов приведенным скриптом (указанная на форумах как путь решения проблемы) не помогла.
В логе установщика ошибка при вызове InstallEtwManifest.
WMIDiag пишет о наличии ошибок в ключах CLSID, связанных с InProcServer32.
winmgmt /verifyrepository возвращает, что все ОК
Заранее благодарен
Почему вы решили, что ошибка связана с WMI, возможно дело в самом установщике или службы Windows Installer.
Согласно кодов ошибок установщика MSI:
1702 — Configuring [2] cannot be completed until you restart your system
Попробуйте просто перезагрузить систему
1) Попробуйте произвести установку с отключенным UAC.
2) Включите ведение подробного журнала установщика Windows m siexec /i /l*v c:tmpinstall.log
Может в логе что-то более конкретное будет…
Не работает служба WMI Writer
Собственно из-за этой службы не имею возможность делать полный БэкАп системы через Акронис, в Акронисе сказали, обратиться в службу поддержки Майкрософт. Перерегистрация компонентов VSS (Volume Shadow Copy Service) в Windows Server не помогла. Что еще можно сделать? спасибо! 🙁
При вводе 3-ей строки споткнулась на том, что не знаю, как вводится спецсимвол иена (юань) в командной строке. Подскажите, пожалуйста!
Не пойму, где вы нашли символ иены? Из спецсимволов использованы только проценты….
Код скрипт не нужно вводит — выполняйте его через копировать/вставить
Подскажите, пожалуйста, как вводятся символы в командную строку, которых нет на клавиатуре? Необходимо восстановить файл WMIServi Application.
Спец символы можно вводить с клавиатуры,, зажав клавишу alt и набрав код символа на цифровой клавиатуры. Таблица с кодами ASCII символов легко ищется в Интернете.
Например, чтобы набрать символ градуса (º), нужно зажать ALT, и ввести 0176 на цифровой (!!) клавиатуре (не цифры на основной).
Либо копи/паст из Word
Спасибо за подсказку, с символами ASCII и таблицей я разобралась. Проблема в том, что скопировать и вставить в командную строку ничего не получается; ПК — ноутбук, цифровая клавиатура есть, но в виртуальном виде, и магии в виде преобразования цифр в символы ASCII не происходит. Очень прошу, подскажите, как быть?
1) Подключила доп. клавиатуру, простые символы перекодируются, сложные (30%) — нет. Как получить сложные символы? 2) Можно ли настроить командную строку т. о., чтобы пользоваться функциями копи/вставка? Windows Vista.
Попробуйте выполнить команду: cmd /u
Это переключение в Unicode
Алина, а зачем собственно вам спец сиволы в cmd? Может вы не с того конца заходите к проблеме?
Может быть. Попробую восстановить все удалённые файлы. Большое Спасибо за помощь и за конструктивный подход в решении компьютерных задач!
Приветствую, возник такой вопрос, при вводе вот этих команд:
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
пишет: недопустимый параметр, так и должно быть?
еще наткнулся вот на такой сценарий:
sc config winmgmt start= disabled
rundll32 wbemupgd, RepairWMISetup
rundll32 wbemupgd, UpgradeRepository
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
я так понял это то же самое, что и в «жестком» пересоздании базы, вот только есть другие команды и в конце последовательность другая команды winmgmt /regserver — это влияет?
Добрый день
Подскажите, на эту ошибку нужно обращать внимание:
Инструментарий управления Windows остановил WMIPRVSE.EXE, так как для квоты достигнут порог предупреждения. Квота: HandleCount, значение: 4099, максимальное значение: 4096, PID WMIPRVSE: 2320, поставщики в этом процессе: %systemroot%system32wbemcimwin32.dll, %systemroot%system32wbemntevt.dll
Да все при этом вроде бы все нормально работает.
Спасибо! Помог мягкий способ! Но столкнулся с проблемой:
«winmgmt /regserver
пишет: недопустимый параметр, так и должно быть?»
Также были проблемы с %%s и %s — внесите коррективы к описанию в самом начале, пожалуйста.
Проблема возникла на Win10 — ноутбук Acer Aspire R3-471GT после вынужденного обновления BIOS от производителя.
Сейчас все работает, кроме сенсорного ввода. Пытаюсь решить проблему дальше
чет не один из вариантов не помог :((
на команду winmgmt /verifyrepository пишет что базы согласованы, но все равно пуск не удался, даже не знаю что делать
есть варианты еще?
Добрый день! А Вы сталкивались с ошибкой: Регистрация сервера <73e709ea-5d93-4b2e-bbb0-99b7938da9e4>DCOM не выполнена за отведенное время ожидания. 73E709EA-5D93-4B2E-BBB0-99B7938DA9E4 — это как раз Microsoft WMI Provider Subsystem Host. Система Windows Server 2012 полсе перезагрузки работает ровно 6 дней без проблем потом начинаются сыпаться эти ошибки каждые 10 минут.
Не сталкивался, поищите описание проблемы в буржунете по запросу «The server <784e29f4-5ebe-4279-9948-1e8fe941646d>did not register with DCOM within the required timeout.»
Источник
Восстановление работы Windows Management Instrumentation (WMI) после фатального сбоя
1 ответ 1
Я столкнулся с этой ситуацией на днях: мои студенты тестировали управление системными функциями и две машины в домене (на обеих – Windows 10) стали возвращать ошибки при работе с Windows Management Instrumentation. Основной админ ещё не вышел из отпуска, пришлось вспоминать, что я бывший руководитель Отдела ИТ 🙂
Сразу отвечу на третий вопрос: без рабочего WMI, на мой взгляд, можно оставлять лишь домашний игровой компьютер, на котором, кроме игр и просмотра видео, больше ничего не делается (разве что дети учатся программировать). В остальных случаях, особенно на корпоративных машинах, тем более в домене, WMI должна работать как часы. Это моё мнение, кто-то может не согласиться.
Теперь о причинах произошедшего: их может быть очень много. Забегая вперед, скажу что на одной машине это произошло из-за того, что на жестком диске закончилось место, а затем был сбой по питанию из-за сломанного ИБП (увы, никто не застрахован; сервера, конечно, защищены от подобного, а обычная рабочая машинка не была). На второй хуже: нефатальный сбой жесткого диска с последующим BSOD. В целом, разобраться с причинами не так уж и важно, главное, выяснить, что причиной не является вирус или попытка взлома. Впрочем, намеренное удаление или случайная порча системных файлов тоже должны быть рассмотрены достаточно пристально.
Восстановление работоспособности WMI следует проводить поэтапно, от щадящих методов к деструктивным. Следует быть готовым к тому, что в самом худшем случае систему придётся переустановить. Не стоит лишний раз напоминать, что большинство команд должно выполняться от имени администратора.
1 этап. Проверка работы сервиса.
Если она не запущена, пытаемся запустить, выставим режим запуска в «Автоматически». Если запущена, пытаемся перезапустить (Остановить/запустить). После этого проверяем работоспособность WMI. Проще всего сделать это, выполнив любой WMI-запрос в powershell (напоминаю, что powershell в Windows 10 запускается через Пуск/Windows PowerShell/Windows Power Shell, но проще, на мой взгляд, запустить командную строку с админовскими правами, а в ней уже набрать powershell ), например, такой: (вы можете выполнить другой, свой любимый :))
Если у вас вылетела портянка объектов, всё в порядке. Если же полезли ошибки, значит, работоспособность не восстановлена, переходим ко второму этапу.
2 этап. Недеструктивное восстановление
Стоит попытаться вначале выполнить перерегистрацию библиотек и рекомпиляцию файлов расширения свойств объектов ( Managed Object Format, MOF ) и языковую составляющую этих файлов ( MFL ). Практически гарантированно сработает, если попытка WMI-запроса у вас вызывала ошибку вида “Ошибка в файле WMI.MOF” или любом другом MOF-файле. Для этого выполним следующие операции:
Можно собрать всё это в один BAT-файл и запустить:
Отмечу, что таким образом я восстановил работу WMI на первой машине. Со второй, увы не получилось. Если у вас не получается, пора переходить к 3му этапу
3 этап. Деструктивное восстановление
Фактически, на 3м этапе мы пересоздаем хранилище WMI, как таковое, которое находится в папке WindowsSystem32WbemRepository и является базой данных, в которой хранятся данные и определения стандартных WMI-классов и статическая информация дополнительных WMI-классов, если они создавались на вашей машине.
Перед операциями проверьте состояние жёсткого диска и файловой системы.
Проверяем целостность (На Windows XP и ниже не работает):
В случае ответа отличного от “База данных WMI согласована”, можно выполнить «мягкое восстановление» командой:
с последующим перезапуском службы:
Если мягкое восстановление не помогло, пробуем вернуть хранилище в начальное состояние (последствия: все дополнительные классы WMI, когда-либо зарегистрированные в вашей системе, скорее всего, придётся регистрировать заново):
с последующим рестартом системы. Отмечу, что вторая машина заработала после этого этапа. Последствия были не сильно удручающими, но серьёзными: пришлось переинсталлировать Visual Studio и Delphi Starter, MS Office отказался работать и его пришлось деинсталлировать вручную, удаляя папки, файлы и записи из реестра, с последующей повторной установкой. Также слетели все наши собственные классы WMI.
Но, если и это не помогло, придётся удалять и создавать хранилище заново. Это можно сделать следующим BAT-файлом:
Перегружаем компьютер. Если и после этих действий WMI не заработала, путь один – переустановка системы.
Источник
Эта проблема проявляется на Windows Vista после установки SP1 (присутствует и в SP2), а также наблюдается в Windows 7 после установки SP1.
Сообщение об ошибке в разделе Просмотр событий -> Журналы Windows -> Приложение :
Event filter with query «SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA «Win32_Processor» AND TargetInstance.LoadPercentage > 99″ could not be reactivated in namespace «//./root/CIMV2» because of error 0x80041003. Events cannot be delivered through this filter until the problem is corrected.
Как исправить:
- Отключаем контроль учетных записей.
- Перезагружаемся в безопасный режим.
- Останавливаем службу Инструментарий управления Windows (Windows Management Instrumentation).
- Открываем папку c:windowssystem32wbemrepository. На всякий случай содержимое папки копируем в безопасное место, а затем удаляем.
- Перезагружаемся.
- При первой загрузке возможны проблемы: торможение, подвисания и т.п. Ничего страшного — перезагружаемся еще раз.
- Вторая загрузка должна пройти быстро и без помех. Проверяем логи — больше никаких ошибок WMI во время загрузки системы!
- Включаем контроль учетных записей обратно.
В заключение следует сказать о том, что данная ошибка классифицируется в Микрософт как некритичная и не влияющая на работоспособность системы. И это действительно так, два года проработал с ней без проблем. Но если есть способ исправить, почему бы это не сделать? ))
- Метки Windows 7, Windows Vista, Ошибки Windows
Некоторые пользователи Windows 7 время от времени могут сталкиваться с ошибкой 0x80041003. Ее предвестником, например, может быть зависание ПК, от которого можно избавиться лишь его перезагрузкой. В Просмотре событий вы можете найти следующую информацию по ошибке:
Event filter with query “SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA “Win32_Processor” AND TargetInstance.LoadPercentage > 99″ could not be reactivated in namespace “//./root/CIMV2” because of error 0x80041003. Events cannot be delivered through this filter until the problem is corrected
В сегодняшней статье мы рассмотрим два метода, которые — по заявлению многих пользователей — могут разрешить ошибку 0x80041003 в Windows 7. Первый метод — применение скрипта VBS, а второй — использование средства, разработанного самой компанией Майкрософт.
Ошибка 0x80041003 в Windows 7: методы решения
Метод №1 Выполнение скрипта VBS
- Создайте на своем рабочем столе простой текстовый документ;
- откройте документ и вставьте в него следующий скрипт:
-
strComputer = «.»Set objWMIService = GetObject(«winmgmts:» _& «{impersonationLevel=impersonate}!» _& strComputer & «rootsubscription»)Set obj1 = objWMIService.Get(«__EventFilter.Name=’BVTFilter’»)
set obj2set = obj1.Associators_(«__FilterToConsumerBinding»)
set obj3set = obj1.References_(«__FilterToConsumerBinding»)
For each obj2 in obj2setWScript.echo «Deleting the object»WScript.echo obj2.GetObjectText_obj2.Delete_next
For each obj3 in obj3setWScript.echo «Deleting the object»WScript.echo obj3.GetObjectText_obj3.Delete_next
WScript.echo «Deleting the object»WScript.echo obj1.GetObjectText_obj1.Delete_
-
strComputer = «.»Set objWMIService = GetObject(«winmgmts:» _& «{impersonationLevel=impersonate}!» _& strComputer & «rootsubscription»)Set obj1 = objWMIService.Get(«__EventFilter.Name=’BVTFilter’»)
- переименуйте данный документ в fixeventid10 и замените его расширение на .VBS — получиться у вас должен файл fixeventid10.vbs;
- дважды кликните на этот файл, чтобы запустить его;
- в Просмотре событий Windows 7 удалите все логи события 10, которые относятся к ошибке 0x80041003, чтобы те больше не мешались вам в будущем.
Метод №2 Запуск Fix It от Майкрософт
- Скачайте с официального сайта Майкрософт средство Fix It;
- запустите его и следуйте указаниям на своем экране;
- протестируйте систему и проверьте, была ли устранена ошибка 0x80041003.
Мы надеемся, что данный материал помог вам избавиться от ошибки 0x80041003, и вы продолжили спокойно использовать Windows 7.
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Сообщение об ошибке в разделе Просмотр событий -> Журналы Windows -> Приложение :
Event filter with query “SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA “Win32_Processor” AND TargetInstance.LoadPercentage > 99″ could not be reactivated in namespace “//./root/CIMV2” because of error 0x80041003. Events cannot be delivered through this filter until the problem is corrected.
Как исправить:
- Отключаем контроль учетных записей.
- Перезагружаемся в безопасный режим.
- Останавливаем службу Инструментарий управления Windows (Windows Management Instrumentation).
- Открываем папку c:windowssystem32wbemrepository. На всякий случай содержимое папки копируем в безопасное место, а затем удаляем.
- Перезагружаемся.
- При первой загрузке возможны проблемы: торможение, подвисания и т.п. Ничего страшного – перезагружаемся еще раз.
- Вторая загрузка должна пройти быстро и без помех. Проверяем логи – больше никаких ошибок WMI во время загрузки системы!
- Включаем контроль учетных записей обратно.
В заключение следует сказать о том, что данная ошибка классифицируется в Микрософт как некритичная и не влияющая на работоспособность системы. И это действительно так, два года проработал с ней без проблем. Но если есть способ исправить, почему бы это не сделать? ))
Рэнди Франклин Смит (CISA, SSCP, Security MVP) имеет в своем арсенале очень полезный документ, рассказывающий о том, какие события (event IDs) обязательно должны отслеживаться в рамках обеспечения информационной безопасности Windows. В этом документе изложена крайне полезная информация, которая позволит Вам “выжать” максимум из штатной системы аудита. Мы подготовили перевод этого материала. Заинтересованных приглашаем под кат. О том, как настроить аудит, мы уже обстоятельно писали в одном из наших постов. Но из всех event id, которые встречаются в журналах событий, необходимо остановить свое внимание на нескольких критических важных. На каких именно – решать каждому. Однако Рэнди Франклин Смит предлагает сосредоточить внимание на 10 важных событиях безопасности в Windows.
Контроллеры доменов
Event ID — (Категория) — Описание 1) 675 или 4771 (Аудит событий входа в систему) Событие 675/4771 на контроллере домена указывает на неудачную попытку войти через Kerberos на рабочей станции с доменной учетной записью. Обычно причиной этого является несоответствующий пароль, но код ошибки указывает, почему именно аутентификация была неудачной. Таблица кодов ошибок Kerberos приведена ниже. 2) 676, или Failed 672 или 4768(Аудит событий входа в систему) Событие 676/4768 логгируется для других типов неудачной аутентификации. Таблица кодов Kerberos приведена ниже. ВНИМАНИЕ: В Windows 2003 Server событие отказа записывается как 672 вместо 676. 3) 681 или Failed 680 или 4776(Аудит событий входа в систему) Событие 681/4776 на контроллере домена указывает на неудачную попытку входа в систему через NTLM с доменной учетной записью. Код ошибки указывает, почему именно аутентификация была неудачной. Коды ошибок NTLM приведены ниже. ВНИМАНИЕ: В Windows 2003 Server событие отказа записывается как 680 вместо 681. 4) 642 или 4738 (Аудит управления учетными записями) Событие 642/4738 указывает на изменения в указанной учетной записи, такие как сброс пароля или активация деактивированной до этого учетной записи. Описание события уточняется в соответствие с типом изменения. 5) 632 или 4728; 636 или 4732; 660 или 4756(Аудит управления учетными записями) Все три события указывают на то, что указанный пользователь был добавлен в определенную группу. Обозначены Глобальная (Global), Локальная (Local) и Общая (Universal) соответственно для каждого ID. 6) 624 или 4720 (Аудит управления учетными записями) Была создана новая учетная запись пользователя 7) 644 или 4740(Аудит управления учетными записями) Учетная запись указанного пользователя была заблокирована после нескольких попыток входа 517 или 1102(Аудит системных событий) Указанный пользователь очистил журнал безопасности
Вход и выход из системы (Logon/Logoff)
Event Id — Описание528 или 4624 — Успешный вход в систему529 или 4625 — Отказ входа в систему – Неизвестное имя пользователя или неверный пароль 530 или 4625 Отказ входа в систему – Вход в систему не был осуществлен в течение обозначенного периода времени531 или 4625 — Отказ входа в систему – Учетная запись временно деактивирована 532 или 4625 — Отказ входа в систему – Срок использования указанной учетной записи истек533 или 4625 — Отказ входа в систему – Пользователю не разрешается осуществлять вход в систему на данном компьютере 534 или 4625 или 5461 — Отказ входа в систему – Пользователь не был разрешен запрашиваемый тип входа на данном компьютере535 или 4625 — Отказ входа в систему – Срок действия пароля указанной учетной записи истек539 или 4625 — Отказ входа в систему – Учетная запись заблокирована540 или 4624 — Успешный сетевой вход в систему (Только Windows 2000, XP, 2003)
Типы входов в систему (Logon Types)
Тип входа в систему — Описание2 — Интерактивный (вход с клавиатуры или экрана системы)3 — Сетевой (например, подключение к общей папке на этом компьютере из любого места в сети или IIS вход — Никогда не заходил 528 на Windows Server 2000 и выше. См. событие 540)4 — Пакет (batch) (например, запланированная задача)5 — Служба (Запуск службы)7 — Разблокировка (например, необслуживаемая рабочая станция с защищенным паролем скринсейвером) 8 — NetworkCleartext (Вход с полномочиями (credentials), отправленными в виде простого текст. Часто обозначает вход в IIS с “базовой аутентификацией”) 9 — NewCredentials10 — RemoteInteractive (Терминальные службы, Удаленный рабочий стол или удаленный помощник) 11 — CachedInteractive (вход с кешированными доменными полномочиями, например, вход на рабочую станцию, которая находится не в сети)
Коды отказов Kerberos
Код ошибки — Причина6 — Имя пользователя не существует12 — Ограничение рабочей машины; ограничение времени входа в систему18 — Учетная запись деактивирована, заблокирована или истек срок ее действия23 — Истек срок действия пароля пользователя24 — Предварительная аутентификация не удалась; обычно причиной является неверный пароль32 — Истек срок действия заявки. Это нормальное событие, которое логгируется учетными записями компьютеров37 — Время на рабочей машины давно не синхронизировалось со временем на контроллере домена
Коды ошибок NTLM
Код ошибки (десятичная система) — Код ошибки (16-ричная система) — Описание 3221225572 — C0000064 — Такого имени пользователя не существует 3221225578 — C000006A — Верное имя пользователя, но неверный пароль 3221226036 — C0000234 — Учетная запись пользователя заблокирована 3221225586 — C0000072 — Учетная запись деактивирована 3221225583 — C000006F — Пользователь пытается войти в систему вне обозначенного периода времени (рабочего времени) 3221225584 — C0000070 — Ограничение рабочей станции 3221225875 — C0000193 — Истек срок действия учетной записи 3221225585 — C0000071 — Истек срок действия пароля 3221226020 — C0000224 — Пользователь должен поменять пароль при следующем входе в систему Еще раз продублируем ссылку на скачивание документа на сайте Рэнди Франклина Смита www.ultimatewindowssecurity.com/securitylog/quickref/Default.aspx. Нужно будет заполнить небольшую форму, чтобы получить к нему доступ.P.S. Хотите полностью автоматизировать работу с журналами событий? Попробуйте новую версию NetWrix Event Log Manager 4.0, которая осуществляет сбор и архивирование журналов событий, строит отчеты и генерирует оповещения в режиме реального времени. Программа собирает данные с многочисленных компьютеров сети, предупреждает Вас о критических событиях и централизованно хранит данные обо всех событиях в сжатом формате для удобства анализа архивных данных журналов. Доступна бесплатная версия программы для 10 контроллеров доменов и 100 компьютеров. Используемые источники:
- https://gamesqa.ru/kompyutery/0x80041003-10007/
- https://www.q2w3.ru/2011/03/24/3365/
- https://habr.com/post/148501/