存取腳本中的效能資料

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

效能計數器類別

WMI 工作:效能監視

監視效能資料