Доступ к данным о производительности в скрипте
Скрипты WMI могут обращаться к предустановленным классам счетчиков производительности WMI на локальном компьютере или удаленно. Хотя скрипты могут получать данные из нерасчисленных классов, таких как Win32_PerfRawData_PerfOS_Memory или форматированные классы, Win32_PerfFormattedData_PerfOS_Memory, форматированные классы данных могут быть проще в использовании.
Для мониторинга данных производительности с помощью классов счетчиков производительности требуется средство обновления. Используйте объект SWbemRefresher для хранения одного или нескольких объектов производительности для обновления или обновления одного объекта с помощью вызова SWbemObjectEx.Refresh . Дополнительные сведения см. в статье Обновление данных WMI в скриптах.
Задав для свойства SWbemRefresher.AutoReconnect значение TRUE, WMI автоматически повторно подключается к удаленному поставщику, если подключение разорвано, поэтому вам не нужно проверка состояние подключения.
Как показано в следующем примере кода скрипта, необходимо выполнить начальный вызов обновления, чтобы получить начальное значение обновляемого объекта. Последующие вызовы обновления затем содержат данные.
Примечание
Если скрипт обращается к данным счетчика производительности WMI с удаленного компьютера, он может выполняться только под текущей учетной записью пользователя, вошедшего в систему. WMI не поддерживает вызов SWbemLocator.ConnectServer , который передает разные учетные данные пользователя. Таким образом, учетная запись, вызывающая удаленный компьютер, уже должна иметь соответствующие привилегии на этом компьютере.
В следующем примере кода скрипта показано, как использовать объект SWbemRefresher для обновления данных в объектах счетчиков производительности. Дополнительные сведения об использовании счетчиков производительности в инструментарии WMI см. в разделе Доступ к предварительно установленным классам производительности WMI.
' Get raw and cooked data performance counter instances for the
" wscript process running this script
set RawProc = GetObject("winmgmts:Win32_PerfRawdata_Perfproc_process.name='wscript'")
set CookedProc = GetObject("winmgmts:Win32_Perfformatteddata_Perfproc_process.name='wscript'")
' Display the same property in raw and cooked form in a loop
for I = 1 to 6
Wscript.Echo "wscript process raw PageFaultsPerSec = & RawProc.PageFaultsPerSec _
& " cooked PageFaultsPerSec= " & CookedProc.PageFaultsPerSec
' Wait 2 seconds
Wscript.Sleep 2000
' Refresh the object
RawProc.Refresh_
CookedProc.Refresh_
next
Пример
В следующем примере кода скрипта показано, что необходимо выполнить начальный вызов обновления, чтобы получить начальное значение для обновленного объекта. Последующие вызовы обновления затем содержат данные.
В следующем примере кода скрипта показано, как использовать объект SWbemRefresher для обновления данных в объектах счетчиков производительности. Дополнительные сведения об использовании счетчиков производительности в инструментарии WMI см. в разделе Доступ к предварительно установленным классам производительности WMI.
' Get raw and cooked data performance counter instances for the
" wscript process running this script
set RawProc = GetObject("winmgmts:" _
& "Win32_PerfRawdata_Perfproc_process." _
& "name='wscript'")
set CookedProc = GetObject("winmgmts:" _
& "Win32_Perfformatteddata_Perfproc_process." _
& "name='wscript'")
' Display the same property in raw and cooked form in a loop
for I = 1 to 6
Wscript.Echo "wscript process raw PageFaultsPerSec = " _
& RawProc.PageFaultsPerSec _
& " cooked PageFaultsPerSec= " _
& CookedProc.PageFaultsPerSec
' Wait 2 seconds
Wscript.Sleep 2000
' Refresh the object
RawProc.Refresh_
CookedProc.Refresh_
next
Связанные темы