2013-08-22 92 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

這不回答這個問題.. –