2011-12-19 16 views
5

我有以下.VBS脚本,它可以工作,但它只返回最高±100(97)行数据。我如何获得完整列表?如何从WMI中获取超过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 

回答

4

随着一点点的谷歌搜索我发现约尔嫩后(网上搜索说,他是在一个MSMQ大师),The MSMQ WMI Provider。其中他指出,MSMQ性能计数器有一个限制,它们只提供“计算机中前97个队列(本地和外出队列)”。

在同一篇文章中,他提供了一个链接,指向他开发的新WMI提供程序,以克服该限制以及其他一些限制,以及联系信息的电子邮件地址。该文章已有三年历史,但该文件仍可供下载。

1

来完成你在找什么,和有关MS答案通过Daryn后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次通过,每次可以放入其自己的/ EACH循环将回显列表填充回给用户。