Возможно данные инструментария управления windows wmi повреждены

Любой бывалый Windows-админ периодически сталкивается с проблемами в работе службы WMI (Windows Management Instrumentation) и ее компонентах. Наличие проблем в

Любой бывалый 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

служба Windows Management Instrumentation (Winmgmt) работает

Если служба Winmgmt запущена, вы можете проверить работоспособность WMI, обратившись к ней с помощью простого WMI-запроса. Вы можете выполнить wmi запрос из командной строки или из PowerShell. Например, следующая команда выведет список установленных в Windows программ:

wmic product get name,version

Простейшая PowerShell команда для получения информации о версии и билда Windows 10 через WMI может выглядеть так:

get-wmiobject Win32_OperatingSystem

powershell проверка работы wmi командой get-wmiobject

Как вы видите, служба WMI ответила на запрос корректно. Если при выполнении такого WMI-запроса Windows возвращает ошибку, скорее всего сервиса WMI работает некорректно, поврежден WMI репозиторий или есть какие-то другие проблемы.

ошибка Failed to initialize all required WMI classes

В моем случае, например, при открытии свойств 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.

скрипт для исправления ошибок WMI WMIDiag.vbs

Совет. В 64 битных версиях Windows wmidiag нужно запускать так:

c:windowsSystem32cscript.exe wmidiag.vbs

в противном случае появится ошибка:

WMIDiag must be run from native 64-bit environment. It is not supported in Wow64.

WMIDiag 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

winmgmt-verifyrepository - проверка состояния репозитория wmi

Если команда возвращает, что база данных 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

Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в 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

сброс и восстановление хранилища wmi в windows 10

На 64 битной версии Windows нужно также перерегистрировать dll/exe и перекомпилировать mof файлы в каталоге %windir%sysWOW64wbem.

Данный скрипт полностью пересоздает хранилище WMI (старый репозиторий сохраняется в каталог Repos_bakup). После окончания работы скрипта нужно перезагрузить Windows. Затем протестируйте работу службы WMI простым запросом.

Проверьте состояние WMI репозитория. Если ошибки исправлены, команда
winmgmt /verifyrepository
должна вернуть:

WMI repository is consistent

WMI repository is consistent

В этой статье мы собрали основные способы, позволяющие продиагностировать и устранить неполадки службы и репозитория WMI.

Исправление ошибки инструментария управления Windows (WMI) 1083

Могут быть случаи, когда вы пытаетесь открыть службу Windows, такую ​​как инструментарий управления Windows, и ошибка отображается в следующем сообщении.

Ошибка 1083: исполняемая программа, для которой настроен этот сервис, не реализует сервис.

Система может иметь Ошибки WMI, но, кажется, работает правильно большую часть времени. Потому что WMI чаще всего используется для диагностики системы. Текстовый процессор, электронная таблица или программа электронной почты редко зависят от WMI. Вы можете использовать эту процедуру для проверки состояния WMI вашей системы:

  • Щелкните правой кнопкой мыши значок «Мой компьютер» и выберите «Управление». (Вы также можете нажать Пуск, Панель управления, Инструменты администрирования, Управление компьютером.)
  • Щелкните левой кнопкой мыши [+] рядом со Службами и приложениями, чтобы развернуть древовидную структуру.
  • Щелкните левой кнопкой мыши на WMI Control.
  • Теперь щелкните правой кнопкой мыши на том же элементе управления WMI и выберите Свойства.
  • Если WMI работает правильно, вы увидите «Успешное подключение к«.
  • Если WMI неисправен, вы увидите одно или несколько сообщений об ошибках в диалоговом окне.

Обновить:

Теперь мы рекомендуем использовать этот инструмент для вашей ошибки. Кроме того, этот инструмент исправляет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует ваш компьютер для максимальной производительности. Вы можете быстро исправить проблемы с вашим ПК и предотвратить появление других программ с этим программным обеспечением:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

Зарегистрируйте qmgr.dll и qmgrproxy.dll

