Acceso a datos de rendimiento en scripts
Los scripts WMI pueden acceder a las clases de contador de rendimiento de WMI preinstaladas, ya sea en el equipo local o de forma remota. Aunque los scripts pueden obtener datos de clases sin calcular, como Win32_PerfRawData_PerfOS_Memory o clases con formato, Win32_PerfFormattedData_PerfOS_Memory, las clases de datos con formato pueden ser más fáciles de usar.
La supervisión de los datos de rendimiento con las clases de contador de rendimiento requiere el uso de un actualizador. Use el objeto SWbemRefresher para almacenar uno o varios objetos de rendimiento para actualizar, o para actualizar un único objeto mediante la llamada SWbemObjectEx.Refresh. Para obtener más información, consulte Actualizar datos WMI en scripts.
Al establecer la propiedad SWbemRefresher.AutoReconnect en TRUE, WMI vuelve a conectarse automáticamente a un proveedor remoto si la conexión se interrumpe, para que no sea necesario comprobar el estado de la conexión.
Como se muestra en el siguiente script de ejemplo de código de script, debe realizar una llamada de actualización inicial para obtener un valor inicial para el objeto que está actualizando. Las llamadas de actualización posteriores contienen datos.
Nota
Cuando un script accede a los datos del contador de rendimiento de WMI desde un equipo remoto, el script solo se puede ejecutar en la cuenta de usuario que ha iniciado sesión actualmente. WMI no admite una llamada SWbemLocator.ConnectServer que pasa credenciales de usuario diferentes. Por lo tanto, la cuenta que llama al equipo remoto ya debe tener los privilegios adecuados en ese equipo.
En el ejemplo de código de script siguiente se muestra cómo usar un objeto SWbemRefresher para actualizar los datos en objetos de contador de rendimiento. Para obtener más información sobre el uso de contadores de rendimiento en WMI, consulte Acceso a clases de rendimiento preinstaladas de 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
Ejemplo
En el ejemplo de código de script siguiente se muestra que debe realizar una llamada de actualización inicial para obtener un valor inicial para el objeto actualizado. Las llamadas de actualización posteriores contienen datos.
En el ejemplo de código de script siguiente se muestra cómo usar un objeto SWbemRefresher para actualizar los datos en objetos de contador de rendimiento. Para obtener más información sobre el uso de contadores de rendimiento en WMI, consulte Acceso a clases de rendimiento preinstaladas de 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
Temas relacionados