我正在使用WMI来监视Windows Server 2003和Windows Server 2008主机。 我得到了所有我想要的信息,但磁盘I / O性能。
我试过为“AvgDiskQueueLength”查询“Win32_PerfFormattedData_PerfDisk_LogicalDisk”,但我总是得到“没有密钥”的结果。
WMI服务正在两个系统上运行,我可以使用wbemtest连接到它,没有任何错误。
我错过了什么,或者我做错了什么?
AvgDiskQueueLength是Win32_PerfFormattedData_PerfDisk_LogicalDisk类的一个属性。 除非“没有关键”的结果是非常怪异的,否则听起来好像你可能试图错误地访问它。 它应该是简单的财产符号
win32perf.AvgDiskQueueLength
下面的代码应该工作。
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") set objRefresher = CreateObject("WbemScripting.SWbemRefresher") Set colDisks = objRefresher.AddEnum _ (objWMIService, "win32_perfformatteddata_perfdisk_physicaldisk"). _ objectSet objRefresher.Refresh For Each objDisk in colDisks Wscript.Echo "Average Disk Queue Length: " & vbTab & _ objDisk.AvgDiskQueueLength Next
如果您打算进行多个呼叫,则只需要进修部分。 避免一次又一次地执行GetObject代码。
你可能想研究一下平均磁盘队列长度。 我记得那里收集或报道的方式有点儿怪异。 我可能是错的,但是我想我会提到它。