Уверен, что каждый хоть раз сталкивался с проблемами с WMI. - Не устанавливается SCCM или SCOM агент. - Не работает стороннее ПО. - Ошибки в системных журналах связанные с источником WMI. - При запуске собственного скрипта и пр Всегда нужно иметь бекап WMI. Чтобы выполнить архивирование или восстановление хранилища WMI:
1. Откройте консоль элемента управления WMI: в меню Пуск выберите пункт Выполнить, введите команду 2. wmimgmt.msc и нажмите кнопку ОК.
3. В дереве консоли щелкните правой кнопкой Управляющий элемент WMI и выберите Свойства. 4. Перейдите на вкладку Архивация или восстановление.
5.Нажмите кнопку Архивировать или Восстановить. Дополнительная информация Для выполнения этой процедуры необходимо быть членом группы «Администраторы» на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы «Администраторы домена». По соображениям безопасности для выполнения этой процедуры рекомендуется использовать команду Запуск от имени. Чтобы сохранить файл архива в папке %Windir%\System32\Wbem\Repository, необходимо иметь права Администратора локального компьютера. В противном случае файл можно сохранить в папке «Документы» для профиля учетной записи. При выборе команды Архивировать для архивирования хранилища вручную резервную копию можно сохранить в файл с определенным именем, а впоследствии восстановить базу данных с помощью этого сохраненного файла. Данный подход удобен, если необходимо сохранить определенную конфигурацию классов. Можно также запустить из командной строки команду Winmgmt и восстановить базу данных из сохраненного файла. Для получения дополнительных сведений об использовании команды Winmgmt в меню Пуск выберите пункт Выполнить и введите winmgmt /? Восстановление поврежденного WMI. В большинстве случаев "
Восстановление WMI
”, выполняется: Остановка службы и удаление папки C:\Windows\System32\Wbem\Repository Если первый метод не помог то приходится прибегнуть к утилите WMIDIAG.
1. Восстановление wmi: Вводим команду rundll32 wbemupgd, UpgradeRepository
и проверяем результат в файле журнала %windir%/system32/wbem/logs/setup.log Rundll32 wbemupgd, CheckWMISetup Rundll32 wbemupgd, RepairWMISetup 2. Регистрация компонент: cd /d %windir%/system32/wbem for %i in (*.dll) do RegSvr32 -s %i for %i in (*.exe) do %i /RegServer 4. Синхронизация WMI-счетчиков производительности: winmgmt /clearadap winmgmt /resyncperf 5. Перекомпиляция mof-файлов: cd /d %windir%/system32/wbem for /r %i in (*.mof *.mfl) do mofcomp %i Скажу сразу что автоматизация данного процесса доступна в виде скрипта, но использовать ее стоит только после полной уверенности что без этого не обойтись.
Копируем представленный ниже скрипт и запускаем его на удаленном ПК. @echo off cd /d %windir%/system32/wbem net stop winmgmt /y winmgmt /kill winmgmt /unregserver winmgmt /regserver winmgmt /resyncperf if exist Rep_bak rd Rep_bak /s /q rename Repository Rep_bak for %i in (*.dll) do RegSvr32 -s %i for %i in (*.mof,*.mfl) do Mofcomp %i net start winmgmt Более "жестокий вариант”. %windir%\system32\wbem\winmgmt /clearadap %windir%\system32\wbem\winmgmt /kill %windir%\system32\wbem\winmgmt /unregserver %windir%\system32\wbem\winmgmt /reserver %windir%\system32\wbem\winmgmt /resyncperf net stop winmgmt /y if exist %windir%\system32\wbem\repository.old rmdir /s /q %windir%\system32\wbem\repository.old rename %windir%\system32\wbem\repository %windir%\system32\wbem\repository.old regsvr32 /s %systemroot%\system32\scecli.dll regsvr32 /s %systemroot%\system32\userenv.dll mofcomp %windir%\system32\wbem\cimwin32.mof mofcomp %windir%\system32\wbem\cimwin32.mfl mofcomp %windir%\system32\wbem\rsop.mof mofcomp %windir%\system32\wbem\rsop.mfl for /f %s in ('dir /b /s %windir%\system32\wbem\*.dll') do regsvr32 /s %s for /f %s in ('dir /b /s %windir%\system32\wbem\*.mof') do mofcomp %s for /f %s in ('dir /b %windir%\system32\wbem\*.mfl') do mofcomp %s net start winmgmt %windir%\system32\wbem\wmiprvse /regserver
|