スクリプトでのパフォーマンス データへのアクセス

WMI スクリプトは、ローカル コンピューターまたはリモートで、プレインストールされている WMI パフォーマンス カウンター クラスにアクセスできます。 スクリプトは、Win32_PerfRawData_PerfOS_Memory などの計算されていないクラス、または書式設定されたクラス、Win32_PerfFormattedData_PerfOS_Memory からデータを取得できますが、書式設定されたデータ クラスを使用する方が簡単です。

パフォーマンス カウンター クラスを使用してパフォーマンス データを監視するには、"リフレッシャー" を使用する必要があります。 SWbemRefresher オブジェクトを使用して更新用に 1 つ以上のパフォーマンス オブジェクトを格納するか、SWbemObjectEx.Refresh 呼び出しによって 1 つのオブジェクトを更新します。 詳細については、「スクリプトでの 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 タスク: パフォーマンスの監視

パフォーマンス データの監視