Accesso ai dati sulle prestazioni nello script

Gli script WMI possono accedere alle classi del contatore delle prestazioni WMI preinstallate, nel computer locale o in remoto. Anche se gli script possono ottenere dati da classi non calcolate, ad esempio Win32_PerfRawData_PerfOS_Memory o classi formattate, Win32_PerfFormattedData_PerfOS_Memory, le classi di dati formattate possono essere più facili da usare.

Il monitoraggio dei dati sulle prestazioni con le classi dei contatori delle prestazioni richiede l'uso di un aggiornamento. Utilizzare l'oggetto SWbemRefresher per archiviare uno o più oggetti prestazioni per aggiornare o aggiornare un singolo oggetto tramite la chiamata SWbemObjectEx.Refresh . Per altre informazioni, vedere Aggiornamento dei dati WMI negli script.

Impostando la proprietà SWbemRefresher.AutoReconnect su TRUE, WMI si riconnette automaticamente a un provider remoto se la connessione viene interrotta in modo che non sia necessario verificare lo stato della connessione.

Come illustrato nello script di esempio di codice di script seguente, è necessario effettuare una chiamata di aggiornamento iniziale per ottenere un valore iniziale per l'oggetto da aggiornare. Le chiamate di aggiornamento successive contengono quindi dati.

Nota

Quando uno script accede ai dati del contatore delle prestazioni WMI da un computer remoto, lo script può essere eseguito solo con l'account utente connesso corrente. WMI non supporta una chiamata SWbemLocator.ConnectServer che passa credenziali utente diverse. Pertanto, l'account che chiama il computer remoto deve avere già i privilegi appropriati nel computer.

 

Nell'esempio di codice di script seguente viene illustrato come utilizzare un oggetto SWbemRefresher per aggiornare i dati negli oggetti contatori delle prestazioni. Per altre informazioni sull'uso dei contatori delle prestazioni in WMI, vedere Accesso alle classi di prestazioni preinstallate 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

Esempio

L'esempio di codice di script seguente mostra che è necessario effettuare una chiamata di aggiornamento iniziale per ottenere un valore iniziale per l'oggetto aggiornato. Le chiamate di aggiornamento successive contengono quindi dati.

Nell'esempio di codice di script seguente viene illustrato come utilizzare un oggetto SWbemRefresher per aggiornare i dati negli oggetti contatori delle prestazioni. Per altre informazioni sull'uso dei contatori delle prestazioni in WMI, vedere Accesso alle classi di prestazioni preinstallate 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

Classi di contatori delle prestazioni

Attività WMI: Monitoraggio delle prestazioni

Monitoraggio dei dati sulle prestazioni