Configuration Manager の特殊クエリ

拡張 WMI クエリ言語 (WQL) は、Configuration Manager のニーズに固有のクエリをサポートします。 次の表では、サポートされる追加のクエリについて説明します。

配列プロパティ 配列プロパティ内の特定の値。

基本クラス 基本クラスに存在するプロパティ値。

プロトタイプ クラス データではなくクラス定義。

コレクションの制限 特定のコレクションに固有のデータ。

配列プロパティ クエリ

配列プロパティの性質上、拡張 WQL クエリにそれらを含めることはやや複雑になる可能性があります。 たとえば、IPAddresses プロパティを含む SMS_R_System クラスについて考えてみましょう。 IPAddresses プロパティは、1 つ以上の個々のアドレスを含む配列です。 IP アドレスを持つコンピューターに対してクエリを実行するには、次の 2 つのクエリのいずれかを指定できます。

SELECT * FROM SMS_R_System WHERE IPAddresses = "2.2.2.2"

SELECT * FROM SMS_R_System WHERE IPAddresses IN ("1.1.1.1", "2.2.2.2")

基本クラスのクエリ

基底クラスに対する拡張 WQL クエリは、すべてのサブクラスからインスタンスを返します。 抽象基本クラスのクエリの場合、返されるインスタンスは常に派生クラスのインスタンスです。 たとえば、次のクエリは、SMS_SiteControlItem からプロパティを継承する SMS_SCI_ComponentSMS_SCI_Address などのクラスからインスタンスを返します。

SELECT * FROM SMS_SiteControlItem WHERE Sitecode="ABC"

プロトタイプ クエリ

拡張 WQL では、クラスの実際のインスタンスではなく、返されるクラスの定義を結果セットに含めるように要求できます。 この種類のクエリでは、次の 2 つの結果が考えられます。 ほとんどの場合、プロトタイプ クエリは定義を含むクラス オブジェクトを返します。 クエリが SELECT ステートメントに複数のクラスを含む JOIN 操作である場合、プロトタイプ クエリは __Generic クラスのインスタンスを返します。

プロトタイプ クエリは、JOIN 操作の結果を処理する場合に最も役立ちますが、すべてのクエリでサポートされています。 クラス定義を結果セットとして要求するには、IWbemServices::ExecQuery または IWbemServices::ExecQueryAsynclFlags パラメーターを WBEM_FLAG_PROTOTYPE に設定します。

コレクション制限クエリ

Configuration Manager コレクションは、コンピューターやユーザーなどのリソースのグループです。 拡張 WQL は、特定のコレクションに対するクエリをサポートします。 クエリを特定のコレクションに制限するには、次の 2 つの方法があります。

LimitToCollectionIDs コンテキスト値を、必要な CollectionID 値に設定します。 このコンテキスト値は、 IWbemServices::ExecQuery メソッドの IWbemContext ポインターを使用してコレクションの名前を参照できます。

ExecQuery に渡されるクエリで SMS_CollectionMember 派生クラスを使用して、内部 JOIN 操作を指定します。

2 番目の方法は低速ですが、WMI ODBC アダプターを使用するアプリケーションを使用する場合は唯一可能な方法です。

関連項目

Configuration Manager 関連付けクラスConfiguration Manager ビット フィールド プロパティConfiguration Manager 日付と時刻の形式Configuration Manager 埋め込みオブジェクトConfiguration Manager 拡張 WMI クエリ言語オブジェクトの概要:Configuration Manager 遅延プロパティエラーについてConfiguration Manager オブジェクト セキュリティ