Внимательно следуйте этим шагам, так как они должны быть правильно введены в командной строке:

  • Нажмите Пуск> Выполнить.
  • Введите тип «cmd
  • Введите «regsvr32 qmgr.dll» в CMD и нажмите Enter.
  • Также введите «regsvr32 qmgrprxy.dll» и нажмите Enter.
  • Выход CMD
  • Затем нажмите Пуск> Выполнить> Введите services.msc и нажмите Enter.
  • В окне «Службы» выделите «Службу Smart Transfer» в фоновом режиме и дважды щелкните ее.
  • На вкладке Общие нажмите Пуск, чтобы запустить службу.

Настройте Services.msc

1. Откройте Services.msc.
2. Откройте свойства сервиса, который вы не хотите запускать.
3. обратите внимание на последнюю запись в конце пути к исполняемому файлу, например C: Windows system32 svchost.exe -k LocalServiceAndNoImpersonation
4. Перейдите к HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Svchost в реестре.
5. На правой панели откройте строку, соответствующую пути к исполняемой записи, затем добавьте точное имя службы.
6. Закройте regedit и перезапустите. Теперь проверьте, запущен ли сервис.
7. Повторите эту операцию для всех служб, которые имеют эту проблему.

Используйте командную строку

Чтобы устранить эту ошибку и восстановить отсутствующие или поврежденные записи реестра, выполните следующие действия:

Запустите сеанс командной строки.
Чтобы отменить регистрацию библиотек производительности службы WMI (также известный как WinMgmt), введите

Чтобы остановить все копии, на которых запущена служба WMI, введите следующую команду

Объявите службу WMI, введя

Зарегистрируйте службу WMI, введя следующее

Зарегистрируйте все библиотеки производительности службы WMI, введя следующее

Если это не поможет, вы можете восстановить или перестроить репозиторий WMI и посмотреть, поможет ли это.

CCNA, веб-разработчик, ПК для устранения неполадок

Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.

Источник

Невозможно открыть свойства сетевых подключений

Ошибки 623 и 624 при настройке сетевых подключений
вопрос к Гуру компов: подскожите что значит ошибка 623 и 624 при настройке сетевых подключений.

Как в Win XP Pro увеличить количество сетевых подключений
Привет. Подскажите, как в Win XP Pro увеличить количество сетевых подключений > 10? на нем общий.

Не могу вывести значок сетевых подключений на панель с пуском
Как мне сделать, что указал в заголовке?) Пропали мониторчики на панели и не могу в инете нигде.

Решение

варианты:
1. вирус «покушал» запрашиваеммые библиотеки
2. вы сами «покушали» запрашиваемые библиотеки
3. вирус перекрыл доступ к этим библиотекам
4. проблема со службами

возникает один вопрос — не баловались ли вы со службами Windows?
с теми, которые находятся по пути: Пуск => Настройка => Панель управления => Администрирование => Службы

рекомендации:
1. обновить вирусную базу, а лучше поставить Nod32 и, обновив его вирусную базу, просканировать компьютер
2. установить Outpost Firewall. после того, как он установится, вы перезагрузитесь, он предложит просканировать компьютер на наличие троянов, бэкдоров и прочей гадости
3. если первые 2 пункта не помогли — запустить восстановление Windows
4. если всё вышеперечисленное не спасло положение, то установить поверх вашего Windows ту же операционную систему (сохраните при этом все программы и настройки)

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление сетевых подключений
Привет Хочу удалить «Локальное подключение» Вот мои подключения: Открыла «Диспетчер.

Отсутствие сетевых подключений
Всем доброго времени суток! Проблема такая: ПК, подключенный к локальной сети, выходит в инет, а.

Вывести список сетевых подключений
Делаю курсач в Dev-C++ (4.9.9.2) столкнулся с такой вот проблемой, вот код проги, она по идее.

Список процессов и их сетевых подключений
Здравствуйте, каким образом можно получить список процессов и их подключений, что-то на подобии: .

Источник

LiveInternetLiveInternet

Рубрики

Ссылки

Метки

Фотоальбом

Поиск по дневнику

Подписка по e-mail

Статистика

Восстановление WMI — ошибка 0x8007050a

Для начала можно рассмотреть варианты ошибки 0x8007050a, а именно где она появляется.

