Win32_Process クラス

Win32_ProcessWMI クラスは、オペレーティング システム上のプロセスを表します。

次の構文はマネージド オブジェクト フォーマット (MOF) のコードを単純化したもので、すべての継承されたプロパティを含みます。

Note

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

データ型: 文字列

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

修飾子: MaxLen (64)、 DisplayName ("Caption")

オブジェクトの簡単な説明 (1 行の文字列)。

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

CommandLine

データ型: 文字列

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

修飾子: DisplayName ("コマンド ラインからプロセスを開始する")

必要に応じて、特定のプロセスを開始するために使用されるコマンド ライン。

CreationClassName

データ型: 文字列

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

修飾子: CIM_KeyMaxLen (256)、 DisplayName ("クラス名")

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

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

CreationDate

データ型: datetime

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

修飾子: 固定DisplayName ("CreationDate")

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

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

CSCreationClassName

データ型: 文字列

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

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

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

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

CSName

データ型: 文字列

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

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

スコープ コンピューター システムの名前。

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

説明

データ型: 文字列

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

修飾子: DisplayName ("Description")

オブジェクトの説明。

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

ExecutablePath

データ型: 文字列

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

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

データ型: 文字列

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

修飾子: 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"), Units ("100 nanoseconds")

カーネル モードの時間 (ミリ秒単位)。 この情報を使用できない場合は、0 (ゼロ) の値を使用します。

スクリプトで uint64 値を使用する方法の詳細については、「 WMI でのスクリプト作成」を参照してください。

MaximumWorkingSetSize

データ型: uint32

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

修飾子: Privileges ("SeDebugPrivilege"), MappingStrings ("Win32|WINNT。H|QUOTA_LIMITS|MaximumWorkingSetSize")、 DisplayName ("最大ワーキング セット サイズ")、 単位 ("キロバイト")

プロセスの最大ワーキング セット サイズ。 プロセスのワーキング セットは、物理 RAM 内のプロセスに表示されるメモリ ページのセットです。 これらのページは常駐しており、ページ エラーをトリガーせずにアプリケーションで使用できます。

例: 1413120

MinimumWorkingSetSize

データ型: uint32

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

修飾子: Privileges ("SeDebugPrivilege"), MappingStrings ("Win32|WINNT。H|QUOTA_LIMITS|MinimumWorkingSetSize")、 DisplayName ("最小ワーキング セット サイズ")、 単位 ("キロバイト")

プロセスの最小ワーキング セット サイズ。 プロセスのワーキング セットは、物理 RAM 内のプロセスに表示されるメモリ ページのセットです。 これらのページは常駐しており、ページ フォールトをトリガーすることなくアプリケーションから使用できます。

例: 20480

名前

データ型: 文字列

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

修飾子: DisplayName ("Name")

タスク マネージャーの Image Name プロパティと同等のプロセスを担当する実行可能ファイルの名前。

サブクラスによって継承された場合、プロパティをキー プロパティとしてオーバーライドできます。 名前はアプリケーション自体にハードコーディングされ、ファイル名の変更による影響を受けません。 たとえば、Calc.exeの名前を変更しても、タスク マネージャーとプロセス名を取得するすべての WMI スクリプトにCalc.exe名が表示されます。

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

OSCreationClassName

データ型: 文字列

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

修飾子: 伝達 ( "CIM_OperatingSystemCreationClassName")、 CIM_KeyMaxLen (256)、 DisplayName ("オペレーティング システム クラス名")

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

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

OSName

データ型: 文字列

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

