存取腳本中的效能數據
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
相關主題