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:39] 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 25: Line 25:
  
  
-Нормально работающая машина+Нормально работающая машина:
  
 ;#; ;#;
Line 31: Line 31:
 ;#; ;#;
  
 +=== WMI soft reset ===
 +
 +1. В первую очередь проверим целостность компонентов WMI. 
 +
 +   winmgmt /verifyrepository
 +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.1744025969.txt.gz · Last modified: 2025/04/07 11:39 by jp