Sonde CIM

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 10 minutes de lecture
  • La sonde CIM utilise les protocoles WBEM pour interroger un serveur CIM particulier, le gestionnaire d’objets CIM, pour un ensemble d’objets de données et de propriétés.

    Pour plus d’informations sur la configuration des paramètres de sonde, reportez-vous à la section Définir les paramètres de sonde.

    Les paramètres suivants peuvent être transmis à la sonde CIM :

    Tableau 1. Sonde CIM
    Paramètre Description Valeur par défaut
    source [Obligatoire] L’hôte initial auquel se connecter. Néant
    port Port auquel se connecter. S’il est vide, la valeur est déterminée par le paramètre « schema » : http = 5988, https = 5989. 5988 ou 5989
    Schéma [Obligatoire] Le schéma à utiliser : '"http"' ou '"https"'. http
    espace de noms [Obligatoire] Espace de noms CIM. Peut être remplacé par une requête. Néant
    requêtes [Obligatoire] Liste délimitée par des points-virgules des requêtes de sonde CIM à traiter et pour lesquelles renvoyer les résultats. Néant
    Nouveaux essais Nombre de nouvelles tentatives d’une requête si elle échoue en raison de problèmes de connectivité réseau. 2
    connection_timeout Nombre de millisecondes dont dispose la sonde pour se connecter à un serveur. 5000
    socket_timeout Nombre de millisecondes dont la sonde dispose pour lire les données. 5000

    Le langage de requête intermédiaire CIM (CimIQL) utilise des clés, des filtres et une remontée pas à pas pour parcourir le schéma CIM.

    Extension de paramètre

    Le langage de requête CIM prend en charge l’expansion des paramètres de sonde prétraitée SNC standard. Placez des variables dans les requêtes en encapsulant leurs noms comme ceci :

    ${foobar}.CIM_RunningOS[0].Name
    CIM_ComputerSystem.${barfoo}

    Le texte ${foobar} est remplacé par le contenu du paramètre foobarprobe passé à la sonde CIM ; De même pour Barfoo.

    Le CIMIQL

    Le CIM Intermediate Query Language (CimIQL) est un langage intermédiaire conçu pour simplifier le processus d’interrogation des fournisseurs CIM.

    CimIQL prend actuellement en charge la pile de protocoles WBEM (Web-Based Enterprise Management), mais d’autres, tels que WS-MAN (Web Services-Management), pourraient être ajoutés à l’avenir. La syntaxe du langage de requête emprunte à des éléments du langage UNIX de requête WMI de et de Microsoft la commande wbemcli de . La bibliothèque CimIQL est une implémentation purement Java.

    Remarque :
    CimIQL se prononce « simicle ».

    Syntaxe de CimIQL

    La syntaxe de CimIQL se compose de plusieurs éléments, dont une requête et différents jetons.

    Tableau 2. Descriptions d’éléments de syntaxe CimIQL
    Élément Description
    Instruction L’élément le plus fondamental de CimIQL est une valide. Une instruction contient plusieurs requêtes délimitées par un point . caractère.
    Requête Une représente une requête unique de haut niveau indépendante du protocole. Chaque requête est composée de composants et de sous-composants de langage imbriqués appelés jetons.
    Jeton Un décrit un aspect lexical spécifique de la syntaxe CimIQL.
    Jeton d’opération Le premier jeton de chaque requête doit être un , qui représente l’opération logique globale à effectuer.
    Jeton de composant Un est un sous-composant d’un jeton d’opération.
    Résultat Chaque requête est associée à un résultat, qui est ensuite fourni comme entrée à la requête suivante de l’instruction. Un est composé d’un ensemble d’objets et de leurs propriétés.

    Jetons d’opération CimIQL

    La sonde CimIQL nécessite des jetons d’opération.

    Chacune des opérations de base suivantes a une contrepartie dans la norme Opérations CIM sur HTTP .

    Tableau 3. Résumé du jeton d’opération CimIQL
    Valeur de retour Détails Opération CIM équivalente sur HTTP
    Objet de classe Obtenir un objet

    Récupère un objet unique d’une classe spécifique en spécifiant toutes ses clés uniques (sous forme de jetons de clé) et tous les jetons de paramètre facultatifs, séparés par des virgules.

    GetInstance
    Objet de classe Énumérer les objets

    Récupère les objets qui correspondent à un ensemble de jetons de condition et de jetons de paramètre.

    EnumerateInstances
    Objet de classe Énumérer les objets associés

    Récupère les objets associés à chaque résultat de la requête précédente.

    Associateurs
    Résultats des relevés Substitution

    Jeton no-op qui alimente les résultats d’une instruction nommée précédente en tant qu’entrée dans la requête suivante de sa propre instruction.

    Référencer les résultats d’une instruction nommée

    Obtenir le jeton d’objet

    <classname>{<key token>,<parameter token>,...}
    • Récupère un objet unique d’une classe spécifique en spécifiant toutes ses clés uniques (sous forme de jetons de clé, de jetons de clé) et tous les jetons de paramètre facultatifs, séparés par des virgules. Ce jeton est également connu sous le nom de .
    • Le <classname> est le nom de classe CIM sensible à la casse de l’objet souhaité. Par défaut, les objets de la classe spécifiée et de toutes les classes étendues sont récupérés.
    • Les jetons de clé et de paramètre sont entourés d’une seule paire d’accolades { ... }.
    • Ce jeton ne doit être utilisé que comme première requête d’une instruction.
    • Renvoie : objet de classe
    • Exemple :
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Énumérer le jeton d’objets

    <classname>{{<condition token>,<parameter token>,...}}<jeton d’index de tableau> OU <classname><jeton d’index de tableau>
    • Récupère les objets qui correspondent à un ensemble de jetons de condition et de jetons de paramètre. Ce jeton est également connu sous le nom de .
    • Les jetons de condition et les jetons de paramètre sont entourés de deux paires d’accolades {{ ... }}. Les accolades sont facultatives si aucune condition ou aucun paramètre n’est nécessaire.
    • Le <classname> est le nom de classe CIM sensible à la casse des objets souhaités. Par défaut, les objets de la classe spécifiée et de toutes les classes étendues sont récupérés.
    • Le jeton d’index est facultatif.
    • Ce jeton ne doit être utilisé que comme première requête d’une instruction.
    • Renvoie : objet de classe
    • Exemple :
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Énumérer le jeton d’objets associés

    <nom de classe de l’association>{{<jeton de filtre de propriété>,jeton de paramètre <>,...}}<jeton d’index de tableau> OU <nom de classe d’association><jeton d’index de tableau>
    • Récupère les objets associés à chaque résultat de la requête précédente.
    • Les jetons de condition et les jetons de paramètre sont entourés de deux paires d’accolades {{ ... }}. Les accolades sont facultatives si aucune propriété, filtre ou paramètre n’est nécessaire.
    • Le <nom de classe de l’association> est le nom de la classe plusieurs-à-plusieurs ou un-à-plusieurs qui associe deux objets. Par défaut, les objets de la classe spécifiée et de toutes les classes étendues sont récupérés.
    • Le <jeton de paramètre>, ResultClass, peut être spécifié pour filtrer les résultats en fonction du nom de classe de l’objet résultant.
    • Le jeton d’index est facultatif.
    • Ce jeton ne doit pas être utilisé comme première requête dans une instruction.
    • Renvoie : objet de classe
    • Exemple :
      CIM_ComputerSystem{{Name='runtime'}}[2].*

    Jeton de substitution

    ${<nom du relevé>}
    • Jeton no-op qui alimente les résultats d’une instruction nommée précédente en tant qu’entrée dans la requête suivante de sa propre instruction.
    • Renvoie : nul
    • Exemple :
      $(lastComputer).ElementName

    Jetons de composant CimIQL

    La sonde CimIQL nécessite des jetons de composant, qui sont des sous-composants des jetons opérationnels.

    Les jetons suivants sont des sous-composants des jetons d’opération.
    Tableau 4. Résumé du jeton de composant CimIQL
    Jeton Détails
    Jeton de propriétés * OU <nom de la propriété>,<nom de la propriété>,...

    Spécifie les propriétés à renvoyer pour chaque objet de l’ensemble de résultats final.

    Jeton du . (Un point c’est tout)

    Sépare les requêtes.

    Jeton [Index]

    Réduit les résultats d’une requête précédente à un seul objet à l’index entier spécifié.

    Jeton de <nom de clé>='<valeur>'

    Correspond à une propriété d’objet désignée comme clé par valeur exacte.

    Jeton de <nom de la propriété><opérateur conditionnel><valeur entre guillemets>

    Correspond à une propriété unique d’un objet en fonction de la condition spécifiée.

    Jeton de paramètre <nom du paramètre > :'<value>'

    Transmet un paramètre par <nom du paramètre> à l’opération appelée. Le paramètre peut être consommé pendant le prétraitement de CimIQL ou par le CIMOM sur demande, selon le paramètre.

    Jeton de propriétés

    * OU <nom de la propriété>,<nom de la propriété>,...
    • Spécifie les propriétés à renvoyer pour chaque objet de l’ensemble de résultats final.
    • Le caractère générique * renvoie toutes les propriétés disponibles. Dans le cas contraire, chaque nom de propriété souhaité est fourni dans une liste séparée par des virgules.
    • Ce jeton est requis à la fin de chaque instruction.
    • Exemple :
      CIM_ComputerSystem[0].*

    Jeton du délimiteur de requête

    . (Un point c’est tout)
    • Sépare les requêtes.
    • Exemple :
      CIM_ComputerSystem.PrimaryOwnerContact

    Jeton d’index

    [Index]
    • Réduit les résultats d’une requête précédente à un seul objet à l’index entier spécifié.
    • Ce jeton est toujours facultatif.
    • Exemple :
      CIM_ComputerSystem[0].*

    Jeton de clé

    <nom de clé>='<valeur>'
    • Correspond à une propriété d’objet désignée comme clé par valeur exacte.
    • Le < nom de la clé > est le nom de la propriété utilisée comme clé.
    • Exemple :
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Jeton de condition

    <nom de la propriété><opérateur conditionnel><valeur entre guillemets>
    • Correspond à une propriété unique d’un objet en fonction de la condition spécifiée.
    • Le < nom de la propriété > correspond au nom de la propriété à mettre en correspondance.
    • L'<opérateur conditionnel> détermine comment la valeur réelle de la propriété est comparée à sa valeur attendue. Les opérateurs disponibles sont égalité (=) et inégalité ( !=).
    • La <valeur entre guillemets> doit être l’une des suivantes :
      • Valeur littérale entre guillemets simples ' ... '. Par exemple, foo='bar'
      • Expression régulière, entourée d’une paire de barres obliques / ... /. Par exemple, foo=/bar.*/
    • Exemple :
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Jeton de paramètre

    <nom du paramètre > :'<value>'
    • Transmet un paramètre par <nom du paramètre> à l’opération appelée. Le paramètre peut être consommé pendant le prétraitement CimIQL ou par le gestionnaire d’objets CIMOM (Common Information Model Object Manager) via demande, selon le paramètre.
    • Exemple :
      CIM_ComputerSystem.CIM_RunningOS{{ResultClass:'Win32_ComputerSystem'}}.*

    Tutoriel CimIQL

    Il s’agit d’un didacticiel par exemple où chaque exemple s’appuie sur l’exemple précédent.

    Tableau 5. Tutoriel CimIQL
    Ordre Déclaration CimIQL Résultat
    1 CIM_ComputerSystem[0].* Récupère le premier résultat de toutes les instances de CIM_ComputerSystem et de ses descendants. Récupère toutes les propriétés.
    2 CIM_ComputerSystem.ContactPropriétairePrimaire Récupère toutes les instances de CIM_ComputerSystem et leurs descendants. Récupère une seule propriété, PrimaryOwnerContact.
    3 CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.* Récupère une instance unique de CIM_ComputerSystem et de ses descendants. Tous les jetons de clé doivent être spécifiés dans le jeton d’identité { }.
    4 CIM_ComputerSystem{{Name !='runtime'}}.*

    Récupère toutes les instances et les descendants des CIM_ComputerSystem qui n’ont pas de propriété de nom « runtime ».

    Le jeton de filtre {{ }} filtre les instances qui ne contiennent pas toutes les propriétés/clés spécifiées.

    5 CIM_ComputerSystem{{Name=/^run.*$/}}.*
    Récupère toutes les instances et les descendants de CIM_ComputerSystem dont la valeur correspond à l’expression régulière contenue dans les caractères / /.
    Remarque :
    L’expression régulière ne nécessite pas de guillemets simples.

    Le jeton de filtre {{ }} filtre les instances qui ne contiennent pas toutes les propriétés/clés spécifiées.

    6 CIM_ComputerSystem{{Name='runtime'}}[2].*

    Récupère le deuxième résultat de toutes les instances de CIM_ComputerSystem et de ses descendants lorsque les instances ont un nom de propriété « runtime ».

    L’ordre des opérations suit la syntaxe de la requête.
    1. Serveur de requêtes pour tous les CIM_ComputerSystem et descendants.
    2. Filtrer les résultats en fonction de la propriété Nom.
    3. Récupérez la deuxième instance qui a réussi le filtre.
    7 CIM_ComputerSystem.CIM_RunningOS[0]. Name (Nom)

    Récupère la propriété Nom de la première instance CIM_OperatingSystem de chaque instance CIM_ComputerSystem.

    Le jeton du milieu, CIM_RunningOS, est le nom de la classe Associateur, et non le résultat final.

    8 CIM_ComputerSystem.CIM_RunningOS{{Nom=/CentOS/}}[0]. Name (Nom) Récupère la propriété Nom de la première instance CIM_OperatingSystem de chaque instance CIM_ComputerSystem, chaque instance CIM_OperatingSystem a une propriété Nom contenant « CentOS ».

    Résultats CimIQL

    Les résultats de la sonde CIM sont transmis au capteur de sonde sous la forme d’un document XML incorporé dans l’élément <output> .

    Voici un exemple commenté d’un résultat de lot CimQuery.
    <!-- document root -->
     <cimqueryset>
     <!-- A single query and query result. Multiple <cimquery> tags may be provided. -->
     <cimquery>
       <!-- The original query, enclosed by CDATA. -->
       <query><!CDATA[[>CIM_ComputerSystem[0].PrimaryOwnerContact<! ]]></query>
       <!-- The resulting data is enclosed within a single <result> tag. -->
       <result>
         <!-- A single class instance result. Multiple <instance> tags may be provided.
              Special tags are prefixed with an underscore character. -->
         <instance>
           <!-- The instance's CIM classname -->
           <_classname>Linux_ComputerSystem</_classname>
           <!-- A set of this instances identifying keys. Always provided, regardless of property filters.
                Within here, each key is provided as <KeyName>VALUE</KeyName> with the VALUE enclosed as CDATA. -->
           <_key>
             <CreationClassName><![CDATA[Linux_ComputerSystem]]></CreationClassName>
             <Name><![CDATA[runtime]]></Name>
           </_key>
           <!-- Each property that matches the query's property filter will be provided here, in the same format as keys;
                As <PropertyName>VALUE<PropertyName> where VALUE is enclosed as CDATA -->
           <PrimaryOwnerContact><![CDATA[root@runtime]]></PrimaryOwnerContact>
         </instance>
       </result>
     </cimquery>
     </cimqueryset>