ASSOCIATORS OF 语句

ASSOCIATORS OF 语句检索与特定源实例关联的所有实例。 检索到的实例称为终结点。 每个终结点返回的次数等于此终结点与源对象之间存在关联的次数。 例如,假设有实例 A、B、X 和 Y。存在两个关联实例,一个链接 A 和 X,另一个链接 B 和 Y。以下查询返回单个终结点 X:

ASSOCIATORS OF {A}

但如果存在另一个关联也链接了 A 和 X,则上述查询将返回两个 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 子句可以包含以下一个或多个预定义关键字及其值:

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_DirectoryWin32_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:\\"

注意

复杂查询不能使用“And”或“Or”来分隔 ASSOCIATORS OF 和 REFERENCES OF 语句的关键字。 此外,此类查询中的唯一有效运算符是等号。 例如,下面的查询是有效的:

 

ASSOCIATORS OF {win32_LogicalDisk="C:"} WHERE resultClass = Win32_Directory requiredQualifier = Dynamic

注意

接下来的示例无效。 第一个示例未使用等号,第二个示例错误地尝试使用 AND 关键字。

 

Associators of {win32_LogicalDisk="C:"} where resultClass = Win32_Directory requiredQualifier <> Dynamic

Associators of {win32_LogicalDisk="C:"} where resultClass = Win32_Directory AND requiredQualifier = Dynamic