我正在寻找一种简单的方法来监视来自SCOM的RabbitMQ队列。 特别是,我希望在某个特定队列(我们用作“死信”的队列)不是空的时候被通知。
RabbitMQ有一个REST风格的Web API(RabbitMQpipe理HTTP API),它将返回所需的数据; 它只支持JSON。 我已经把这个调用包装在.NET库中了。 我已经编写了一个PowerShell脚本来连接它和SCOM,但是我们的networkingpipe理员却无法使它工作。 他更喜欢VBScript解决scheme。
我可以将.NET库暴露给COM,并从VBScript调用它。 这似乎很荒谬。 有一个更简单的方法吗?
任何原因您的networkingpipe理员不只是从VBScript调用您的PowerShell脚本? 我知道这无助于荒谬的复杂性,但它可能是最简单的解决scheme。 告诉他写一个包含这个简单的vbs的定制显示器:
Set objShell = CreateObject("WScript.Shell") strPoSHCmd = "powershell.exe -noprofile -command C:\path\to\script.ps1" objShell.Run strPoSHCmd
编辑C:\path\to\script.ps1以满足您的需求。 你也可以通过创build一个MOM.ScriptAPI属性包来让vbscript从PowerShell返回值(假设你的PS脚本返回一个值)到SCOM中,像这样:
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)