WMI查询以计算MSMQ毒性队列中的消息数

时间:2013-08-22 01:00:34

标签: vbscript wmi msmq

我可以查询Win32_PerfFormattedData_msmq_MSMQQueue WMI对象以获取MSMQ队列上的消息计数,如下所示,但是这将返回队列中消息的累积计数及其子队列(例如,毒药和重试)。理想情况下,我希望仅在毒性队列上获得一些消息。

使用WMI可以吗?

Dim Locator
Set Locator = CreateObject("WbemScripting.SWbemLocator")
Dim objs
Set Service = Locator.ConnectServer(".", "root\cimv2")
Set objs = Service.ExecQuery("SELECT MessagesinQueue " &_
                 "FROM Win32_PerfFormattedData_msmq_MSMQQueue " &_ 
                 "WHERE Name LIKE '%\\private$\\myqueue'")

For Each object In objs
    WScript.Echo "Name: " & object.Name
    WScript.Echo "MessageCount: " & object.MessagesInQueue
Next

给定docs子队列,上面的结果是有意义的,因为子队列只是主物理队列的逻辑分区,但是我可以查询任何其他WMI对象或属性来识别有害消息吗?

1 个答案:

答案 0 :(得分:0)

使用" SELECT MessagesinJournalQueue"如果你想查询期刊消息。 日记队列不是一个单独的队列。