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


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

Скрипты 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 : мониторинг производительности

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