чиним_wmi
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
чиним_wmi [2025/04/07 11:38] – jp | чиним_wmi [2025/04/07 11:56] (current) – jp | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Чиним WMI ===== | ===== Чиним WMI ===== | ||
- | Если в нашем домене GPO применяются с использованием фильтра - иногда можно обнаружить ошибку при их выполнении. Моделирование с использованием инструмента // | + | Если в нашем домене GPO применяются с использованием фильтра |
| | ||
Line 16: | Line 16: | ||
;#; | ;#; | ||
- | На проблемной машине мы скорее всего обнаружим ошибки классов WMI, в то время как на нормально работающем компьютере | + | На проблемной машине мы скорее всего обнаружим ошибки классов WMI, в то время как на нормально работающем компьютере |
Проблемная машина: | Проблемная машина: | ||
Line 24: | Line 24: | ||
;#; | ;#; | ||
+ | |||
+ | Нормально работающая машина: | ||
+ | |||
+ | ;#; | ||
+ | {{: | ||
+ | ;#; | ||
+ | |||
+ | === WMI soft reset === | ||
+ | |||
+ | 1. В первую очередь проверим целостность компонентов WMI. | ||
+ | |||
+ | | ||
+ | 2. Если команда рапортует о каких-либо проблемах - мы можем попробовать мягкий сброс WMI следующей командой, | ||
+ | |||
+ | | ||
+ | net stop Winmgmt | ||
+ | net start Winmgmt | ||
+ | :!: Иногда обе команды возвращают одно и то же: //База данных WMI согласована// | ||
+ | |||
+ | 3. Если описанный выше способ не помог - можно попробовать следующий cmd-скрипт: | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | < | ||
+ | sc config winmgmt start= disabled | ||
+ | net stop winmgmt | ||
+ | cd %windir%\system32\wbem | ||
+ | for /f %s in ('dir /b *.dll' | ||
+ | wmiprvse /regserver | ||
+ | sc config winmgmt start= auto | ||
+ | net start winmgmt | ||
+ | for /f %s in ('dir /b *.mof ^| findstr /V /I " | ||
+ | for /f %s in ('dir /b *.mfl ^| findstr /V /I " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | В случае, | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | < | ||
+ | sc config winmgmt start= disabled | ||
+ | net stop winmgmt | ||
+ | cd %windir%\SysWOW64\wbem | ||
+ | for /f %s in ('dir /b *.dll' | ||
+ | wmiprvse /regserver | ||
+ | sc config winmgmt start= auto | ||
+ | net start winmgmt | ||
+ | for /f %s in ('dir /b *.mof ^| findstr /V /I " | ||
+ | for /f %s in ('dir /b *.mfl ^| findstr /V /I " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | :!: Если по каким-либо причинам он не отрабатывает через cmd-файл - можно выполнить каждую команду по отдельности. | ||
+ | |||
+ | :!: После выполнения скрипта необходимо перезагрузиться и проверить что с WMI через // | ||
+ | |||
+ | === WMI hard reset === | ||
+ | |||
+ | Если софт-ресет WMI нам не помог - переходим к hard reset. | ||
+ | |||
+ | :!: ВНИМАНИЕ: | ||
+ | |||
+ | 1. Пробуем выполнить команду и перезагрузить службу: | ||
+ | | ||
+ | net stop Winmgmt | ||
+ | net start Winmgmt | ||
+ | 2. Если и это не помогло, | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | < | ||
+ | net stop winmgmt | ||
+ | cd %windir%\system32\wbem | ||
+ | winmgmt / | ||
+ | winmgmt /resyncperf | ||
+ | if exist Repos_bakup rd Repos_bakup /s /q | ||
+ | rename Repository Repos_bakup | ||
+ | regsvr32 /s %systemroot%\system32\scecli.dll | ||
+ | regsvr32 /s %systemroot%\system32\userenv.dll | ||
+ | for /f %s in ('dir /b *.dll' | ||
+ | for /f %s in ('dir /b *.mof ^| findstr /V /I " | ||
+ | for /f %s in ('dir /b *.mfl ^| findstr /V /I " | ||
+ | sc config winmgmt start= auto | ||
+ | net start winmgmt | ||
+ | wmiprvse /regserver | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Для 64-х битной системы необходимо также перекомпилировать mof-файлы в папке: // | ||
+ | |||
+ | После выполнения сприпта снова перезагружаемся и проверяем состояние WMI. | ||
+ | |||
+ | {{tag> |
чиним_wmi.1744025881.txt.gz · Last modified: 2025/04/07 11:38 by jp