При попытке установить платформу .Net Framework, вылазиет ошибка HRESULT: 0x8007050a:

При попытке запуска самой службы появляется ошибка 1290: 0x50a:

При переходе на вкладку Дополнительно в свойствах сетевого адаптера, выдается ошибка WMI с сообщением:

Windows не удается вывести свойства этого подключения.
Возможно данные инструментария управления Windows (WMI) повреждены.

С свойствах любой службы при переходе на вкладку Зависимости

При запуске команды get-wmiobject Win32_OperatingSystem через Powershell:

При исполнении команды wmic gfe list brief /format:table

При запуске Службы компонентов dcomcnfg.exe

При выполнении некоторых скриптов

При вводе команды gpresult /z

При попытке убить процесс DCOM

При попытке запустить службу SharedAccess (ICS)

При выборе пункта Управляющий элемент WMI в оснастке Управление компьютером

В окне Свойства: Управляющий элемент WMI

Вкладка Зависимости в свойствах всех служб

regsvr32 /i userenv.dll

Приступим к лечению:

  • Проверьте наличие файла $WinMgmt.CFG и папки FS введя команду %windir%System32wbemRepository
    Если отсутствует, то скопируйте с рабочей машины и вставьте.
  • Убедитесь, что в папке System32 отсутствуют копии файлов из папки %windir%System32wbem
    Лишние копии файлов dll в System32 стоит удалить.
  • Выполните батник следующего содержания:

RUNDLL32.EXE C:WINDOWSSYSTEM32WBEMWMISVC.DLL,MoveToShared
pause
RUNDLL32.EXE C:WINDOWSSYSTEM32WBEMWMISVC.DLL,MoveToAlone
pause
sc config WSCSVC start= auto
pause
sc config SHAREDACCESS start= auto
pause
SC.EXE CONFIG WINMGMT START= AUTO
RUNDLL32.EXE C:WINDOWSSYSTEM32WBEMWMISVC.DLL,MoveToShared
pause
RUNDLL32.EXE C:WINDOWSSYSTEM32WBEMWMISVC.DLL,MoveToAlone
pause
NET.EXE STOP WINMGMT
pause
MOVE C:WINDOWSSYSTEM32WBEMRepositoryFS*.* %TEMP%
pause
NET.EXE START WINMGMT
pause
WINMGMT.EXE /CLEARADAP
pause
WINMGMT.EXE /RESYNCPERF
pause

sc config winmgmt start= auto

  • Запустите Управление компьютером-Службы и попробуйте в свойствах службы перейти на вкладку Зависимости

Введите команду regsvr32 /i userenv.dll

Если есть возврат кода, то сделайте твик и добавьте запись в реестр

Windows Registry Editor Version 5.00

После перезагрузки компьютера может в Зависимости выскочить ошибка:
WMI: Недопустимое пространство имен. Пространство имен ‘rootcimv2’ не определено в базе данных WMI.

Это уже лучше, выполните первый батник с командами и дополнительно создайте второй со следующим содержанием:

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

После перезагрузки системы можно попробовать команду regsvr32 /i userenv.dll

Иногда нужно заменить этот файл, взять с резервной копии.

После этого вам нужно будет сделать сброс Групповой политики командой:

secedit /configure /cfg %windir%repairsecsetup.inf /db secsetup.sdb /verbose

secedit /configure /cfg %windir%infdefltbase.inf /db defltbase.sdb /verbose

Введите команду %windir%SYSTEM32wmimgmt.msc и вызовите, в окне через строчку Элемент управления WMI, Свойства. Перейдите на вкладку Ведение журнала.

Можно поставить ведение журнала подробно.

Дальше стоит сохранить данные в архив:

Еще никому не удавалось вернуть к жизни винду при такой ошибке, мне это удалось, чего и вам желаю.

Сюда входят проблемы и функции служб Windows и консолей.

Источник

  • Remove From My Forums
  • Question

  • I get the message when I try to open the sharing tab of any network adapter Windows cannot display the Properties of this connection. The Windows Management Instrumentation (WMI) information might be corrupted. To correct this, use System Restore to restore
    Windows to an earlier time (called a restore point). System Restore is located in the System Tools folder in Accesories. Any help would be appreciated Thanks

