Accès aux données de performances dans le script
Les scripts WMI peuvent accéder aux classes de compteur de performances WMI préinstallées, sur l’ordinateur local ou à distance. Bien que les scripts puissent obtenir des données à partir de classes non calculées, telles que des Win32_PerfRawData_PerfOS_Memory ou des classes formatées, Win32_PerfFormattedData_PerfOS_Memory, les classes de données formatées peuvent être plus faciles à utiliser.
L’analyse des données de performances avec les classes de compteurs de performances nécessite l’utilisation d’un actualiseur. Utilisez l’objet SWbemRefresher pour stocker un ou plusieurs objets de performance pour actualiser ou actualiser un seul objet par l’appel SWbemObjectEx.Refresh. Pour plus d’informations, consultez Actualisation des données WMI dans les scripts.
En affectant la valeur TRUE à la propriété SWbemRefresher.AutoReconnect, WMI se reconnecte automatiquement à un fournisseur distant si la connexion est interrompue, de sorte que vous n’avez pas besoin de vérifier l’état de connexion.
Comme indiqué dans l’exemple de script suivant, vous devez effectuer un appel d’actualisation initial pour obtenir une valeur de départ pour l’objet que vous actualisez. Les appels d’actualisation suivants contiennent ensuite des données.
Notes
Lorsqu’un script accède aux données du compteur de performances WMI à partir d’un ordinateur distant, le script ne peut s’exécuter que sous le compte d’utilisateur connecté actuel. WMI ne prend pas en charge un appel SWbemLocator.ConnectServer qui passe des informations d’identification utilisateur différentes. Par conséquent, le compte appelant l’ordinateur distant doit déjà disposer des privilèges appropriés sur cet ordinateur.
L’exemple de code de script suivant montre comment utiliser un objet SWbemRefresher pour mettre à jour les données dans les objets de compteur de performances. Pour plus d’informations sur l’utilisation des compteurs de performances dans WMI, consultez Accès aux classes de performances préinstallées 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
Exemple
L’exemple de code de script suivant montre que vous devez effectuer un appel d’actualisation initial pour obtenir une valeur de départ pour l’objet actualisé. Les appels d’actualisation suivants contiennent ensuite des données.
L’exemple de code de script suivant montre comment utiliser un objet SWbemRefresher pour mettre à jour les données dans les objets de compteur de performances. Pour plus d’informations sur l’utilisation des compteurs de performances dans WMI, consultez Accès aux classes de performances préinstallées 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
Rubriques connexes