Acessando dados de desempenho no script

Os scripts WMI podem acessar as classes de contador de desempenho WMI pré-instaladas, no computador local ou remotamente. Embora os scripts possam obter dados de classes não calculadas, como Win32_PerfRawData_PerfOS_Memory ou classes formatadas, Win32_PerfFormattedData_PerfOS_Memory, as classes de dados formatadas podem ser mais fáceis de usar.

O monitoramento de dados de desempenho com as classes do contador de desempenho requer o uso de um atualizador. Use o objeto SWbemRefresher para armazenar um ou mais objetos de desempenho para atualizar ou atualizar um único objeto pela chamada SWbemObjectEx.Refresh . Para obter mais informações, consulte Atualizar dados WMI em scripts.

Ao definir a propriedade SWbemRefresher.AutoReconnect como TRUE, o WMI se reconectará automaticamente a um provedor remoto se a conexão for interrompida para que você não precise verificar o status da conexão.

Conforme mostrado no script de exemplo de código de script a seguir, você deve fazer uma chamada de atualização inicial para obter um valor inicial para o objeto que você está atualizando. Em seguida, as chamadas de atualização subsequentes contêm dados.

Observação

Quando um script está acessando dados do contador de desempenho WMI de um computador remoto, o script só pode ser executado na conta de usuário atual conectada. O WMI não dá suporte a uma chamada SWbemLocator.ConnectServer que passa em credenciais de usuário diferentes. Portanto, a conta que chama o computador remoto já deve ter os privilégios apropriados nesse computador.

 

O exemplo de código de script a seguir mostra como usar um objeto SWbemRefresher para atualizar os dados em objetos de contador de desempenho. Para obter mais informações sobre como usar contadores de desempenho no WMI, consulte Acessando classes de desempenho pré-instaladas do 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

Exemplo

O exemplo de código de script a seguir mostra que você deve fazer uma chamada de atualização inicial para obter um valor inicial para o objeto atualizado. Em seguida, as chamadas de atualização subsequentes contêm dados.

O exemplo de código de script a seguir mostra como usar um objeto SWbemRefresher para atualizar os dados em objetos de contador de desempenho. Para obter mais informações sobre como usar contadores de desempenho no WMI, consulte Acessando classes de desempenho pré-instaladas do 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

Classes do Contador de Desempenho

Tarefas do WMI: Monitoramento de Desempenho

Monitoramento de dados de desempenho