在脚本中访问性能数据
WMI 脚本可以访问本地计算机上或远程安装的 WMI 性能计数器类。 虽然脚本可以从未计算的类(如 Win32_PerfRawData_PerfOS_Memory或格式化类)获取数据, Win32_PerfFormattedData_PerfOS_Memory,但格式化的数据类更易于使用。
使用性能计数器类监视性能数据需要使用 刷新器。 使用 SWbemRefresher 对象存储一个或多个性能对象,以便通过 SWbemObjectEx.Refresh 调用刷新或刷新单个对象。 有关详细信息,请参阅 在脚本中刷新 WMI 数据。
通过将 SWbemRefresher.AutoReconnect 属性设置为 TRUE,如果连接断开,WMI 会自动重新连接到远程提供程序,这样就不需要检查连接状态。
如以下脚本代码示例脚本所示,必须进行初始刷新调用,以获取要刷新的对象的初始值。 随后的刷新调用将包含数据。
注意
当脚本从远程计算机访问 WMI 性能计数器数据时,该脚本只能在当前登录用户帐户下运行。 WMI 不支持传入不同用户凭据 的 SWbemLocator.ConnectServer 调用。 因此,调用远程计算机的帐户必须具有该计算机上的相应权限。
以下脚本代码示例演示如何使用 SWbemRefresher 对象更新性能计数器对象中的数据。 有关在 WMI 中使用性能计数器的详细信息,请参阅 访问 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
示例
以下脚本代码示例显示,必须进行初始刷新调用才能获取已刷新对象的起始值。 随后的刷新调用将包含数据。
以下脚本代码示例演示如何使用 SWbemRefresher 对象更新性能计数器对象中的数据。 有关在 WMI 中使用性能计数器的详细信息,请参阅 访问 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
相关主题