Answers

  • Thank for submitting the feedback for Windows Server TP3.

    I cannot repro this issue in a later build and appears to be resolved.

    Regards,

    Steven Graves

    Windows Beta Support Team

    • Marked as answer by

      Thursday, November 5, 2015 11:22 PM

  • Remove From My Forums
  • Question

  • I get the message when I try to open the sharing tab of any network adapter Windows cannot display the Properties of this connection. The Windows Management Instrumentation (WMI) information might be corrupted. To correct this, use System Restore to restore
    Windows to an earlier time (called a restore point). System Restore is located in the System Tools folder in Accesories. Any help would be appreciated Thanks

Answers

  • Thank for submitting the feedback for Windows Server TP3.

    I cannot repro this issue in a later build and appears to be resolved.

    Regards,

    Steven Graves

    Windows Beta Support Team

    • Marked as answer by

      Thursday, November 5, 2015 11:22 PM

Я столкнулся с этой ситуацией на днях: мои студенты тестировали управление системными функциями и две машины в домене (на обеих – Windows 10) стали возвращать ошибки при работе с Windows Management Instrumentation. Основной админ ещё не вышел из отпуска, пришлось вспоминать, что я бывший руководитель Отдела ИТ :)

Сразу отвечу на третий вопрос: без рабочего WMI, на мой взгляд, можно оставлять лишь домашний игровой компьютер, на котором, кроме игр и просмотра видео, больше ничего не делается (разве что дети учатся программировать). В остальных случаях, особенно на корпоративных машинах, тем более в домене, WMI должна работать как часы. Это моё мнение, кто-то может не согласиться.

Теперь о причинах произошедшего: их может быть очень много. Забегая вперед, скажу что на одной машине это произошло из-за того, что на жестком диске закончилось место, а затем был сбой по питанию из-за сломанного ИБП (увы, никто не застрахован; сервера, конечно, защищены от подобного, а обычная рабочая машинка не была). На второй хуже: нефатальный сбой жесткого диска с последующим BSOD. В целом, разобраться с причинами не так уж и важно, главное, выяснить, что причиной не является вирус или попытка взлома. Впрочем, намеренное удаление или случайная порча системных файлов тоже должны быть рассмотрены достаточно пристально.

Восстановление работоспособности WMI следует проводить поэтапно, от щадящих методов к деструктивным. Следует быть готовым к тому, что в самом худшем случае систему придётся переустановить. Не стоит лишний раз напоминать, что большинство команд должно выполняться от имени администратора.

1 этап. Проверка работы сервиса.

Проверяем имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она. Вызываем Службы (в Windows 10 проще всего через Пуск/Средства администрирования/Службы, но я предпочитаю в любой версии Windows, кроме самых старых, напечатать в командной строке services.msc), ищем Инструментарий управления Windows/Windows Management Instrumentation, проверяем, запущена ли она:

введите сюда описание изображения

Если она не запущена, пытаемся запустить, выставим режим запуска в «Автоматически». Если запущена, пытаемся перезапустить (Остановить/запустить). После этого проверяем работоспособность WMI. Проще всего сделать это, выполнив любой WMI-запрос в powershell (напоминаю, что powershell в Windows 10 запускается через Пуск/Windows PowerShell/Windows Power Shell, но проще, на мой взгляд, запустить командную строку с админовскими правами, а в ней уже набрать powershell), например, такой: (вы можете выполнить другой, свой любимый :))

Get-WmiObject -List -ComputerName localhost

Если у вас вылетела портянка объектов, всё в порядке. Если же полезли ошибки, значит, работоспособность не восстановлена, переходим ко второму этапу.

Между делом скажу пару слов об официальной утилите Microsoft WMI Diagnosis. Все почему-то наперебой её рекомендуют, как хороший помощник при восстановлении. Увы, я убил достаточно много времени на анализ результатов действия этой утилиты: скрипт создал кучу лог-файлов, через которые продраться можно, если вы никуда не торопитесь, у вас есть куча времени и полкило пуэра/кофе-машина. В причинах сбоев я разобрался быстрее без неё. Вероятность того, что она может помочь непосредственно в скором восстановлении работы WMI – очень мала.

