Windows Management Instrumentationの基本的な知識と使い方
Windows Management Instrumentationの概要
Windows Management Instrumentation (WMI)は、Windowsオペレーティングシステムの構成、パフォーマンス、およびイベントを管理するための標準のインフラストラクチャです。システム管理者や開発者は、WMIを使用してスクリプトやプログラムを使用して情報を取得、設定、および変更できます。WMIは、Windows Server、クライアントオペレーティングシステム、および組み込みシステムを含む、すべてのWindowsオペレーティングシステムで利用できます。
WMIの基本的なコンポーネント
WMIには、次の4つの主要なコンポーネントがあります。
WMIコア:WMIの主要なエンジンで、WMIプロバイダーと通信して情報を収集し、WMIクライアントに提供します。
WMIプロバイダー:WMIコアと通信して、特定の領域に関する情報を提供するソフトウェアコンポーネントです。たとえば、レジストリプロバイダーは、レジストリ内の情報へのアクセスを提供します。
WMI Namespace:WMIプロバイダーによって提供される情報の論理構造です。名前空間は、クラス階層として編成されており、各クラスは特定の種類のオブジェクトを表します。
WMIクライアント:WMIコアと対話し、WMI Namespace内の情報を取得、設定、または変更するために使用されるソフトウェアプログラムです。
WMI Object Management
WMIでは、2つの方法でオブジェクトを管理できます。
オブジェクトのインスタンスを作成、削除、および変更する
オブジェクトのインスタンスの値を変更する
オブジェクトインスタンスを作成、削除、および変更するには、次の方法を使用します。
__Classプロパティを使用する
__InstanceCreationEvent、__InstanceDeletionEvent、および__InstanceModificationEventのイベントプロバイダーを使用する
オブジェクトインスタンスの値を変更するには、次の方法を使用します。
__Propertyプロパティを使用する
__InstanceModificationEventイベントプロバイダーを使用する
WMI Event Management
WMIでは、2つの方法でイベントを管理できます。
イベントを購読する
イベントを発行する
イベントを購読するには、次の方法を使用します。
__EventFilterプロパティを使用する
__SubscriptionEventプロバイダーを使用する
イベントを発行するには、次の方法を使用します。
__Eventプロパティを使用する
__InstanceModificationEventイベントプロバイダーを使用する
WMI Query Language (WQL)
WMI Query Language (WQL) は WMI オブジェクトとデータを照会するために使用される標準のクエリ言語です。SQLに類似した構文を使用しているため、学習と使用が簡単です。WQLは、WMIオブジェクトの情報を取得、設定、および変更するために使用できます。
WQLには、次の4つの主要な要素があります。
選択句:クエリによって返されるプロパティを指定します。
from句:クエリを実行するクラスまたはインスタンスを指定します。
where句:クエリをフィルタリングするための条件を指定します。
OrderBy句:クエリ結果を並べ替えるために使用されます。
Windows Management Instrumentation Namespace
Windows Management Instrumentation Namespace (WMINS) は、WMI の構成と動作を説明するために使用される XML ベースの形式です。WMINS は、WMI をサポートするすべてのパートナーと共通の使用方法と機能を提供し、WMI を WMI 以外の製品に統合するための最小限の方法を提供するように設計されています。
WMINS は、Microsoft がサポートする次の 3 つの場所で見つけることができます。
https://msdn.microsoft.com/en-us/library/aa386002(v=vs.85).aspx
http://technet.microsoft.com/en-us/library/cc721976.aspx
http://support.microsoft.com/kb/917597
よく寄せられる質問
WMIは何に使えますか?
WMIはどのように構成しますか?
WMIでイベントを管理するにはどうしたらよいですか?
WMIを使用してオブジェクトを管理するにはどうしたらよいですか?
WMIプロバイダーは何ですか?