ASSOCIATORS OF ステートメント
ASSOCIATORS OF ステートメントは、特定のソース インスタンスに関連付けられているすべてのインスタンスを取得します。 取得されるインスタンスは、エンドポイントと呼ばれます。 各エンドポイントは、それとソース オブジェクトの間の関連付けと同じ回数だけ返されます。 たとえば、インスタンス A、B、X、Y があるとします。2 つの関連付けインスタンスが存在し、1 つは A と X をリンクし、もう 1 つは B と Y をリンクします。次のクエリは、1 つのエンドポイント 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 キーワードは、返されるエンドポイントが、指定したクラスまたはその派生クラスのいずれかを介してソースに関連付けられている必要があることを示します。 たとえば、次のリストのクエリは、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 キーワードを使うと、結果セットに特定の種類のインスタンスを含めることができます。 たとえば、次のリストのクエリは、Locale という修飾子を含むエンドポイントのインスタンスを返します。
-
クエリ:
-
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:\\"
Note
複雑なクエリでは、"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