User Tools

Site Tools


чиним_wmi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
чиним_wmi [2025/04/07 11:40] jpчиним_wmi [2025/04/07 11:56] (current) jp
Line 1: Line 1:
 ===== Чиним WMI ===== ===== Чиним WMI =====
  
-Если в нашем домене GPO применяются с использованием фильтра - иногда можно обнаружить ошибку при их выполнении. Моделирование с использованием инструмента //Результаты групповой политики// покажет такую ошибку: +Если в нашем домене GPO применяются с использованием фильтра WMI - иногда можно обнаружить ошибку при их выполнении. Моделирование с использованием инструмента //Результаты групповой политики// покажет такую ошибку: 
  
    Неправильный фильтр WMI    Неправильный фильтр WMI
Line 16: Line 16:
 ;#; ;#;
  
-На проблемной машине мы скорее всего обнаружим ошибки классов WMI, в то время как на нормально работающем компьютере  - увидим их значение. +На проблемной машине мы скорее всего обнаружим ошибки классов WMI, в то время как на нормально работающем компьютере  - увидим их содержание. 
  
 Проблемная машина: Проблемная машина:
Line 31: Line 31:
 ;#; ;#;
  
-=== Решение ===+=== WMI soft reset ===
  
 1. В первую очередь проверим целостность компонентов WMI.  1. В первую очередь проверим целостность компонентов WMI. 
  
    winmgmt /verifyrepository    winmgmt /verifyrepository
-2. +2. Если команда рапортует о каких-либо проблемах - мы можем попробовать мягкий сброс WMI следующей командой, выполнив последующую перезагрузку службы //Инструментарий управления Windows//: 
 + 
 +   Winmgmt /salvagerepository 
 +   net stop Winmgmt 
 +   net start Winmgmt    
 +:!: Иногда обе команды возвращают одно и то же: //База данных WMI согласована//. В этом случае переходим к п.3 и пробуем исправлять другими методами.  
 + 
 +3. Если описанный выше способ не помог - можно попробовать следующий cmd-скрипт: 
 + 
 +<WRAP prewrap> 
 +<code> 
 +sc config winmgmt start= disabled 
 +net stop winmgmt 
 +cd %windir%\system32\wbem 
 +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 ^| findstr /V /I "uninstall.mof"') do mofcomp %s 
 +for /f %s in ('dir /b *.mfl ^| findstr /V /I "uninstall.mfl"') do mofcomp %s 
 +</code> 
 +</WRAP> 
 + 
 +В случае, если мы работаем в 64-х битной системе - скрипт необходимо выполнить и для папки //%windir%\SysWOW64\wbem//.  
 + 
 +<WRAP prewrap> 
 +<code> 
 +sc config winmgmt start= disabled 
 +net stop winmgmt 
 +cd %windir%\SysWOW64\wbem 
 +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 ^| findstr /V /I "uninstall.mof"') do mofcomp %s 
 +for /f %s in ('dir /b *.mfl ^| findstr /V /I "uninstall.mfl"') do mofcomp %s 
 +</code> 
 +</WRAP> 
 + 
 +:!: Если по каким-либо причинам он не отрабатывает через cmd-файл - можно выполнить каждую команду по отдельности.  
 + 
 +:!: После выполнения скрипта необходимо перезагрузиться и проверить что с WMI через //compmgmt.msc//.  
 + 
 +=== WMI hard reset === 
 + 
 +Если софт-ресет WMI нам не помог - переходим к hard reset. 
 + 
 +:!: ВНИМАНИЕ: hard reset может приводить к потенциальным проблемам, т.к. WMI здесь сбрасывается полностью, до состояния чистой установки //Windows//
 + 
 +1. Пробуем выполнить команду и перезагрузить службу:  
 +   Winmgmt /resetrepository 
 +   net stop Winmgmt 
 +   net start Winmgmt  
 +2. Если и это не помогло, выполняем скрипт: 
 + 
 +<WRAP prewrap> 
 +<code> 
 +net stop winmgmt 
 +cd %windir%\system32\wbem 
 +winmgmt /resetrepository 
 +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') do regsvr32 /s %s 
 +for /f %s in ('dir /b *.mof ^| findstr /V /I "uninstall.mof"') do mofcomp %s 
 +for /f %s in ('dir /b *.mfl ^| findstr /V /I "uninstall.mfl"') do mofcomp %s 
 +sc config winmgmt start= auto 
 +net start winmgmt 
 +wmiprvse /regserver 
 +</code> 
 +</WRAP> 
 + 
 +Для 64-х битной системы необходимо также перекомпилировать mof-файлы в папке: //%windir%\sysWOW64\wbem//
 + 
 +После выполнения сприпта снова перезагружаемся и проверяем состояние WMI.  
 + 
 +{{tag>ActiveDirectory Microsoft Windows GPO WMI}}
чиним_wmi.1744026038.txt.gz · Last modified: 2025/04/07 11:40 by jp