標準 WMI 修飾子

以下に、WMI に固有の標準修飾子を示します。

Amendment

データ型: ブール

適用対象: クラス

ローカライズされる修正済み修飾子が、クラスに含まれることを示します。 既定は TRUE です。

関連付けられているクラスは変換できます。 変換されたバージョンにアクセスするには、ロケール識別子を使用して名前空間名を構築します。

Bypass_GetObject

データ型: ブール

適用対象: メソッド

メソッド呼び出しで、最初に GetObject を呼び出してオブジェクト パスを検証するのではなく、プロバイダーの ExecMethodAsync 呼び出しに直接渡す必要があることを示します。 既定値は FALSE です。 Bypass_GetObject を使用すると、パフォーマンスが大幅に向上する場合があります。

Bypass_GetObject を使用する前に、以下のどのアクションも実行されていないことを確認してください。

  • クラスからクラスを派生させる。
  • Bypass_GetObject 修飾子を持つメソッドをオーバーライドしている。

これらの注意事項に従わないと、子クラスではなく親クラスのメソッド実装が呼び出される結果になる可能性があります。 詳細については、「Bypass_GetObject 修飾子の使用」を参照してください。

CIM_Key

データ型: CIM_BOOLEAN

適用対象: プロパティ

関連付けられたプロパティは、CIM ではキー プロパティであっても、WMI ではそうでないことを示します。

CIMType

データ型: VT_BSTR

適用対象: プロパティ、メソッド、パラメーター

プロパティの型を記述しているテキストを格納します。

ClassContext

データ型: VT_BSTR

適用対象: クラス

クラスに、プロバイダーによって動的に提供される詳細情報に関連付けられたインスタンスがあることを示します。

Deprecated

データ型: CIM_BOOLEAN

適用対象: プロパティ、クラス

プロパティが、別のプロパティに置き換えられていることを示します。

Display

適用対象: クラス、プロパティ

関連付けられたクラスの UUID

Dynamic

データ型: ブール

適用対象: クラス、プロパティ

インスタンスが動的に作成されるクラスを示します。 この修飾子の値は TRUE に設定する必要があります。

DynProps

データ型: ブール

適用対象: クラス、インスタンス

インスタンスに、動的プロパティ プロバイダーによって提供される値が格納されることを示します。 既定は TRUE です。

そのようなインスタンスにはこの修飾子を指定する必要があります。 使用できる値は TRUE のみです。

Fixed

データ型: CIM_BOOLEAN

適用対象: インスタンス

インスタンスの有効期間中に、このプロパティの値を変更できないことを示します。

ID

データ型: VT_I4

適用対象: プロパティ、パラメーター

MOF ステートメントが自動的に生成されるときに、プロパティまたはメソッド パラメーターを一意に識別してシーケンス処理します。

この修飾子が必要なのは、メソッドのパラメーターのみです。 メソッドのパラメーターの作成時には、最初のパラメーターに Id (0) を指定してクラス デザイナーを開始し、連続する各パラメーターに対して、それぞれが連続する整数を使用する必要があります。 ID 修飾子が意図せず省略された場合は、MOF コンパイラによって ID 修飾子が自動的に生成されます。

Implemented

データ型: ブール

適用対象: メソッド

メソッドに、プロバイダーによって提供される実装があることを示します。

InstanceContext

データ型: VT_BSTR

適用対象: インスタンス

インスタンスに、動的プロパティ プロバイダーによって提供される値が格納されることを示します。

値は、IWbemPropertyProvider::GetProperty メソッドへの引数としてプロパティ プロバイダーに渡されます。

Locale

データ型: VT_BSTR

適用対象: クラス、インスタンス

クラスまたはインスタンスの元の言語を指定します。 ロケール値の詳細については、「ロケール コード」を参照してください。

NamespaceSecuritySDDL

データ型: 文字列配列

適用対象: 名前空間インスタンス

名前空間のセキュリティ記述子を SDDL 形式で指定します。 詳細については、名前空間が作成されるときの名前空間セキュリティの設定に関するページを参照してください。 SDDL 文字列は WMI によって処理されて名前空間のセキュリティを確立しますが、文字列としては格納されません。 セキュリティ記述子が指定されていない場合は、既定のセキュリティが使用されます。 詳細については、「名前空間セキュリティ記述子の設定」を参照してください。

Optional

データ型: ブール

適用対象: パラメーター

パラメーターが必須ではないこと、および適切に動作する既定値があることを示します。

Privileges

データ型: 文字列配列

適用対象: プロパティ、メソッド

インスタンスの作成、プロパティの入力、メソッドの実行に必要な権限をクライアントに通知するために使用される値のセット。 既定値は FALSE です。

PropertyContext

データ型: VT_BSTR

適用対象: プロパティ

インスタンス プロパティに、動的プロパティ プロバイダーによって提供される値が格納されることを示します。

