ASSOCIATORS OF, instruction

L’instruction ASSOCIATORS OF récupère toutes les instances associées à une instance source particulière. Les instances récupérées sont appelées points de terminaison. Chaque point de terminaison est retourné autant de fois qu’il existe d’associations entre lui et l’objet source. Par exemple, supposons qu’il existe des instances A, B, X et Y. Il existe deux instances d’association, l’une qui lie A et X, l’autre qui lie B et Y. La requête suivante retourne le point de terminaison unique X :

ASSOCIATORS OF {A}

Toutefois, s’il existe une autre association liant A et X, la requête ci-dessus retourne deux points de terminaison X.

La syntaxe de base de l’instruction ASSOCIATORS OF est la suivante :

ASSOCIATORS OF {ObjectPath}

Notez que les accolades font partie de la syntaxe. Tout chemin d’objet valide peut être utilisé pour ObjectPath. Les jetons situés dans le chemin de l’objet ne doivent pas contenir d’espaces blancs. Par exemple, la requête de la liste suivante retourne les instances associées au disque logique spécifié :

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"}

Résultats :

Win32_Directory.Name="C:\\"
Win32_ComputerSystem.Name="mycomputer"
Win32_DiskPartition.DeviceID="Disk #0, Partition #0"

À l’image de l’instruction SELECT, une instruction ASSOCIATORS OF peut inclure une clause WHERE. Toutefois, la clause WHERE d’une instruction ASSOCIATORS OF est très différente de la clause WHERE d’une instruction SELECT.

La clause WHERE de l’instruction ASSOCIATORS OF peut inclure un ou plusieurs des mots clés prédéfinis suivants et leurs valeurs :

ASSOCIATORS OF {ObjectPath} WHERE
    AssocClass = AssocClassName
    ClassDefsOnly
    RequiredAssocQualifier = QualifierName
    RequiredQualifier = QualifierName
    ResultClass = ClassName
    ResultRole = PropertyName
    Role = PropertyName

Notez que les sous-clauses facultatives ne sont pas séparées par des virgules.

Le mot clé AssocClass indique que les points de terminaison retournés doivent être associés à la source via la classe spécifiée ou l’une de ses classes dérivées. Par exemple, la requête de la liste suivante retourne uniquement les points de terminaison associés à la source via la classe d’association Win32_SystemDevices ou l’une de ses classes dérivées :

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE AssocClass = Win32_SystemDevices

Résultats :

Win32_ComputerSystem.Name="mycomputer"

Le mot clé ClassDefsOnly indique que la clause retourne un jeu de résultats d’objets de définition de classe à la place des instances réelles des classes. Ces objets sont les définitions des classes auxquelles les instances de point de terminaison appartiennent. Par exemple, la requête de la liste suivante retourne les définitions des classes Win32_Directory et Win32_ComputerSystem :

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE ClassDefsOnly

Résultats :

Win32_Directory
Win32_ComputerSystem
Win32_DiskPartition

Les mots clés ClassDefsOnly et ResultClass s’excluent mutuellement. Les utiliser ensemble provoque une erreur de requête non valide.

Le mot clé RequiredAssocQualifier indique que les points de terminaison retournés doivent être associés à l’objet source via une classe d’association qui inclut le qualificateur spécifié. Ce type de filtrage est utilisé pour éliminer de larges plages de points de terminaison, sauf si les points de terminaison sont associés à la cible via un ensemble particulier de classes d’association étiquetées. Par exemple, la requête de la liste suivante retourne des instances de point de terminaison si la classe d’association comprend un qualificateur appelé Association.

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"}
   WHERE RequiredAssocQualifier = Association

Résultats :

Win32_Directory.Name="C:\\"
Win32_ComputerSystem.Name="mycomputer"
Win32_DiskPartition.DeviceID="Disk #0, Partition #0"

Le mot clé RequiredQualifier indique que les points de terminaison retournés et associés à l’objet source doivent inclure le qualificateur spécifié. Le mot clé RequiredQualifier peut être utilisé pour inclure des types d’instance particuliers dans le jeu de résultats. Par exemple, la requête de la liste suivante retourne des instances de point de terminaison qui incluent un qualificateur appelé Locale.

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE RequiredQualifier = Locale

Résultats :

Win32_Directory.Name="C:\\"
Win32_ComputerSystem.Name="mycomputer"
Win32_DiskPartition.DeviceID="Disk #0, Partition #0"

Le mot clé ResultClass indique que les points de terminaison retournés et associés à l’objet source doivent appartenir à la classe spécifiée ou être dérivés de celle-ci. Par exemple, la requête de la liste suivante retourne les instances de point de terminaison dérivées de la classe CIM_Directory :

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE ResultClass = Cim_Directory

Résultats :

Win32_Directory.Name="C:\\"

Les mots clés ClassDefsOnly et ResultClass s’excluent mutuellement. Les utiliser ensemble provoque une erreur de requête non valide.

Le mot clé ResultRole indique que les points de terminaison retournés doivent jouer un rôle particulier dans leur association à l’objet source. Le rôle est défini par la propriété spécifiée, une propriété de référence de type ref. Par exemple, le mot clé ResultRole peut être utilisé pour récupérer tous les points de terminaison qui ont la propriété GroupComponent dans leur association à un objet source, comme l’illustre la requête suivante.

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE ResultRole = GroupComponent

Résultats :

Win32_ComputerSystem.Name="mycomputer"

Le mot clé Role indique que les points de terminaison retournés sont associés à l’objet source, où l’objet source joue un rôle particulier. Le rôle est défini par la propriété spécifiée, une propriété de référence de type ref. Par exemple, le mot clé Role peut être utilisé pour récupérer tous les points de terminaison associés à un objet source qui ont la propriété GroupComponent, comme l’illustre la requête suivante.

Requête :

ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"}
   WHERE Role = GroupComponent

Résultats :

Win32_Directory.Name="C:\\"

Notes

Les requêtes complexes ne peuvent pas utiliser « And » ou « Or » pour séparer les mots clés des instructions ASSOCIATORS OF et REFERENCES OF. De plus, le signe égal est le seul opérateur valide pouvant être utilisé dans de telles requêtes. Par exemple, la requête suivante est valide :

 

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

Notes

Les exemples suivants ne sont pas valides. Le premier exemple n’utilise pas le signe égal et le deuxième exemple tente d’utiliser de manière erronée le mot clé AND.

 

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

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