Оператор 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, но предложение WHERE для инструкции ASSOCIATORS OF сильно отличается от предложения SELECT STATEMENTWHERE.
Предложение WHERE инструкции ASSOCIATORS OF может включать одно или несколько из следующих предопределенных ключевых слов и их значений:
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"
Ключевое слово Роли указывает, что возвращаемые конечные точки участвуют в связи с исходным объектом, где исходный объект играет определенную роль. Роль определяется указанным свойством , ссылочным свойством типа ref. Например, ключевое слово роли можно использовать для получения всех конечных точек, связанных с исходным объектом со свойством 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