そのようなプロパティにはこの修飾子を指定する必要があります。 値は、IWbemPropertyProvider::GetProperty への引数としてプロパティ プロバイダーに渡されます。

Provider

データ型: VT_BSTR

適用対象: クラス

この修飾子の値は、クラス インスタンスを提供し、インスタンス データを更新する動的プロバイダーの名前です。 この名前を格納している Name プロパティを使用して __Win32Provider クラスのインスタンスを作成して、この名前を WMI に登録する必要があります。 この修飾子を、インスタンスが動的に提供されるクラスに対して指定する場合は、Dynamic 修飾子も指定する必要があります。

RequiresEncryption

データ型: ブール

適用対象: 名前空間インスタンス

TRUE に設定された場合、RequiresEncryption によって名前空間がマークされるので、クライアント アプリケーションとスクリプトは、暗号化された認証を使用して接続する必要があります。 認証レベルは、C++ では RPC_C_AUTHN_LEVEL_PKT_PRIVACY に設定する必要があります。 スクリプトや Visual Basic では、認証レベルを WbemAuthenticationLevelPktPrivacy に設定する必要があります。 詳細については、「名前空間セキュリティ記述子の設定」を参照してください。 この修飾子は、MOF で、プラグマ名前空間プリプロセッサ コマンドと共に使用されます。

詳細については、「C++ を使用した既定のプロセス セキュリティ レベルの設定」または VBScript を使用した既定のプロセス セキュリティ レベルの設定に関するページを参照してください。 スクリプト作成の認証レベルは、WbemAuthenticationLevelEnum で定義されます。

Singleton

データ型: ブール

適用対象: クラス

インスタンスを 1 つだけ持ち、キー プロパティを含まないクラスを示します。

TRUE (既定値) のみを使用できます。

Static

データ型: ブール

適用対象: メソッド

クラス定義またはそのインスタンスを使用してメソッドを呼び出すことができるかどうかを示します。

メソッドをインスタンスから呼び出すことはできません。

SubType

データ型: VT_BSTR

適用対象: プロパティ

CIM_DATETIME 型のプロパティが、特定の時刻ではなく時間間隔を表していることを示します。

プロパティを間隔として識別するには、この修飾子の値を "interval" にする必要があります。 この修飾子の他の値はすべて、将来使用するために予約されています。

UUID

データ型: 文字列

適用対象: クラス

クラスに適用される汎用一意識別子。

ClassVersion

データ型: 文字列

適用対象: クラス

クラス オブジェクトのバージョン番号。 既定値は NULL です。 このバージョン番号は、クラスに変更が加えられたときにインクリメントされます。

WritePrivileges

データ型: 文字列配列

適用対象: プロパティ

書き込み操作を正常に実行するために、どのシステム特権を使用可能で有効にする必要があるかを示す値のセット。

解説

ロケール コード

ロケール コードは、"MS_<3 桁の言語 ID>" という形式です。 たとえば、英語のロケールは MS_409 です。 次の表に、言語 ID の一覧を示します。

言語 言語 ID (16 進数)
アラビア語 401
ポルトガル語 (ブラジル) 416
簡体中国語 804
繁体中国語 404
チェコ語 405
デンマーク語 406
オランダ語 413
英語 (既定) 409
フィンランド語 40b
フランス語 40c
ドイツ語 407
ギリシャ語 408
ヘブライ語 40d
ハンガリー語 40e
イタリア語 410
日本語 411
韓国語 412
ノルウェー語 414
ポーランド語 415
ポルトガル語 (ポルトガル) 816
ロシア語 419
スペイン語 c0a
スウェーデン語 41D
トルコ語 41f

Bypass_GetObject 修飾子の使用

メソッドに対して Bypass_GetObject 修飾子を使用すると、混乱した結果になる可能性があります。

次の例では、Shape クラスと Circle クラスを定義しています。 Circle クラスは Shape クラスから派生されることに注意してください。

class Shape
{
   string Name;
   uint32 DrawIt();  // - draws an irregular geometric shape
};

class Circle : Shape
{
   uint32 DrawIt();  // - draws a circle
};

次に行う ExecMethod の呼び出しでは、"MyCircle" という名前の Circle オブジェクトを使用して円を描画します。

ExecMethod("Shape.Name='MyCircle'","DrawIt");

前のシナリオでは、WMI によって GetObject が呼び出されると、"Shape.Name='MyCircle'" は Circle であることが検出されます。そして DrawItCircle 実装が実行されます。 ただし、DrawIt に対して Bypass_GetObject 修飾子を使用すると、WMI では、GetObject が呼び出されず、"Shape.Name='MyCircle'" が Circle であることは検出されず、DrawItCircle 実装ではなく DrawItShape 実装が実行されます。

次に示す ExecMethod の呼び出しでは、常に DrawIt の正しい実装が呼び出されます。

ExecMethod("Circle.Name='MyCircle'","DrawIt");

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008

関連項目

名前空間セキュリティ記述子の設定

WMI 修飾子

修飾子の追加