Как поправить работу WMI на сервере
Итак, чтобы проверить, что у Вас на сервере работает WMI
следует со своей рабочей станции через консоль командной строки инициализировать wmi
запрос через утилиту wmic
. Просто вот случай у меня, есть мониторинг, который опрашивает Windows
системы и если что не так на основании триггеров выводит алерт на экран. Но по неизвестным причинам пару серверов на Windows Server 2008 R2 Std
(выступают в роли серверов с ролью терминального сервера) перестали опрашиваться.
Мои действия:
Проверяю:
1234567 | C:\Users\olloa>wmic /node:”srv-ts” os get version, name Узел: srv-ts ОШИБКА Описание: Недопустимый класс |
А если зайти на сам сервер по RDP
и выполнить запрос: — он успешно выполняется.
12345 | C:\Users\olloa>wmic os get version, name Name Version Microsoft Windows Server 2008 R2 Standard |C:\Windows|\Device\Harddisk0\Partition2 6.1.7601 |
В данном случае на лицо проблема с WMI
, я знаю практически два решения, которые в этом случае мне помогали:
Вариант №1:
В командной строке с правами администратора
12345 | C:\Windows\system32>net stop Winmgmt C:\Windows\system32>net start Winmgmt C:\Windows\system32>powershell -command get-wmiobject -list -computername localhost |
если вывод есть, то все в порядке, но все равно может не заработать и со своей административной станции снять информации не удастся. В этом случае поможет «Вариант №2:
«Вариант №2:
(Перерегистрацию библиотек и рекомпиляция файлов расширения свойств объектов (Managed Object Format, MOF
) и языковых состовляющих этих файлов (MFL
):)
12345678910111213141516171819202122232425262728293031 | @echo off rem пункт 1 sc config winmgmt start= disabled net stop winmgmt rem пункт 2 cd %windir%\system32\wbem for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s rem пункт 3 wmiprvse /regserver winmgmt /regserver rem пункт 4 sc config winmgmt start= auto net start winmgmt rem пункт 5 for /f %%s in (‘dir /b *.mof’) do mofcomp %%s for /f %%s in (‘dir /b *.mfl’) do mofcomp %%s |
И после того, как данный скрипт отработает, извлечение информации со своей рабочей станции происходит без проблем:
12345 | C:\Users\olloa>wmic /node:”sr-ts” os get version, name Name Version Майкрософт Ознакомительная версия Windows Server 2012 R2 Standard|C:\Windows|\Device\Harddisk0\Partition2 6.3.9600 |
А из этого следует, что и мониторинг будет работать – и он заработал. Вот так вот каждая задача на работе — это практический опыт. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.