1

以下のように WMI オブジェクトにクエリを実行しWin32_PerfFormattedData_msmq_MSMQQueueて、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

サブキューに関するドキュメントを考えると、サブキューはメインの物理キューの単なる論理パーティションであるため、上記の結果は理にかなっていますが、有害なメッセージを特定するために照会できる他の WMI オブジェクトまたは属性はありますか?

4

1 に答える 1