2 этап. Недеструктивное восстановление

Стоит попытаться вначале выполнить перерегистрацию библиотек и рекомпиляцию файлов расширения свойств объектов (Managed Object Format, MOF) и языковую составляющую этих файлов (MFL). Практически гарантированно сработает, если попытка WMI-запроса у вас вызывала ошибку вида “Ошибка в файле WMI.MOF” или любом другом MOF-файле. Для этого выполним следующие операции:

  1. Остановим службу WMI, обязательно запретив её автостарт
  2. Перерегистрируем все библиотеки в папке Windowssystem32wbem
  3. Перерегистрируем службы WMI и WMI Provider Host
  4. Запускаем службу WMI и разрешаем её автостарт
  5. Рекомпилируем MOF и MFL файлы

Можно собрать всё это в один BAT-файл и запустить:

# пункт 1
sc config winmgmt start= disabled
net stop winmgmt
# пункт 2
cd %windir%system32wbem
for /f %%s in ('dir /b *.dll') do regsvr32 /s %%s
#пункт 3
wmiprvse /regserver
winmgmt /regserver
#пункт 4
sc config winmgmt start= auto
net start winmgmt
#пункт 5
for /f %%s in ('dir /b *.mof') do mofcomp %%s
for /f %%s in ('dir /b *.mfl') do mofcomp %%s

Отмечу, что таким образом я восстановил работу WMI на первой машине. Со второй, увы не получилось. Если у вас не получается, пора переходить к 3му этапу

3 этап. Деструктивное восстановление

Фактически, на 3м этапе мы пересоздаем хранилище WMI, как таковое, которое находится в папке WindowsSystem32WbemRepository и является базой данных, в которой хранятся данные и определения стандартных WMI-классов и статическая информация дополнительных WMI-классов, если они создавались на вашей машине.

Перед операциями проверьте состояние жёсткого диска и файловой системы!!!

Проверяем целостность (На Windows XP и ниже не работает):

winmgmt /verifyrepository

В случае ответа отличного от “База данных WMI согласована”, можно выполнить «мягкое восстановление» командой:

winmgmt /salvagerepository

с последующим перезапуском службы:

net stop Winmgmt
net start Winmgmt

Если мягкое восстановление не помогло, пробуем вернуть хранилище в начальное состояние (последствия: все дополнительные классы WMI, когда-либо зарегистрированные в вашей системе, скорее всего, придётся регистрировать заново):

winmgmt /resetrepository

с последующим рестартом системы. Отмечу, что вторая машина заработала после этого этапа. Последствия были не сильно удручающими, но серьёзными: пришлось переинсталлировать Visual Studio и Delphi Starter, MS Office отказался работать и его пришлось деинсталлировать вручную, удаляя папки, файлы и записи из реестра, с последующей повторной установкой. Также слетели все наши собственные классы WMI.

Но, если и это не помогло, придётся удалять и создавать хранилище заново. Это можно сделать следующим BAT-файлом:

# Остановим службу WMI, обязательно запретив её автостарт
sc config winmgmt start= disabled
net stop winmgmt
# проводим реинициализацию WMI
cd %windir%system32wbem
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
winmgmt /resyncperf
# создаем на всякий случай резервную копию нашего хранилища в папку WMI_VicoNT_Backup
# у вас, разумеется, может быть другое имя папки
if exist WMI_VicoNT_Backup rd WMI_VicoNT_Backup /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
# запускаем службу WMI, заново регистрируем WMI Provider Host
sc config winmgmt start= auto
net start winmgmt
wmiprvse /regserver

Перегружаем компьютер. Если и после этих действий WMI не заработала, путь один – переустановка системы.

Любой бывалый Windows-админ не раз сталкивался с проблемами в работе службы WMI и ее компонентах. Наличие проблем в подсистеме WMI является критичным с точки зрения нормального функционирования системы, поэтому администратору приходится прибегать к тем или иным трюкам, позволяющим восстановить работоспособность WMI.  В этой статье мы опишем достаточно простую методику диагностирования и устранения неполадок в службе WMI.

