Данные счетчика производительности представлены в 2 местах: Win32_PerfRawData * и Win32_PerfFormattedData *. Первый содержит необработанные данные, последний содержит производную статистику и является тем, что вам нужно.
То, что вы обычно видите в perfmon (например), это данные Win32_PerfFormattedData *.
Попробуйте это:
Set objWMI = GetObject("winmgmts://./root\cimv2")
set objRefresher = CreateObject("WbemScripting.Swbemrefresher")
Set objInterfaces = objRefresher.AddEnum(objWMI, _
"Win32_PerfFormattedData_Tcpip_NetworkInterface").ObjectSet
While (True)
objRefresher.Refresh
For each RefreshItem in objRefresher
For each objInstance in RefreshItem.ObjectSet
WScript.Echo objInstance.Name & ";" _
& objInstance.BytesReceivedPersec & ";" _
& objInstance.BytesSentPersec
Next
Next
Wscript.Echo
Wscript.Sleep 1000
Wend
Опыт показывает, что измерение за данную секунду довольно бесполезно, если вы не собираете метрику каждую секунду.
Если вам нужна минимальная пропускная способность, вы можете получить ее самостоятельно из необработанных данных, взяв 2 образца (вы должны сделать это в Windows 2000 в любом случае)
См. Раздел Windows 2000, если это имеет больше смысла.
Производная статистика в Windows 2000
Здесь есть отличная статья Создайте свой собственный поставщик форматированных данных производительности
Если вы хотите собрать больше статистической информации за более длительный интервал выборки
John