修飾子: 伝達 ( "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 ("親プロセス 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 ("キロバイト")

プロセスのピークワーキング セット サイズ。

例: 1413120

優先順位

データ型: uint32

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

修飾子: オーバーライド ("Priority")、 MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|BasePriority")、 DisplayName ("Priority")

オペレーティング システム内のプロセスの優先度のスケジュール設定。 値が大きいほど、プロセスが受け取る優先度が高くなります。 優先度の値の範囲は 0 (ゼロ) で、最も優先度が低い場合は 31 です。これは最も高い優先度です。

例: 7

PrivatePageCount

データ型: uint64

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

修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|PrivatePageCount")、 DisplayName ("プライベート ページ数")

このWin32_Process インスタンスによって表されるプロセスにのみアクセスできる、割り当てられている現在 ページ数。

スクリプトで uint64 値を使用する方法の詳細については、「 WMI でのスクリプト作成」を参照してください。

ProcessId

データ型: uint32

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

修飾子: MappingStrings ("Win32API|プロセス構造とスレッド構造|PROCESS_INFORMATION|dwProcessId "), DisplayName ("Process Id")

あるプロセスを別のプロセスと区別するために使用される数値識別子。 Process ID は、プロセスの作成時間からプロセス終了まで有効です。 終了すると、同じ数値識別子を新しいプロセスに適用できます。

つまり、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 ("セッション ID")

セッションの作成時にオペレーティング システムによって生成される一意の識別子。 セッションは、ログオンから特定のシステムからのログオフまでの期間にわたっています。

状態

データ型: 文字列

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

修飾子: MaxLen (10)、 DisplayName ("Status")

このプロパティは実装されておらず、このクラスのどのインスタンスにも設定されません。 これは常に NULL です

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

次の値があります。

OK ("OK")

エラー ("Error")

機能低下 ("機能低下")

不明 ("不明")

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 ("スレッド数")

プロセス内のアクティブなスレッドの数。 命令はプロセッサでの実行の基本単位であり、スレッドは命令を実行するオブジェクトです。 実行中の各プロセスには、少なくとも 1 つのスレッドがあります。

UserModeTime

データ型: uint64

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

修飾子: オーバーライド ("UserModeTime"), Units ("100 nanoseconds")

ユーザー モードでの時間 (100 ナノ秒単位)。 この情報を使用できない場合は、0 (ゼロ) の値を使用します。

スクリプトで uint64 値を使用する方法の詳細については、「 WMI でのスクリプト作成」を参照してください。

VirtualSize

データ型: uint64

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

修飾子: MappingStrings ("Win32API|プロセスの状態|SYSTEM_PROCESS_INFORMATION|VirtualSize")、 DisplayName ("Virtual Address Space Usage")、 Units ("bytes")

プロセスによって実際に使用される物理メモリまたは仮想メモリではなく、プロセスが使用している仮想アドレス空間の現在のサイズ。 仮想アドレス空間を使用することは、ディスクまたはメイン メモリ ページの対応する使用を必ずしも意味するものではありません。 仮想空間は有限であり、多くを使用すると、プロセスがライブラリを読み込むことができない可能性があります。 この値は、Perfmon.exeに表示される値と一致します。

スクリプトで uint64 値を使用する方法の詳細については、「 WMI でのスクリプト作成」を参照してください。

WindowsVersion

データ型: 文字列

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

修飾子: MappingStrings ("Win32API|プロセス関数とスレッド関数|GetProcessVersion")、DisplayName ("Windows バージョン")

プロセスが実行されているWindowsのバージョン。

例: 4.0

WorkingSetSize

データ型: uint64

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

修飾子: DisplayName ("ワーキング セット サイズ")、 単位 ("bytes")

ページ ベースのメモリ管理を使用するオペレーティング システムに対して、プロセスが効率的に実行するために必要なメモリの量 (バイト単位)。 システムに十分なメモリ (ワーキング セット サイズ未満) がない場合は、スラッシングが発生します。 ワーキング セットのサイズがわからない場合は、 NULL または 0 (ゼロ) を使用します。 ワーキング セット データが提供されている場合は、情報を監視して、プロセスのメモリ要件の変化を把握できます。

スクリプトで uint64 値を使用する方法の詳細については、「 WMI でのスクリプト作成」を参照してください。

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

WriteOperationCount

データ型: uint64

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

修飾子: MappingStrings ("Win32API|プロセス構造とスレッド構造|SYSTEM_PROCESS_INFORMATION|WriteOperationCount")、 DisplayName ("書き込み操作数")

実行された書き込み操作の数。

スクリプトで 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 台のコンピューターで実行されているプロセスが多すぎる (また、リソースの有限のセットに対して競合している) 場合や、1 つのプロセスがリソースの共有を超える量を使用している可能性があります。 これらの要因により、コンピューター上で実行されているプロセスを注意深く監視することが重要になります。 プロセス管理の主なアクティビティであるプロセス監視を使用すると、コンピューターの実際の動作、コンピューターが実行するアプリケーション、およびそれらのアプリケーションがコンピューティング環境の変更によってどのように影響を受けるかを判断できます。

プロセスの監視

プロセスを定期的に監視すると、コンピューターがピーク時の効率で実行され、指定されたタスクが期待どおりに実行されるようにすることができます。 たとえば、プロセスを監視することで、応答を停止したアプリケーションの直ちに通知を受け取り、そのプロセスを終了するための手順を実行できます。 さらに、プロセス監視を使用すると、問題が発生する前に特定できます。 たとえば、プロセスによって使用されるメモリの量を繰り返しチェックすることで、メモリ リークを特定できます。 その後、エラーが発生したアプリケーションが使用可能なすべてのメモリを使用する前にプロセスを停止し、コンピューターを停止させることができます。

プロセスの監視は、アップグレードとメンテナンスの計画的な停止による中断を最小限に抑えるのにも役立ちます。 たとえば、クライアント コンピューターで実行されているデータベース アプリケーションの状態を確認することで、ソフトウェアをアップグレードするためにデータベースをオフラインにした場合の影響を判断できます。

プロセスの可用性の監視。 プロセスが使用可能な時間の割合を測定します。 可用性は通常、プロセスがまだ実行されているかどうかを報告する単純なプローブを使用して監視されます。 各プローブの結果を追跡することで、プロセスの可用性を計算できます。 たとえば、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 タスク: プロセス