О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:

  • Ошибки обработки WMI запросов в системных журналах и логах приложений
  • Ошибки GPO, завязанные на WMI ( некорректная работа wmi фильтров политик, и пр.)
  • Ошибки в работе / невозможность установки агентов SCCM/SCOM
  • Ошибки в работе скриптов (vbs или powershell), использующих пространство имен WMI

В первую очередь нужно проверить имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она.

Если служба  присутствует и находится в состоянии Started, рекомендуется протестировать работоспособность WMI, обратившись к ней с помощью простого wmi-запроса. С помощью Powershell, например, это можно сделать так:

get-wmiobject Win32_OperatingSystem

Если при выполнении простейшего WMI-запроса система возвращает ошибку (на скриншоте приведен пример корректного ответа службы WMI), вероятно имеет место некорректное функционирование сервиса WMI или ряда его подсистем, повреждение репозитория WMI или другие проблемы.

Утилита WMIDiag

Для «тонкой» диагностики службы WMI существует официальная утилита Microsoft — WMIDiag (Microsoft WMI Diagnosis). Утилита представляет собой vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:USERS%USERNAME%APPDATALOCALTEMP). Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.1 и включает в себя следующие типы фалов :

  • .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 может дать информацию по исправлению частных ошибок в WMI , но в большинстве случаев процесс это довольно трудоемкий и стоит потраченного времени только при решении инцидентов в критичных системах (как правило, на продуктивных серверах). Для массового сегмента рабочих станций пользователей гораздо проще «бить по площадям» и решать проблему работы WMI более радикально.

Перерегистрация библиотек WMI и перекомпиляция mof файлов

Следующий скрипт представляет собой «мягкий» вариант восстановления работоспособности службы 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

winmgmt /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.

В том случае, если предыдущий способ не помог, придется перейти к более «жесткому» способу восстановления работоспособности службы WMI, заключающегося в пересоздании хранилища.

WMI репозиторий (хранилище) находится в каталоге %windir%System32WbemRepository и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов. В некоторых случаях репозитория WMI может содержать статическую информацию классов. При повреждении репозитория WMI,  в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.

В том случае, если вы подозреваете, что репозиторий WMI поврежден, имейте в виду, что его пересоздание это последняя вещь, к которой нужно прибегнуть только в том случае, если никакие другие операции реанимировать WMI не помогают.

Совет. На практике бывают случаи, когда пересоздание хранилища WMI приводит к проблемам со сторонним софтом. Вызван этот эффект тем, что все записи в базе WMI обнуляются (до состояния чистой системы). Такое ПО, вероятно, придется переустанавливать в режиме восстановления.

В Windows Vista и выше проверить целостность репозитория WMI  можно с помощью команды:

winmgmt /verifyrepository

Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT), стоит попробовать выполнить «мягкое» восстановление репозитория:

Winmgmt /salvagerepository

И перезапустить службу wmi:

net stop Winmgmt
net start Winmgmt

Если описанная выше команда не помогла, выполняем сброс репозитория на начальное состояние (hard reset) так:

Winmgmt /resetrepository

В том случае, если команды Winmgmt /salvagerepository и Winmgmt /resetrepository желаемого эффекта не дали, стоит попробовать выполнить «жесткое» пересоздание базы WMI вручную таким сценарием:

sc config winmgmt start= disabled

net stop winmgmt

cd %windir%system32wbem

winmgmt /kill

winmgmt /unregserver

winmgmt /regserver

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). После окончания работы скрипта компьютер нужно перезагрузить, после чего протестировать работу службы WMI простым запросом.

Понравилась статья? Поделить с друзьями:
  • Возможно вы стали жертвой подделки windows server 2008
  • Возможно вы стали жертвой подделки windows 7 как убрать уведомление
  • Властелин колец под знаменем короля чародея не запускается на windows 10
  • Властелин колец онлайн не запускается на windows 10
  • Властелин колец битва за средиземье изменить разрешение windows 10