2013-08-22 93 views
1

我可以查询Win32_PerfFormattedData_msmq_MSMQQueue WMI对象来获取MSMQ队列中的消息数,如下所示,但这将返回队列中消息的累积计数,并且它是子队列(如毒药和重试)。理想情况下,我希望仅在毒物队列中计算消息数量。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

如果您想查询日记邮件,请使用“SELECT MessagesinJournalQueue”。日志队列不是一个单独的队列。

+0

这不回答这个问题.. –