Acessar dados de desempenho no script

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

Monitorar dados de desempenho com as classes de contador de desempenho requer o uso de um refresher. Use o objeto SWbemRefresher para armazenar um ou mais objetos de desempenho para atualização ou atualize um único objeto por meio da chamada de SWbemObjectEx.Refresh. Para obter mais informações, confira Atualizar dados do 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 conferir o status da conexão.

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

Observação

Quando um script está acessando dados do contador de desempenho do WMI por meio de um computador remoto, o script só pode ser executado na conta de usuário atualmente conectada. O WMI não dá suporte a uma chamada de SWbemLocator.ConnectServer que passa 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 script de código 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, fonfira Acessar 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 script de código a seguir mostra que você deve fazer uma chamada de atualização inicial para obter um valor inicial para o objeto atualizado. As chamadas de atualização subsequentes contêm dados.

O exemplo de script de código 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, fonfira Acessar 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

Monitorar dados de desempenho