ASSOCIATORS OF ステートメント
ASSOCIATORS OF ステートメントは、特定のソース・インスタンスに関連付けられているすべてのインスタンスを取得します。 取得されるインスタンスは、エンドポイントと呼ばれます。 各エンドポイントは、そのエンドポイントとソース オブジェクトの間に関連付けがある回数ずつ返されます。 たとえば、インスタンス A、B、X、Y があるとします。2 つの関連付けインスタンスが存在します。1 つは A と X をリンクし、もう 1 つは B と Y をリンクします。次のクエリは、単一のエンドポイント X を返します。
ASSOCIATORS OF {A}
ただし、A と X をリンクする別の関連付けがある場合、上記のクエリは 2 つの X エンドポイントを返します。
ASSOCIATORS OF ステートメントの基本的な構文は次のとおりです。
ASSOCIATORS OF {ObjectPath}
中かっこは構文の一部であることに注意してください。 ObjectPath には、任意の有効なオブジェクト パスを使用できます。 オブジェクト パス内のトークンに空白を含めることはできません。 たとえば、次の一覧のクエリは、指定された論理ディスクに関連付けられているインスタンスを返します。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"}
-
結果:
-
Win32_Directory.Name="C:\\"
Win32_ComputerSystem.Name="mycomputer" Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
SELECT ステートメントと同様に、ASSOCIATORS OF ステートメントには WHERE 句を含めることができますが、ASSOCIATORS OF ステートメントの WHERE 句は SELECT ステートメントWHERE 句とは大きく異なります。
ASSOCIATORS OF ステートメントの WHERE 句には、次の定義済みキーワードとその値を 1 つ以上含めることができます。
ASSOCIATORS OF {ObjectPath} WHERE
AssocClass = AssocClassName
ClassDefsOnly
RequiredAssocQualifier = QualifierName
RequiredQualifier = QualifierName
ResultClass = ClassName
ResultRole = PropertyName
Role = PropertyName
省略可能なサブクラウスはコンマで区切られないことに注意してください。
AssocClass キーワードは、返されるエンドポイントが、指定したクラスまたはその派生クラスの 1 つを介してソースに関連付けられている必要があることを示します。 たとえば、次の一覧のクエリは、Win32_SystemDevices 関連付けクラスまたはその派生クラスを介してソースに関連付けられているエンドポイントのみを返します。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE AssocClass = Win32_SystemDevices
-
結果:
-
Win32_ComputerSystem.Name="mycomputer"
ClassDefsOnly キーワードは、クラスの実際のインスタンスではなく、クラス定義オブジェクトの結果セットが句から返されることを示します。 これらのオブジェクトは、エンドポイント インスタンスが属するクラスの定義です。 たとえば、次の一覧のクエリは、Win32_Directory クラスと Win32_ComputerSystem クラスの定義を返します。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE ClassDefsOnly
-
結果:
-
Win32_Directory
Win32_ComputerSystem Win32_DiskPartition
ClassDefsOnly キーワードと ResultClass キーワードは相互に排他的です。 これらを一緒に使用すると、無効なクエリ エラーが発生します。
RequiredAssocQualifier キーワードは、指定された修飾子を含むアソシエーション クラスを介して、返されるエンドポイントをソース オブジェクトに関連付ける必要があることを示します。 この種類のフィルター処理は、エンドポイントが特定のタグ付き関連付けクラスのセットを介してターゲットに関連付けられていない限り、広範なエンドポイントを排除するために使用されます。 たとえば、次の一覧のクエリは、関連付けクラスに Associationという修飾子が含まれている場合、エンドポイント インスタンスを返します。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE RequiredAssocQualifier = Association
-
結果:
-
Win32_Directory.Name="C:\\"
Win32_ComputerSystem.Name="mycomputer" Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
RequiredQualifier キーワードは、ソース オブジェクトに関連付けられている返されるエンドポイントに、指定した修飾子を含める必要があることを示します。 RequiredQualifier キーワードを使用すると、特定の種類のインスタンスを結果セットに含めることができます。 たとえば、次の一覧のクエリは、ロケールと呼ばれる修飾子を含むエンドポイント インスタンス返します。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE RequiredQualifier = Locale
-
結果:
-
Win32_Directory.Name="C:\\"
Win32_ComputerSystem.Name="mycomputer" Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
ResultClass キーワードは、ソース オブジェクトに関連付けられている返されるエンドポイントが、指定したクラスに属しているか、指定したクラスから派生する必要があることを示します。 たとえば、次の一覧のクエリは、CIM_Directory クラスから派生したエンドポイント インスタンスを返します。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE ResultClass = Cim_Directory
-
結果:
-
Win32_Directory.Name="C:\\"
ClassDefsOnly キーワードと ResultClass キーワードは相互に排他的です。 これらを一緒に使用すると、無効なクエリ エラーが発生します。
ResultRole キーワードは、返されるエンドポイントがソース オブジェクトとの関連付けにおいて特定の役割を果たす必要があることを示します。 ロールは、指定されたプロパティ、ref 型の参照プロパティ定義されます。たとえば、次のクエリに示すように、ResultRole キーワードを使用して、GroupComponent プロパティを持つすべてのエンドポイントをソース オブジェクトと関連付けることができます。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE ResultRole = GroupComponent
-
結果:
-
Win32_ComputerSystem.Name="mycomputer"
Role キーワードは、返されたエンドポイントが、ソース オブジェクトが特定の役割を果たすソース オブジェクトとの関連付けに参加することを示します。 ロールは、指定されたプロパティ、ref 型の参照プロパティ定義されます。たとえば、次のクエリに示すように、Role キーワードを使用して、GroupComponent プロパティを持つソース オブジェクトに関連付けられているすべてのエンドポイントを取得できます。
-
クエリ:
-
ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE Role = GroupComponent
-
結果:
-
Win32_Directory.Name="C:\\"
手記
複雑なクエリでは、"And" または "Or" を使用して、ASSOCIATORS OF ステートメントと REFERENCES OF ステートメントのキーワードを区切ることはできません。 さらに、等号は、このようなクエリで使用できる唯一の有効な演算子です。 たとえば、次のクエリは有効です。
ASSOCIATORS OF {win32_LogicalDisk="C:"} WHERE resultClass = Win32_Directory requiredQualifier = Dynamic
手記
次の例は無効です。 最初の例では等号を使用せず、2 番目の例では誤って AND キーワードの使用を試みます。
Associators of {win32_LogicalDisk="C:"} where resultClass = Win32_Directory requiredQualifier <> Dynamic
Associators of {win32_LogicalDisk="C:"} where resultClass = Win32_Directory AND requiredQualifier = Dynamic