SCOM & SQL Server — Operations Manager failed to run a WMI query (HRESULT: 0x80041010 Invalid class)

imageПо одному из серверов с установленным SQL Server 2008 стали получать оповещения со SCOM о невозможности обращения к объектам WMI относящимся к SQL Server примерно следующего содержания

Alert: Operations Manager failed to run a WMI query
Source: Server.holding.com
Path: Server.holding.com
Description: Сбой перечисления объектов
Запрос: ‘SELECT ServiceName, StartName, DisplayName FROM SqlService WHERE ServiceName=»SQLAgent$RTCLOCAL»‘
HRESULT: 0x80041010
Подробные сведения: Invalid class
Это затронуло один или несколько рабочих процессов.
Имя рабочего процесса: Microsoft.SQLServer.2008.AgentDiscovery
Имя экземпляра: RTCLOCAL

Попробуем решить проблему с помощью ручной регистрацией WMI-классов SQL Server выполнив на проблемном сервере команду:

mofcomp "C:\Program Files (x86)\Microsoft SQL Server\100\Shared\sqlmgmproviderxpsp2up.mof"

image

Чтобы проверить результат, сначала выясним доступные именные пространства WMI SQL Server. например с помощью PowerShell:

Get-WMIObject –ComputerName 'Server.holding.com' -NameSpace root\Microsoft\SQLServer –Class '__NAMESPACE' | Select Name

В нашем случае результат получился таким:

Name
----
ServerEvents
ComputerManagement10

Теперь, например с помощью утилиты wbemtest, подключимся к WMI-пространству root\Microsoft\SqlServer\ComputerManagement10 и выполним перечисление всех доступных классов, чтобы убедиться что класс SqlService присутствует…

image

Либо опять же с помощью PS выполним запрос к этому классу:

Get-WMIObject –ComputerName 'Server' -NameSpace root\Microsoft\SqlServer\ComputerManagement10 -class SqlService 

Ну и окончательной проверкой будет попытка выполнить WMI запрос который ранее не мог быть выполнен механизмами обнаружения SCOM

image

Если запрос без ошибок вернёт WMI объект, то полагаю, можно считать что проблема решена.

Добавить комментарий