標準 WMI 修飾子
以下に、WMI に固有の標準修飾子を示します。
Amendment
データ型: ブール
適用対象: クラス
ローカライズされる修正済み修飾子が、クラスに含まれることを示します。 既定は TRUE です。
関連付けられているクラスは変換できます。 変換されたバージョンにアクセスするには、ロケール識別子を使用して名前空間名を構築します。
Bypass_GetObject
データ型: ブール
適用対象: メソッド
メソッド呼び出しで、最初に GetObject を呼び出してオブジェクト パスを検証するのではなく、プロバイダーの ExecMethodAsync 呼び出しに直接渡す必要があることを示します。 既定値は FALSE です。 Bypass_GetObject を使用すると、パフォーマンスが大幅に向上する場合があります。
Bypass_GetObject を使用する前に、以下のどのアクションも実行されていないことを確認してください。
- クラスからクラスを派生させる。
- Bypass_GetObject 修飾子を持つメソッドをオーバーライドしている。
これらの注意事項に従わないと、子クラスではなく親クラスのメソッド実装が呼び出される結果になる可能性があります。 詳細については、「Bypass_GetObject 修飾子の使用」を参照してください。
CIM_Key
データ型: CIM_BOOLEAN
適用対象: プロパティ
関連付けられたプロパティは、CIM ではキー プロパティであっても、WMI ではそうでないことを示します。
データ型: VT_BSTR
適用対象: プロパティ、メソッド、パラメーター
プロパティの型を記述しているテキストを格納します。
ClassContext
データ型: VT_BSTR
適用対象: クラス
クラスに、プロバイダーによって動的に提供される詳細情報に関連付けられたインスタンスがあることを示します。
Deprecated
データ型: CIM_BOOLEAN
適用対象: プロパティ、クラス
プロパティが、別のプロパティに置き換えられていることを示します。
Display
適用対象: クラス、プロパティ
関連付けられたクラスの UUID。
データ型: ブール
適用対象: クラス、プロパティ
インスタンスが動的に作成されるクラスを示します。 この修飾子の値は 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 であることが検出されます。そして DrawIt の Circle 実装が実行されます。 ただし、DrawIt に対して Bypass_GetObject 修飾子を使用すると、WMI では、GetObject が呼び出されず、"Shape.Name='MyCircle'" が Circle であることは検出されず、DrawIt の Circle 実装ではなく DrawIt の Shape 実装が実行されます。
次に示す ExecMethod の呼び出しでは、常に DrawIt の正しい実装が呼び出されます。
ExecMethod("Circle.Name='MyCircle'","DrawIt");
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |