System.Management 名前空間と System.Management.Instrumentation 名前空間
System.Management 名前空間は、.NET Framework の管理要素のオブジェクト モデルです。System.Management 名前空間は、管理サービスを .NET Framework アプリケーションと開発ツールに緊密に統合して .NET Framework アプリケーションをより管理しやすくし、エンタープライズ環境で状態の監視とトラブルシューティングを行う機能を .NET Framework 開発者に提供します。また、さまざまなサードパーティ製の管理アプリケーションやカスタム コンソールによってもアプリケーションを管理できます。カスタム コンソールは、System.Management を利用する IT の部署によって簡単に作成できます。
WMI の 3 つの層と、System.Management が WMI でどのように階層化されているかを次の図に示します。Microsoft Windows フォーム (Windows フォーム)、Web フォーム/ASP.NET、および管理アプリケーションは、WMI のサービスにアクセスするクライアントの役割を果たすことができます。管理プロバイダとなるのは、システムまたはアプリケーションの実装を公開する既存のコード、または、自身の管理サービスを他のクライアントに公開する Windows フォーム アプリケーションや Web フォーム/ASP.NET ページ フレームワーク アプリケーションです。
.NET Framework における WMI アーキテクチャ
System.Management 名前空間は、マネージ コード クラスのセットを提供します。.NET Framework アプリケーションは、それらのクラスを使用して、Windows、WMI を実装したネイティブ アプリケーション、System.Management.Instrumentation を実装したマネージ コードなど、あらゆるソースから提供される管理情報に対してアクセスおよび操作を実行できます。System.Management 名前空間のクラスは単に WMI クライアント API と呼ばれているだけで、WMI にアクセスするための唯一の手段というわけではありません。開発者は、その他のテクノロジ、たとえば IWbem インターフェイスと呼ばれるネイティブ WMI COM インターフェイスや、SWbemScripting オブジェクトと呼ばれるオートメーション互換 WMI オブジェクトによって WMI にアクセスすることもできます。図で示したように、Windows フォーム ベースのアプリケーション、Web フォーム ベースのアプリケーション、および従来の管理アプリケーションは、コンピュータが持っているメモリの量を調べたり、ネットワーク接続を構成したり、IIS サーバーの状態を調べたりする必要があるときに、1 組のコードを使用するだけで関連するデータにアクセスできます。同じことは、その他の多くの管理タスクにも当てはまります。
この機能は、Microsoft Visual Studio .NET 開発環境に組み込まれている WMI ツールのセットによってサポートされます。たとえば、Visual Studio .NET のサーバー エクスプローラ管理拡張機能 (https://www.microsoft.com/downloads/release.asp?ReleaseID=38501\&area=search\&ordinal=1 からダウンロード可能) を管理機能対応のアプリケーションを開発するときに利用できます。
同様に、System.Management.Instrumentation も、WMI を使用して情報を提供する手段の 1 つにすぎません。2 つの名前空間は互いにまったく依存しません。つまり、System.Management.Instrumentation に情報を提供する場合、実装は System.Management クラスからでなくても参照できます。System.Management クラスを使用すると、System.Management.Instrumentation を使用して記述された実装だけでなく、あらゆる WMI にアクセスできます。
現在の制限事項
現在のバージョンの System.Management.Instrumentation では、次の WMI 機能をサポートしていません。この制限事項はマネージ コードで実装されたオブジェクトにだけ適用されます。ネイティブ C++ WMI プロバイダを通じて公開されたオブジェクトではこれらの機能を公開でき、System.Management クラスを通じてマネージ コードからアクセスできます。
- 実装されたオブジェクトは、書き込み可能なプロパティまたはメソッドを公開できません。
- 実装されたオブジェクトの修飾子の作成はサポートされていません。
- 実装されたオブジェクトのプロパティはキーとして定義できません。
参照
System.Management による管理情報へのアクセス | System.Management を使用する .NET Framework アプリケーションの実装 | スキーマ | クエリ | 管理イベント