Поделиться через


Доступ к данным о производительности в скрипте

Скрипты 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

Классы счетчиков производительности

Задачи WMI: мониторинг производительности

Мониторинг данных производительности