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_KeyMaxLen (256)、 DisplayName ("クラス名")

インスタンスの作成で使用されるクラスまたはサブクラスの名前。 クラスの他のキー プロパティと共に使用する場合、このプロパティを使用すると、クラスとそのサブクラスのすべてのインスタンスを一意に識別できます。

このプロパティは、 CIM_Processから継承されます。

CreationDate

データ型: datetime

アクセスの種類: 読み取り専用

修飾子: 修正済みDisplayName ("CreationDate")

プロセスの実行が開始される日付。

このプロパティは、 CIM_Processから継承されます。

CSCreationClassName

データ型: string

アクセスの種類: 読み取り専用

修飾子: 伝達 ( "CIM_OperatingSystemCSCreationClassName")、 CIM_KeyMaxLen (256)、 DisplayName ("Computer System Class Name")

スコープ コンピューター システムの作成クラス名。

このプロパティは、 CIM_Processから継承されます。

CSName

データ型: string

アクセスの種類: 読み取り専用

修飾子: 伝達 ( "CIM_OperatingSystemCSName")、 CIM_KeyMaxLen (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

アクセスの種類: 読み取り専用

修飾子: KeyMaxLen (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

データ型: uint64

アクセスの種類: 読み取り専用

修飾子: オーバーライド ("KernelModeTime")、 単位 ("100 ナノ秒")

カーネル モードの時間 (ミリ秒)。 この情報が使用できない場合は、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_OperatingSystemCreationClassName")、 CIM_KeyMaxLen (256)、 DisplayName ("オペレーティング システム クラス名")

スコープ オペレーティング システムの作成クラス名。

このプロパティは、 CIM_Processから継承されます。

OSName

データ型: string

アクセスの種類: 読み取り専用

修飾子: 伝達 ( "CIM_OperatingSystemName")、 CIM_KeyMaxLen (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

データ型: uint64

アクセスの種類: 読み取り専用

修飾子: オーバーライド ("UserModeTime")、 単位 ("100 ナノ秒")

ユーザー モードの時間 (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
CIMWin32.mof
[DLL]
CIMWin32.dll

こちらもご覧ください

CIM_Process

オペレーティング システム クラス

WMI タスク: プロセス