System.Management を使用する .NET Framework アプリケーションの実装
System.Management.Instrumentation 名前空間の目的は、アプリケーションが管理を実行できるようにするための作業を最小限にすることです。また、この名前空間は、イベントおよびデータの公開と、管理オブジェクト間の関係の使用を簡単に実行できるようにします。
WMI の主な利点の 1 つに、アプリケーション開発者が共通のアーキテクチャを使用してさまざまなソースからの情報にアクセスできるという点があります。情報のソースは、ハードウェア、オペレーティング システム、またはソフトウェア アプリケーションとさまざまです。データ ソースによって提供される情報を実装と呼びます。実装の役割は、車の運転席に付いている計器板と非常によく似ています。車には、燃料計などのさまざまなコンポーネントの情報を監視する計器や、ドアが閉じていないことを知らせる警報器など、さまざまなイベントが発生したときに通知する表示器がいろいろと付属しています。運転者は、これらの機器からの情報によって、運転方法や車の保守に関する判断を行うことができます。実装を提供されたコンピュータ コンポーネントを使用することにより、管理ソフトウェアはエンタープライズ コンピューティング環境での問題を診断して解消できます。
WMI は、Microsoft Operations Manager、Microsoft Application Center、およびその他のサードパーティ製管理ツールなど、さまざまな管理アプリケーションで使用される実装の標準です。Windows オペレーティング システムは WMI によって実装されていますが、独自の製品に管理ツールを使用する開発者は、その製品の独自のコードに実装を組み込む必要があります。マネージ コードの開発者は、System.Management.Instrumentation 名前空間を使用して WMI 対応のツールに情報を公開できます。
管理のためにアプリケーションのオブジェクトを公開する場合は、.NET Framework 開発者が直感的に理解できる方法である必要があります。WMI スキーマはオブジェクト指向であり、.NET Framework のメタデータと共通する多くの性質を持っています。たとえば、コード クラスはスキーマ クラスに、コード オブジェクトのプロパティは WMI オブジェクトのプロパティに割り当てられます。そのため、マネージ コード アプリケーションが管理機能を持つように実装することは簡単です。マネージ コードの作成に習熟している場合は、現在持っている知識によって、WMI をとおして実装できます。学習に時間はかかりませんし、WMI クライアント API を理解する必要もありません。
管理のためのアプリケーション情報の大部分は宣言するだけで公開でき、特別なコードを新しく作成する必要はありません。開発者は .NET Framework の属性設定機能を使用することによってオブジェクトを管理可能なオブジェクトとしてマークし、そのオブジェクトを System.Management.Instrumentation スキーマに割り当てる方法を定義します。また、共通の System.Management.Instrumentation スキーマ クラスからクラスを派生させることもできます。この場合は、クラスを派生した時点で属性設定と割り当てが完了します。
アプリケーションの実装が完了したら、WMI やさまざまな WMI 顧客ベース (Computer Associates、Tivoli Systems, Inc.、BMC Software、Hewlett-Packard など) によって開発された管理アプリケーションを使用して、オブジェクトとイベントを探索、監視、構成できます。管理可能なイベントとしてマークされたマネージ コード イベントは、自動的に WMI イベントとして発生します。
System.Management でのセキュリティ サポートは、WMI でのセキュリティに緊密にリンクされています。WMI では、クライアントによる情報へのアクセスは、名前空間ベースのセキュリティによって制御されます。
開発に便利なように、アセンブリの Instrumented 属性で特別に指定しない限り、実装データは root\default 名前空間に公開されます。ただし、開発者の方には、この既定の設定をオーバーライドしてアプリケーションに固有の名前空間を定義し、アプリケーションを個別に管理できるようにすることをお勧めします。
推奨される手順は次のとおりです。
- 同じようなセキュリティ要件を持つアセンブリ、アセンブリのグループ、またはアプリケーションに対して、個別の名前空間を作成します。一意性を保つために、名前空間の定義では社名とソフトウェア製品名を使用します。たとえば、アプリケーションからの実装を "root\<your company name>\<your product name>" 名前空間に公開できます。名前空間の階層構造には、バージョン情報も含むことができます。バージョン管理の詳細については、スキーマ登録に関するセクションを参照してください。
- 管理者は WMI コントロールを使用して、特定の名前空間に対するセキュリティ制約を指定できます。WMI コントロールを呼び出すには、[マイ ンピュータ] を右クリックし、[管理] を選択して [コンピュータの管理] MMC コンソールを開始します。次に [サービスとアプリケーション] ノードを展開し、[WMI コントロール] を選択し、右クリックして [プロパティ] を選択します。そして、[セキュリティ] タブをクリックし、アプリケーションの名前空間のセキュリティ設定を表示または変更します。
参照
WMI によるアプリケーションの管理 | CLI と WMI におけるクラスとマップ | 管理イベントの公開 | 管理データの公開 | 継承 | 実装されたアプリケーションのスキーマ登録