Я ищу простой способ контролировать очереди RabbitMQ из SCOM. В частности, я хочу получать уведомления, когда конкретная очередь (которую мы используем для «мертвых писем») не пуста.
RabbitMQ имеет веб-API RESTful (HTTP API управления RabbitMQ), который возвращает желаемые данные; он поддерживает только JSON. Я уже обернул этот вызов в библиотеке .NET. Я написал сценарий PowerShell для взаимодействия между этим и SCOM, но наш сетевой администратор не может заставить его работать. Он предпочел бы решение VBScript.
Я могу открыть библиотеку .NET для COM и вызвать ее из VBScript. Это кажется абсурдно сложным. Есть способ попроще?
Есть ли причина, по которой ваш сетевой администратор просто не вызывает ваш сценарий PowerShell из VBScript? Я знаю, что это не помогает решить эту абсурдную сложность, но, возможно, это самое простое решение. Скажите ему написать собственный монитор, содержащий этот простой фрагмент vbs:
Set objShell = CreateObject("WScript.Shell")
strPoSHCmd = "powershell.exe -noprofile -command C:\path\to\script.ps1"
objShell.Run strPoSHCmd
Отредактируйте C:\path\to\script.ps1
в соответствии с вашими потребностями. У вас также может быть vbscript, возвращающий значения из PowerShell (предположим, что ваш скрипт PS возвращает значение) в SCOM, создав MOM.ScriptAPI propertyBag, например:
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Set objShell = CreateObject("WScript.Shell")
strPoSHCmd = "powershell.exe -noprofile -command C:\path\to\script.ps1"
PSReturn = objShell.Run strPoSHCmd
Call oBag.AddValue("Output",PSReturn)
Call oAPI.Return(oBag)