我有以下.VBS脚本,它可以工作,但它只返回前100行(97)行的数据。我如何获得完整列表?
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_MSMQ_MSMQQueue",,48)
For Each objItem in colItems
Wscript.Echo objItem.Name & " - " & objItem.MessagesinQueue
Next
答案 0 :(得分:4)
通过一点谷歌搜索,我找到了Yoel Arnon的帖子(网络搜索说他是MSMQ的大师),The MSMQ WMI Provider。在其中他指出 MSMQ性能计数器有一个限制,它们只提供“计算机中的前97个队列(本地和传出队列)”。
在同一篇文章中,他提供了一个指向他开发的新WMI提供商的链接,以便克服该限制以及其他一些限制,以及联系信息的电子邮件地址。该帖子已有三年历史,但该文件仍可供下载。
答案 1 :(得分:1)
要完成你想要的东西,以及Daryn关于MS特别取消97条目后的回答,我会调整你的过程说... 2或3个查询......
您的查询正在寻找
Select * from Win32_PerfFormattedData_MSMQ_MSMQQueue
寻找一些已经填满你的第97个数据的模式,这个模式将小于97 ...例如
Select * from Win32_PerfFormattedData_MSMQ_MSMQQueue
where SomeColumn = 'Some Common Value'
然后用
进行第二次传球Select * from Win32_PerfFormattedData_MSMQ_MSMQQueue
where NOT SomeColumn = 'Some Common Value'
这将帮助您获得最多194个条目...找到另一个“公共”元素并分别将其分为3个传递,每个元素都可以放入其自己的FOR / EACH循环中以将回显列表填充回用户。