標準 WMI 修飾子

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

改正

データ型: ブール値

適用対象: クラス

ローカライズされた修正された修飾子がクラスに含まれていることを示します。 既定値は 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

適用対象: クラス

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

廃止

データ型: CIM_BOOLEAN

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

プロパティが別のプロパティに置き換えられた場合を示します。

表示

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

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

動的

データ型: ブール値

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

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

DynProps

データ型: ブール値

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

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

このようなインスタンスでは、この修飾子を指定する必要があります。 値 TRUE のみが許可されます。

固定

データ型: CIM_BOOLEAN

適用対象: インスタンス

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

ID

データ型: VT_I4

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

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

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

実装

データ型: ブール値

適用対象: メソッド

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

Instancecontext

データ型: VT_BSTR

適用対象: インスタンス

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

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

ロケール

データ型: VT_BSTR

適用対象: クラスまたはインスタンス

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

NamespaceSecuritySDDL

データ型: 文字列配列

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

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

オプション

データ型: ブール値

適用対象: パラメーター

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

特権

データ型: 文字列配列

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

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

PropertyContext

データ型: VT_BSTR

適用対象: プロパティ

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

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

プロバイダー

データ型: VT_BSTR

適用対象: クラス

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

RequiresEncryption

データ型: ブール値

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

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

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

シングルトン

データ型: ブール値

適用対象: クラス

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

値 TRUE (既定値) のみが許可されます。

静的

データ型: ブール値

適用対象: メソッド

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

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

サブタイプ

データ型: VT_BSTR

適用対象: プロパティ

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

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

UUID

データ型: 文字列

適用対象: クラス

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

ClassVersion

データ型: 文字列

適用対象: クラス

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

WritePrivileges

データ型: 文字列配列

適用対象: プロパティ

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

解説

ロケール コード

ロケール コードは、"MS_<Three Digit Language 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'" がであることを検出します。DrawItCircle 実装を実行します。 ただし、DrawItBypass_GetObject修飾子を使用する場合、WMI は GetObject を呼び出さず、"Shape.Name='MyCircle'" がであることを検出せず、DrawItCircle 実装ではなく DrawItShape 実装を実行します。

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

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

必要条件

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

関連項目

Namepace セキュリティ記述子の設定

WMI 修飾子

修飾子の追加