存取腳本中的效能數據

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 工作:效能監控

監控性能數據