WMI のアーキテクチャ
WMI は、コンピューター システム、ネットワーク、またはエンタープライズから管理データを取得するローカルまたはリモートのアプリケーションまたはスクリプトに対して統一されたインターフェイスを提供します。 統一されたインターフェイスは、WMI クライアント アプリケーションとスクリプトがさまざまなオペレーティング システム アプリケーション プログラミング インターフェイス (API) を呼び出す必要がないように設計されています。 スクリプトや Visual Basic アプリケーションなどのオートメーション クライアントでは、多くの API を呼び出すことができません。 他の API では、リモート コンピューターに対する呼び出しは行われません。
WMI からデータを取得するには、WMI クラスにアクセスするクライアント スクリプトまたはアプリケーションを記述するか、"WMI プロバイダー" を記述して WMI にデータを提供します。 詳細については、「WMI の使用」を参照してください。
WMI のオブジェクト、コンシューマー、インフラストラクチャ
次の図は、WMI インフラストラクチャと WMI プロバイダーおよびマネージド オブジェクトの関係を示しています。また、WMI インフラストラクチャと WMI コンシューマーの関係も示しています。
WMI コンポーネント
次の一覧では、主要な WMI コンポーネントについて説明します。
マネージド オブジェクトと WMI プロバイダー
WMI プロバイダーは、WMI の 1 つ以上の "マネージド オブジェクト" を監視する COM オブジェクトです。 マネージド オブジェクトは、ハード ディスク ドライブ、ネットワーク アダプター、データベース システム、オペレーティング システム、プロセス、サービスなどの論理または物理エンタープライズ コンポーネントです。
ドライバーと同様に、プロバイダーはマネージド オブジェクトからのデータを WMI に提供し、WMI からマネージド オブジェクトへのメッセージを処理します。 WMI プロバイダーは、DLL ファイルと、プロバイダーがデータを返して操作を実行するクラスを定義する "マネージド オブジェクト フォーマット (MOF)" ファイルで構成されます。 WMI C++ アプリケーションなどのプロバイダーは、WMI 用 COM API を使用します。 詳細については、「WMI へのデータの提供」を参照してください。
プロバイダーの例として、システム レジストリ内のデータにアクセスするプレインストール済みのレジストリ プロバイダーがあります。 レジストリ プロバイダーには、1 つの "WMI クラス" である StdRegProv があり、多くのメソッドが含まれますが、プロパティはありません。 Win32 プロバイダーなどの他のプレインストール済みプロバイダーには、通常、Win32_Process や Win32_LogicalDisk などのプロパティは多いがメソッドが少ないクラスがあります。 レジストリ プロバイダー DLL ファイル (Stdprov.dll) には、クライアント スクリプトまたはアプリケーションから要求されたときにデータを動的に返すコードが含まれています。
WMI MOF ファイルと DLL ファイルは、Winmgmt.exe や Mofcomp.exe などの WMI コマンドライン・ツールとともに %WINDIR%System32 jaWbem に配置されます。 Win32_LogicalDisk などのプロバイダー クラスは MOF ファイルで定義され、システムの起動時に WMI リポジトリにコンパイルされます。
-
WMI インフラストラクチャは、WMI サービス (winmgmt) として知られる Microsoft Windows オペレーティング システム コンポーネントです。 WMI インフラストラクチャには、WMI Core と WMI リポジトリの 2 つのコンポーネントがあります。
WMI リポジトリは、WMI "名前空間" 別に編成されています。 WMI サービスは、システムの起動時に root\default、root\cimv2、root\subscription などの一部の名前空間を作成し、Win32 クラス、WMI システム クラスなどの既定のクラス定義のセットをプレインストールします。 システムで見つかった残りの名前空間は、オペレーティング システムまたは製品の他の部分のプロバイダーによって作成されます。 ほとんどのオペレーティング システム バージョンで見つかった WMI プロバイダーの一覧とその詳細については、「WMI プロバイダー」を参照してください。
WMI サービスは、プロバイダー、管理アプリケーション、WMI リポジトリ間の仲介役として機能します。 プロバイダーによって定義されたクラスなど、オブジェクトに関する静的データのみがリポジトリに格納されます。 WMI は、クライアントが要求したときに、プロバイダーからほとんどのデータを動的に取得します。 プロバイダーからイベント通知を受信するようにサブスクリプションを設定することもできます。 詳細については、「イベントの監視」を参照してください。
WMI コンシューマー
WMI コンシューマーは、WMI インフラストラクチャと対話する管理アプリケーションまたはスクリプトです。 管理アプリケーションは、WMI 用 COM API または WMI 用スクリプト API を呼び出すことによって、クエリの実行、データの列挙、プロバイダー メソッドの実行、イベントのサブスクライブを行うことができます。 ディスク ドライブやサービスなど、マネージド オブジェクトで使用できるデータまたは操作は、プロバイダーが提供するものだけです。
関連トピック