Win32_Process クラス
Win32_ProcessWMI クラスは、オペレーティング システム上のプロセスを表します。
次の構文はマネージド オブジェクト フォーマット (MOF) のコードを単純化したもので、すべての継承されたプロパティを含みます。
注意
Windows 内のプロセスとスレッドに関する一般的な説明については、「 プロセスとスレッド」のトピックを参照してください。
構文
[Dynamic, Provider("CIMWin32"), SupportsCreate, CreateBy("Create"), SupportsDelete, DeleteBy("DeleteInstance"), UUID("{8502C4DC-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Processes"), AMENDMENT]
class Win32_Process : CIM_Process
{
string CreationClassName;
string Caption;
string CommandLine;
datetime CreationDate;
string CSCreationClassName;
string CSName;
string Description;
string ExecutablePath;
uint16 ExecutionState;
string Handle;
uint32 HandleCount;
datetime InstallDate;
uint64 KernelModeTime;
uint32 MaximumWorkingSetSize;
uint32 MinimumWorkingSetSize;
string Name;
string OSCreationClassName;
string OSName;
uint64 OtherOperationCount;
uint64 OtherTransferCount;
uint32 PageFaults;
uint32 PageFileUsage;
uint32 ParentProcessId;
uint32 PeakPageFileUsage;
uint64 PeakVirtualSize;
uint32 PeakWorkingSetSize;
uint32 Priority;
uint64 PrivatePageCount;
uint32 ProcessId;
uint32 QuotaNonPagedPoolUsage;
uint32 QuotaPagedPoolUsage;
uint32 QuotaPeakNonPagedPoolUsage;
uint32 QuotaPeakPagedPoolUsage;
uint64 ReadOperationCount;
uint64 ReadTransferCount;
uint32 SessionId;
string Status;
datetime TerminationDate;
uint32 ThreadCount;
uint64 UserModeTime;
uint64 VirtualSize;
string WindowsVersion;
uint64 WorkingSetSize;
uint64 WriteOperationCount;
uint64 WriteTransferCount;
};
メンバー
Win32_Process クラスには、次の種類のメンバーがあります。
メソッド
Win32_Process クラスには、これらのメソッドがあります。
メソッド | 説明 |
---|---|
AttachDebugger | プロセスの現在登録されているデバッガーを起動します。 |
作成 | 新しいプロセスを作成します。 |
GetAvailableVirtualSize | プロセスで使用できる空き仮想アドレス空間の現在のサイズをバイト単位で取得します。 Windows Server 2012、Windows 8、Windows 7、Windows Server 2008、および Windows Vista: このメソッドは、R2 Windows 8.1およびWindows Server 2012する前にサポートされていません。 |
GetOwner | プロセスが実行されているユーザー名とドメイン名を取得します。 |
GetOwnerSid | プロセスの所有者のセキュリティ識別子 (SID) を取得します。 |
SetPriority | プロセスの実行優先度を変更します。 |
Terminate | プロセスとそのすべてのスレッドを終了します。 |
プロパティ
Win32_Process クラスには、これらのプロパティがあります。
-
Caption
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: MaxLen (64)、 DisplayName ("Caption")
オブジェクトの簡単な説明 (1 行の文字列)。
このプロパティは 、CIM_ManagedSystemElementから継承されます。
-
-
CommandLine
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: DisplayName ("コマンド ラインからプロセスを開始")
特定のプロセスを開始するために使用されるコマンド ライン (該当する場合)。
-
-
CreationClassName
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: CIM_Key、 MaxLen (256)、 DisplayName ("クラス名")
インスタンスの作成で使用されるクラスまたはサブクラスの名前。 クラスの他のキー プロパティと共に使用する場合、このプロパティを使用すると、クラスとそのサブクラスのすべてのインスタンスを一意に識別できます。
このプロパティは、 CIM_Processから継承されます。
-
-
CreationDate
-
-
データ型: datetime
-
アクセスの種類: 読み取り専用
-
修飾子: 修正済み、 DisplayName ("CreationDate")
プロセスの実行が開始される日付。
このプロパティは、 CIM_Processから継承されます。
-
-
CSCreationClassName
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: 伝達 ( "CIM_OperatingSystem。CSCreationClassName")、 CIM_Key、 MaxLen (256)、 DisplayName ("Computer System Class Name")
スコープ コンピューター システムの作成クラス名。
このプロパティは、 CIM_Processから継承されます。
-
-
CSName
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: 伝達 ( "CIM_OperatingSystem。CSName")、 CIM_Key、 MaxLen (256)、 DisplayName ("コンピューター システム名")
スコープ コンピューター システムの名前。
このプロパティは、 CIM_Processから継承されます。
-
-
説明
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: DisplayName ("Description")
オブジェクトの説明。
このプロパティは 、CIM_ManagedSystemElementから継承されます。
-
-
ExecutablePath
-
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: Privileges ("SeDebugPrivilege")、 MappingStrings ("Win32API|ツール ヘルプ構造|MODULEENTRY32|szExePath"), DisplayName ("実行可能パス")
プロセスの実行可能ファイルへのパス。
例: "C:\Windows\System\Explorer.Exe"
-
-
ExecutionState
-
-
データ型: uint16
-
アクセスの種類: 読み取り専用
-
修飾子: DisplayName ("実行状態")
プロセスの現在の動作状態。
このプロパティは、 CIM_Processから継承されます。
-
-
不明 (0)
-
Unknown
-
その他 (1)
-
その他
-
準備完了 (2)
-
実行中 (3)
-
ブロック (4)
-
Blocked
-
中断ブロック (5)
-
中断準備完了 (6)
-
終了 ( 7)
-
停止 ( 8)
-
拡大中 (9)
Handle
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: Key、 MaxLen (256)、 DisplayName ("Handle")
プロセス識別子。
このプロパティは、 CIM_Processから継承されます。
HandleCount
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|HandleCount")、 DisplayName ("Handle Count")
プロセスが所有する開いているハンドルの合計数。 HandleCount は、このプロセスの各スレッドによって現在開かれているハンドルの合計です。 ハンドルは、システム リソースを調べたり変更したりするために使用されます。 各ハンドルには、内部的に維持されるテーブル内のエントリがあります。 エントリには、リソースの種類を識別するためのリソースとデータのアドレスが含まれます。
InstallDate
-
データ型: datetime
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("MIF.DMTF|ComponentID|001.5"), DisplayName ("インストール日")
オブジェクトがインストールされた日付。 オブジェクトは、このプロパティに値を書き込まずにインストールできます。
このプロパティは、 CIM_ManagedSystemElementから継承されます。
KernelModeTime
カーネル モードの時間 (ミリ秒)。 この情報が使用できない場合は、0 (ゼロ) の値を使用します。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
MaximumWorkingSetSize
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: Privileges ("SeDebugPrivilege")、 MappingStrings ("Win32|Winnt。H|QUOTA_LIMITS|MaximumWorkingSetSize")、 DisplayName ("Maximum Working Set Size")、 Units ("KBs")
プロセスのワーキング セットの最大サイズ。 プロセスのワーキング セットは、物理 RAM 内のプロセスに表示されるメモリ ページのセットです。 これらのページは常駐しており、ページ フォールトをトリガーせずにアプリケーションで使用できます。
例: 1413120
MinimumWorkingSetSize
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: Privileges ("SeDebugPrivilege")、 MappingStrings ("Win32|Winnt。H|QUOTA_LIMITS|MinimumWorkingSetSize")、 DisplayName ("最小ワーキング セット サイズ")、 単位 ("キロバイト")
プロセスの最小ワーキング セット サイズ。 プロセスのワーキング セットは、物理 RAM 内のプロセスに表示されるメモリ ページのセットです。 これらのページは常駐しており、ページ フォールトをトリガーすることなくアプリケーションから使用できます。
例: 20480
Name
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: DisplayName ("Name")
プロセスを担当する実行可能ファイルの名前。タスク マネージャーの Image Name プロパティと同じです。
サブクラスによって継承された場合、 プロパティをオーバーライドしてキー プロパティにすることができます。 名前はアプリケーション自体にハードコーディングされ、ファイル名の変更による影響を受けません。 たとえば、Calc.exeの名前を変更した場合でも、タスク マネージャーとプロセス名を取得する WMI スクリプトにCalc.exe名が表示されます。
このプロパティは、 CIM_ManagedSystemElementから継承されます。
OSCreationClassName
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: 伝達 ( "CIM_OperatingSystem。CreationClassName")、 CIM_Key、 MaxLen (256)、 DisplayName ("オペレーティング システム クラス名")
スコープ オペレーティング システムの作成クラス名。
このプロパティは、 CIM_Processから継承されます。
OSName
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: 伝達 ( "CIM_OperatingSystem。Name")、 CIM_Key、 MaxLen (256)、 DisplayName ("オペレーティング システム名")
スコープ オペレーティング システムの名前。
このプロパティは、 CIM_Processから継承されます。
OtherOperationCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|SYSTEM_PROCESS_INFORMATION|OtherOperationCount")、 DisplayName ("Other Operation Count")
読み取り操作または書き込み操作ではない、実行された I/O 操作の数。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
OtherTransferCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|SYSTEM_PROCESS_INFORMATION|OtherTransferCount")、 DisplayName ("Other Transfer Count")、 Units ("bytes")
読み取り操作または書き込み操作ではない操作中に転送されるデータの量。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
PageFaults
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PageFaultCount")、 DisplayName ("ページ フォールトの数")
プロセスによって生成されるページ フォールトの数。
例: 10
PageFileUsage
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PagefileUsage")、 DisplayName ("Page File Usage")、 Units ("KBs")
プロセスが現在使用しているページ ファイル領域の量。 この値は、TaskMgr.exeの VMSize 値と一致します。
例: 102435
ParentProcessId
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|InheritedFromUniqueProcessId"), DisplayName ("Parent Process Id")
プロセスを作成するプロセスの一意識別子。 プロセス識別子番号は再利用されるため、プロセスはそのプロセスの有効期間中のみ識別されます。 ParentProcessId で識別されたプロセスが終了する可能性があるため、ParentProcessId が実行中のプロセスを参照していない可能性があります。 また、ParentProcessId がプロセス識別子を再利用するプロセスを誤って参照している可能性もあります。 CreationDate プロパティを使用すると、このWin32_Process インスタンスによって表されるプロセスが作成された後に、指定した親が作成されたかどうかを確認できます。
PeakPageFileUsage
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PeakPagefileUsage")、 DisplayName ("Peak Page File Usage")、 Units ("KBs")
プロセスの有効期間中に使用されるページ ファイル領域の最大量。
例: 102367
PeakVirtualSize
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PeakVirtualSize")、 DisplayName ("Peak Virual Address Space Usage")、 Units ("bytes")
プロセスが一度に使用する最大仮想アドレス空間。 仮想アドレス空間を使用することは、必ずしもディスクページまたはメインメモリページの対応する使用を意味するとは限りません。 ただし、仮想空間は有限であり、使用しすぎると、プロセスでライブラリを読み込めなくなることがあります。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
PeakWorkingSetSize
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PeakWorkingSetSize")、 DisplayName ("Peak Working Set Size")、 Units ("KBs")
プロセスのワーキング セットのピーク サイズ。
例: 1413120
優先順位
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: オーバーライド ("Priority")、 MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|BasePriority")、 DisplayName ("Priority")
オペレーティング システム内のプロセスの優先順位のスケジュール設定。 値が大きいほど、プロセスが受信する優先度が高くなります。 優先度の値の範囲は 0 (ゼロ) で、優先度が最も低い場合は 31 で、最も優先度が高くなります。
例: 7
PrivatePageCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PrivatePageCount")、 DisplayName ("Private Page Count")
このWin32_Process インスタンスによって表されるプロセスにのみアクセスできる、割り当てられている現在 の ページ数。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
ProcessId
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|PROCESS_INFORMATION|dwProcessId "), DisplayName ("Process Id")
あるプロセスを別のプロセスと区別するために使用される数値識別子。 ProcessID は、プロセスの作成時間からプロセス終了まで有効です。 終了時に、同じ数値識別子を新しいプロセスに適用できます。
つまり、ProcessID のみを使用して特定のプロセスを監視することはできません。 たとえば、アプリケーションの ProcessID が 7 の場合、失敗します。 新しいプロセスが開始されると、新しいプロセスに ProcessID 7 を割り当てることができます。 指定された ProcessID のみをチェックしたスクリプトは、元のアプリケーションがまだ実行されていたと考えるのに"だまされる" 可能性があります。
QuotaNonPagedPoolUsage
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|QuotaNonPagedPoolUsage")、 DisplayName ("非ページ プール使用量クォータ")
プロセスの非ページ プール使用量のクォータ量。
例: 15
QuotaPagedPoolUsage
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|QuotaPagedPoolUsage") 、DisplayName ("Paged Pool Usage Quota")
プロセスのページ プール使用量のクォータ量。
例: 22
QuotaPeakNonPagedPoolUsage
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|QuotaPeakNonPagedPoolUsage")、 DisplayName ("Peak Non-Paged Pool Usage Quota")
プロセスの非ページ プール使用量のピーク クォータ量。
例: 31
QuotaPeakPagedPoolUsage
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|QuotaPeakPagedPoolUsage")、 DisplayName ("Peak Paged Pool Usage Quota")
プロセスのページ プール使用量のピーク クォータ量。
例: 31
ReadOperationCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|SYSTEM_PROCESS_INFORMATION|ReadOperationCount")、 DisplayName ("読み取り操作数")
実行された読み取り操作の数。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
ReadTransferCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|SYSTEM_PROCESS_INFORMATION|ReadTransferCount")、 DisplayName ("Read Transfer Count")、 Units ("bytes")
読み取られたデータの量。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
SessionId
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|SessionId") 、DisplayName ("Session Id")
セッションの作成時にオペレーティング システムによって生成される一意識別子。 セッションは、ログオンから特定のシステムからのログオフまでの 1 期間に及びます。
状態
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: MaxLen (10)、 DisplayName ("Status")
このプロパティは実装されておらず、このクラスのどのインスタンスにも設定されません。 常に NULL です。
このプロパティは、 CIM_ManagedSystemElementから継承されます。
次の値があります。
OK ("OK")
エラー ("Error")
機能低下 ("Degraded")
不明 ("不明")
Pred Fail ("Pred Fail")
開始 ("開始")
停止中 ("停止中")
サービス ("Service")
ストレス ( "ストレス")
NonRecover ("NonRecover")
連絡先なし ("連絡先なし")
Lost Comm ("Lost Comm")
TerminationDate
-
データ型: datetime
-
アクセスの種類: 読み取り専用
-
修飾子: DisplayName ("終了日")
プロセスが停止または終了しました。 終了時刻を取得するには、プロセスのハンドルを開いたままにする必要があります。 それ以外の場合、このプロパティは NULL を返します。
このプロパティは、 CIM_Processから継承されます。
ThreadCount
-
データ型: uint32
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|NumberOfThreads"), DisplayName ("Thread Count")
プロセス内のアクティブなスレッドの数。 命令はプロセッサでの基本的な実行単位であり、スレッドは命令を実行するオブジェクトです。 実行中の各プロセスには、少なくとも 1 つのスレッドがあります。
UserModeTime
ユーザー モードの時間 (100 ナノ秒単位)。 この情報が使用できない場合は、0 (ゼロ) の値を使用します。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
VirtualSize
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|VirtualSize")、 DisplayName ("Virtual Address Space Usage")、 Units ("bytes")
プロセスによって実際に使用される物理メモリまたは仮想メモリではなく、プロセスが使用している仮想アドレス空間の現在のサイズ。 仮想アドレス空間を使用することは、必ずしもディスクページまたはメインメモリページの対応する使用を意味するとは限りません。 仮想空間は有限であり、 を使用しすぎると、プロセスでライブラリを読み込めなくなることがあります。 この値は、Perfmon.exeに表示される値と一致します。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
WindowsVersion
-
データ型: string
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセス関数とスレッド関数|GetProcessVersion")、 DisplayName ("Windows バージョン")
プロセスが実行されている Windows のバージョン。
例: 4.0
WorkingSetSize
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: DisplayName ("Working Set Size"), Units ("bytes")
ページ ベースのメモリ管理を使用するオペレーティング システムの場合、プロセスを効率的に実行するために必要なメモリの量 (バイト単位)。 システムに十分なメモリ (ワーキング セット サイズ未満) がない場合は、スラッシングが発生します。 ワーキング セットのサイズがわからない場合は、 NULL または 0 (ゼロ) を使用します。 ワーキング セット データが提供されている場合は、情報を監視して、プロセスのメモリ要件の変化を把握できます。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
このプロパティは、 CIM_Processから継承されます。
WriteOperationCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|SYSTEM_PROCESS_INFORMATION|WriteOperationCount")、 DisplayName ("Write Operation Count")
実行された書き込み操作の数。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
WriteTransferCount
-
データ型: uint64
-
アクセスの種類: 読み取り専用
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|SYSTEM_PROCESS_INFORMATION|WriteTransferCount")、 DisplayName ("Write Transfer Count")、 Units ("bytes")
書き込まれたデータの量。
スクリプトでの uint64 値の使用の詳細については、「 WMI でのスクリプト作成」を参照してください。
注釈
Win32_Process クラスは、CIM_Processから派生します。 このクラスを使用する呼び出し元プロセスには、レジストリが存在するコンピューターに対する SE_RESTORE_NAME 特権が必要です。 詳細については、「 特権操作の実行」を参照してください。
概要
プロセスは、コンピューター上で発生するほぼすべての処理の基礎となります。 実際には、ほとんどのコンピュータの問題の根本原因はプロセスにトレースすることができます。たとえば、コンピューター上で実行されているプロセスが多すぎる (および有限のリソース セットを競合している) 場合や、1 つのプロセスでリソースの共有よりも多くを使用している可能性があります。 これらの要因により、コンピューター上で実行されているプロセスにwatchを近づけておく必要があります。 プロセス監視(プロセス管理のメインアクティビティ)を使用すると、コンピューターが実際に何を行うか、コンピューターが実行するアプリケーション、およびそれらのアプリケーションがコンピューティング環境の変更によってどのように影響を受けるかを判断できます。
プロセスの監視
定期的にプロセスを監視することで、コンピューターがピーク効率で実行され、想定どおりに指定されたタスクを実行できるようになります。 たとえば、プロセスを監視することで、応答を停止したアプリケーションの直ちに通知を受け取り、そのプロセスを終了する手順を実行できます。 さらに、プロセス監視を使用すると、問題が発生する前に特定できます。 たとえば、プロセスで使用されるメモリの量を繰り返し確認することで、メモリ リークを特定できます。 その後、エラーが発生したアプリケーションが使用可能なすべてのメモリを使用し、コンピューターを停止させる前に、プロセスを停止できます。
プロセス監視は、アップグレードとメンテナンスの計画的な停止によって引き起こされる中断を最小限に抑えるのにも役立ちます。 たとえば、クライアント コンピューターで実行されているデータベース アプリケーションの状態を確認することで、ソフトウェアをアップグレードするためにデータベースをオフラインにした場合の影響を判断できます。
プロセスの可用性の監視。 プロセスが使用可能な時間の割合を測定します。 可用性は通常、プロセスがまだ実行されているかどうかを報告する単純なプローブを使用して監視されます。 各プローブの結果を追跡することで、プロセスの可用性を計算できます。 たとえば、100 回プローブされ、95 回応答するプロセスの可用性は 95% です。 この種類の監視は、通常、データベース、メール プログラム、および常に実行されることが予想されるその他のアプリケーション用に予約されています。 1 日に数回定期的に開始および停止されるワープロ プログラム、スプレッドシート、またはその他のアプリケーションには適していません。
Win32_ProcessStartup クラスのインスタンスを作成して、プロセスを構成できます。
Win32_PerfFormattedData_PerfProc_Process クラスと WMI リフレッシャー オブジェクト (SWbemRefresher など) を使用して、プロセスのパフォーマンスを監視できます。 詳細については、「 パフォーマンス データの監視」を参照してください。
例
TechNet ギャラリー の「WMI クラスのプロパティの一覧表示 」PowerShell コード サンプルでは、 Win32_Process クラスについて説明し、結果を Excel 形式で出力します。
複数のサーバーで実行中のプロセスを終了すると、1 台または複数のコンピューターで実行されているプロセスが終了します。
「例: プロバイダー メソッドの呼び出し」トピックでは、C++ を使用して Win32_Process を呼び出してプロセスを作成します。
可用性は、プロセス監視の最も簡単な形式です。この方法では、プロセスが実行されていることを確認するだけです。 プロセスの可用性を監視するときは、通常、コンピューターで実行されているプロセスの一覧を取得し、特定のプロセスがまだアクティブであることを確認します。 プロセスがアクティブな場合は、使用可能と見なされます。 プロセスがアクティブでない場合は、使用できません。 次の VBScript サンプルでは、コンピューターで実行されているプロセスの一覧を確認し、Database.exe プロセスが見つからない場合に通知を発行することで、プロセスの可用性を監視します。
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Database.exe'")
If colProcesses.Count = 0 Then
Wscript.Echo "Database.exe is not running."
Else
Wscript.Echo "Database.exe is running."
End If
次の VBScript サンプルでは、一時的なイベント コンシューマーを使用したプロセスの作成を監視します。
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent " _
& "WITHIN 10 WHERE TargetInstance ISA 'Win32_Process'")
i = 0
Do While i = 0
Set objLatestProcess = colMonitoredProcesses.NextEvent
Wscript.Echo objLatestProcess.TargetInstance.Name, Now
Loop
次の VBScript は、プロセスのパフォーマンス情報を監視します。
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcessList
Wscript.Echo "Process: " & objProcess.Name
Wscript.Echo "Process ID: " & objProcess.ProcessID
Wscript.Echo "Thread Count: " & objProcess.ThreadCount
Wscript.Echo "Page File Size: " & objProcess.PageFileUsage
Wscript.Echo "Page Faults: " & objProcess.PageFaults
Wscript.Echo "Working Set Size: " & objProcess.WorkingSetSize
Next
次の VBScript コード例は、ローカル コンピューター上の各プロセスの所有者を取得する方法を示しています。 このスクリプトを使用すると、リモート コンピューターからデータを取得できます。たとえば、ターミナル サーバーを実行しているプロセスを持つユーザーを特定するには、最初の行でリモート コンピューターの名前を "." に置き換えます。 また、リモート コンピューターの管理者である必要もあります。
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("select * from win32_process" )
For Each objProcess in colProcesses
If objProcess.GetOwner ( User, Domain ) = 0 Then
Wscript.Echo "Process " & objProcess.Caption & " belongs to " & Domain & "\" & User
Else
Wscript.Echo "Problem " & Rtn & " getting the owner for process " & objProcess.Caption
End If
Next
次の VBScript コード例は、実行中のプロセスに関連付けられているログオン セッションを取得する方法を示しています。 スクリプトが開始される前に、プロセスがNotepad.exe実行されている必要があります。 この例では、Notepad.exeを表す Win32_Process に関連付けられている Win32_LogonSession のインスタンスを検索します。 Win32_SessionProcess は関連付けクラスとして指定されます。 詳細については、「 ASSOCIATORS OF ステートメント」を参照してください。
On error resume next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
ProcessId = objProcess.ProcessId
Set colLogonSessions = objWMIService.ExecQuery("Associators of {Win32_Process='" & ProcessId & "'} " _
& "Where Resultclass = Win32_LogonSession Assocclass = Win32_SessionProcess", "WQL", 48)
If Err <> 0 Then
WScript.Echo "Error on associators query= " & Err.number & " " & Err.Description
WScript.Quit
End If
For Each LogonSession in colLogonSessions
Wscript.Echo " Logon id is " & LogonSession.LogonId
Next
Next
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
Root\CIMV2 |
MOF |
|
[DLL] |
|
こちらもご覧ください