CIM-Probe

  • Freigeben Version: Australia
  • Aktualisiert 12. März 2026
  • 8 Minuten Lesedauer
  • Die CIM-Probe verwendet WBEM-Protokolle, um einen bestimmten CIM-Server, den CIM-Objektmanager, nach einer Reihe von Datenobjekten und Eigenschaften abzufragen.

    Anweisungen zum Konfigurieren von Probe-Parametern finden Sie unter Legen Sie die Probe-Parameter fest.

    Die folgenden Parameter können an die CIM-Probe übergeben werden:

    Tabelle : 1. CIM-Probe
    Parameter Beschreibung Standardwert
    Quelle [Erforderlich] der anfängliche Host, mit dem eine Verbindung hergestellt werden soll. Keine
    Port Der Port, mit dem eine Verbindung hergestellt werden soll. Wenn leer, wird der Wert durch den Parameter „Schema“ bestimmt: http = 5988, https = 5989. 5988 oder 5989
    Schema [Erforderlich] das zu verwendende Schema: „„http““ oder „„https““. http
    namespace [Erforderlich] der CIM-Namespace. Kann von einer Abfrage überschrieben werden. Keine
    queries [Erforderlich] Eine durch Semikolon getrennte Liste von CIM-Probe-Abfragen, für die Ergebnisse verarbeitet und zurückgegeben werden sollen. Keine
    Wiederholungen Die Anzahl der Wiederholungsversuche einer Abfrage, wenn sie aufgrund von Netzwerkkonnektivitätsproblemen fehlschlägt. 2
    Connection_timeout Die Anzahl der Millisekunden, die die Probe benötigt, um eine Verbindung zu einem Server herzustellen. 5.000
    Socket_Timeout Die Anzahl der Millisekunden, die die Probe zum Lesen von Daten benötigt. 5.000

    Die CIM-Intermediate-Abfragesprache (CimIQL) verwendet Schlüssel, Filter und Dot-Walking, um das CIM-Schema zu durchlaufen.

    Parametererweiterung

    Die CIM-Abfragesprache unterstützt die standardmäßige SNC-Parametererweiterung für vorverarbeitete Probe. Platzieren Sie Variablen in Abfragen, indem Sie ihre Namen wie folgt verkapseln:

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

    Der Text ${Foobar} wird durch den Inhalt des an die CIM-Probe übergebenen Foobarprobe-Parameters ersetzt, ebenso für barfoo.

    CIMIQL

    Die CIM-Intermediate-Abfragesprache (CimIQL) ist eine Zwischensprache, die den Prozess der Abfrage von CIM-Anbietern vereinfachen soll.

    CimIQL unterstützt derzeit den standardmäßigen WBEM-Protokollstapel (Web-Based Enterprise Management), andere, z. B. Webservicemanagement (WS-MAN), können jedoch in Zukunft hinzugefügt werden. Die Syntax der Abfragesprache entlehnt sich Elemente von Microsoft WMI-Abfragesprache und UNIX Wbemcli-Befehl von . Die CimIQL-Bibliothek ist eine reine Java-Implementierung.

    Hinweis:
    CimIQL wird „simicle“ ausgesprochen.

    CimIQL-Syntax

    Die CimIQL-Syntax besteht aus mehreren Elementen, einschließlich einer Abfrage und verschiedenen Token.

    Tabelle : 2. Beschreibungen des CimIQL-Syntaxelements
    Element Beschreibung
    Erklärung Das grundlegendste Element von CimIQL ist gültig . Eine Anweisung enthält mehrere Abfragen, die durch einen Punkt getrennt sind. Zeichen.
    Abfrage A Stellt eine einzelne protokollunabhängige Anforderung auf allgemeiner Ebene dar. Jede Abfrage besteht aus geschachtelten Sprachkomponenten und Unterkomponenten, die als Token bezeichnet werden.
    Token A Beschreibt einen bestimmten lexikalischen Aspekt der CimIQL-Syntax.
    Vorgangstoken Das erste Token jeder Abfrage muss ein sein , Der den gesamten auszuführenden logischen Vorgang darstellt.
    Komponentententoken A Ist eine Unterkomponente eines Vorgangstoken.
    Ergebnis Jede Abfrage wird mit einem Ergebnis gekoppelt, das dann als Eingabe für die nächste Abfrage in der Anweisung bereitgestellt wird. A Besteht aus einer Reihe von Objekten und ihren Eigenschaften.

    CimIQL-Vorgangstoken

    Die CimIQL-Probe erfordert Vorgangstoken.

    Jeder der folgenden Kernvorgänge hat ein Gegenstück in CIM-Vorgänge über HTTP Standard.

    Tabelle : 3. Zusammenfassung des CimIQL-Vorgangstoken
    Rückgabewert Details Entsprechender CIM-Vorgang über HTTP
    Klassenobjekt Objekt Abrufen

    Ruft ein einzelnes Objekt einer bestimmten Klasse ab, indem alle ihre eindeutigen Schlüssel (als) angegeben werden Schlüssel-Token ) Und beliebig optional Parameter-Token , Durch Kommas getrennt.

    GetInstance
    Klassenobjekt Objekte Auflisten

    Ruft Objekte ab, die einem Satz von entsprechen Bedingungstoken Und Parameter-Token .

    EnumerateInstances
    Klassenobjekt Listet Zugeordnete Objekte Auf

    Ruft Objekte ab, die jedem Ergebnis aus der vorherigen Abfrage zugeordnet sind.

    Associators
    Anweisungsergebnisse Substitution

    Ein No-OP-Token, das die Ergebnisse einer vorherigen benannten Anweisung als Eingabe in die nächste Abfrage der eigenen Anweisung einspeist.

    Referenzieren Sie die Ergebnisse einer benannten Anweisung

    Objekt-Token Abrufen

    <classname>{<key token>,<parameter token>,...}
    • Ruft ein einzelnes Objekt einer bestimmten Klasse ab, indem alle ihre eindeutigen Schlüssel (als Schlüssel-Token) angegeben werden Schlüssel-Token ) Und beliebig optional Parameter-Token , Durch Kommas getrennt. Dieses Token wird auch als bezeichnet .
    • Der <classname> ist der CIM-Klassenname des gewünschten Objekts, bei dem die Groß-/Kleinschreibung beachtet wird. Standardmäßig werden Objekte der angegebenen Klasse und aller erweiterten Klassen abgerufen.
    • Die Schlüssel- und Parameter-Token werden von einem einzelnen Paar geschweifter Klammern { ... } eingeschlossen.
    • Dieses Token darf nur als erste Abfrage in einer Anweisung verwendet werden.
    • Gibt zurück: Klassenobjekt
    • Beispiel:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Objekttoken Auflisten

    <classname>{{<condition token>,<parameter token>,...}}<Array-Index-Token> ODER <classname><Array-Index-Token>
    • Ruft Objekte ab, die einem Satz von entsprechen Bedingungstoken Und Parameter-Token . Dieses Token wird auch als bezeichnet .
    • Die Bedingungstoken und Parameter-Token werden von zwei Paaren geschweifter Klammern {{ ... }} eingeschlossen. Die geschweiften Klammern sind optional, wenn keine Bedingungen oder Parameter erforderlich sind.
    • Der <classname> ist der CIM-Klassenname der gewünschten Objekte, bei dem die Groß-/Kleinschreibung beachtet wird. Standardmäßig werden Objekte der angegebenen Klasse und aller erweiterten Klassen abgerufen.
    • Die Indextoken Ist optional.
    • Dieses Token darf nur als erste Abfrage in einer Anweisung verwendet werden.
    • Gibt zurück: Klassenobjekt
    • Beispiel:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Listet Zugeordnete Objekttoken Auf

    <association classname>{{<Eigenschaftsfilter-Token>,<parameter token>,...}}<Array-Index-Token> ODER <association classname><Array-Index-Token>
    • Ruft Objekte ab, die jedem Ergebnis aus der vorherigen Abfrage zugeordnet sind.
    • Die Bedingungstoken Und Parameter-Token Werden von zwei Paaren geschweifter Klammern {{ ... }} eingeschlossen. Die geschweiften Klammern sind optional, wenn keine Eigenschaftsfilter oder Parameter erforderlich sind.
    • Der <association classname> ist der Name der viele-zu-viele- oder eins-zu-viele-Klasse, die zwei Objekte miteinander verknüpft. Standardmäßig werden Objekte der angegebenen Klasse und aller erweiterten Klassen abgerufen.
    • Die <parameter token>, Ergebnisklasse, kann angegeben werden, um Ergebnisse basierend auf dem Klassennamen des resultierenden Objekts zu filtern.
    • Die Indextoken Ist optional.
    • Dieses Token darf nicht als erste Abfrage in einer Anweisung verwendet werden.
    • Gibt zurück: Klassenobjekt
    • Beispiel:
      CIM_ComputerSystem{{Name='runtime'}}[2].*

    Ersetzungstoken

    ${<statement name>}
    • Ein No-OP-Token, das die Ergebnisse einer vorherigen benannten Anweisung als Eingabe in die nächste Abfrage der eigenen Anweisung einspeist.
    • Gibt zurück: Ungültig
    • Beispiel:
      $(lastComputer).ElementName

    CimIQL-Komponenten-Token

    Die CimIQL-Probe erfordert Komponenten-Token, bei denen es sich um Unterkomponenten operativer Token handelt.

    Die folgenden Token sind Unterkomponenten von Vorgangstoken .
    Tabelle : 4. Zusammenfassung des CimIQL-Komponentententokens
    Token Details
    Eigenschaften-Token * ODER <property name>,<property name>,...

    Gibt an, welche Eigenschaften für jedes Objekt des endgültigen Ergebnissatzes zurückgegeben werden sollen.

    Trennzeichen-Token Abfragen an. (Zeitraum)

    Trennt Abfragen.

    Indextoken [Index]

    Reduziert die Ergebnisse einer vorhergehenden Abfrage auf ein einzelnes Objekt im angegebenen ganzzahligen Index.

    Schlüsseltoken <key name>='<value>'

    Stimmt mit einer als Schlüssel festgelegten Objekteigenschaft anhand des genauen Werts überein.

    Bedingungstoken <property name> <conditional operator> <enclosed value>

    Entspricht einer einzelnen Eigenschaft eines Objekts basierend auf der angegebenen Bedingung.

    Parametertoken <parameter name>:„<value>“

    Übergibt einen Parameter von <parameter name> an den aufgerufenen Vorgang. Der Parameter kann je nach Parameter während der CimIQL-Vorverarbeitung oder vom CIMOM per Anforderung verbraucht werden.

    Eigenschaftstoken

    * ODER <property name>,<property name>,...
    • Gibt an, welche Eigenschaften für jedes Objekt des endgültigen Ergebnissatzes zurückgegeben werden sollen.
    • Der Platzhalter * gibt alle verfügbaren Eigenschaften zurück. Andernfalls wird jeder gewünschte Eigenschaftsname in einer kommagetrennten Liste angegeben.
    • Dieses Token ist am Ende jeder Anweisung erforderlich.
    • Beispiel:
      CIM_ComputerSystem[0].*

    Trennzeichen-Token Abfragen

    an. (Zeitraum)
    • Trennt Abfragen.
    • Beispiel:
      CIM_ComputerSystem.PrimaryOwnerContact

    Indextoken

    [Index]
    • Reduziert die Ergebnisse einer vorhergehenden Abfrage auf ein einzelnes Objekt im angegebenen ganzzahligen Index.
    • Dieses Token ist immer optional.
    • Beispiel:
      CIM_ComputerSystem[0].*

    Schlüsseltoken

    <key name>='<value>'
    • Stimmt mit einer als Schlüssel festgelegten Objekteigenschaft anhand des genauen Werts überein.
    • Der <key name> ist der Name der Eigenschaft, die als Schlüssel verwendet wird.
    • Beispiel:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Bedingungstoken

    <property name> <conditional operator> <enclosed value>
    • Entspricht einer einzelnen Eigenschaft eines Objekts basierend auf der angegebenen Bedingung.
    • Der <property name> ist der Name der Eigenschaft, mit der abgeglichen werden soll.
    • Der <conditional operator> bestimmt, wie der ist-Wert der Eigenschaft mit dem erwarteten Wert verglichen wird. Die verfügbaren Operatoren sind Gleichheit (=) und Ungleichheit (!=).
    • Die <enclosed value> muss eine der folgenden sein:
      • Literaler Wert, der in einfache Anführungszeichen „ ...“ eingeschlossen ist. Beispiel: Foo='bar'
      • Regulärer Ausdruck, eingeschlossen von einem Schrägstrich-Paar / ... /. Beispiel: Foo=/bar.*/
    • Beispiel:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Parametertoken

    <parameter name>:„<value>“
    • Übergibt einen Parameter von <parameter name> an den aufgerufenen Vorgang. Der Parameter kann je nach Parameter während der CimIQL-Vorverarbeitung oder vom Objektmanager für allgemeine Informationsmodelle (Common Information Model Object Manager, CIMOM) per Anforderung verbraucht werden.
    • Beispiel:
      CIM_ComputerSystem.CIM_RunningOS{{ResultClass:'Win32_ComputerSystem'}}.*

    CimIQL-Tutorial

    Dies ist ein Beispielprogramm, in dem jedes Beispiel auf dem vorherigen Beispiel aufbaut.

    Tabelle : 5. CimIQL-Tutorial
    Reihenfolge CimIQL-Anweisung Ergebnis
    1 CIM_Computersystem[0].* Ruft ab Erstes Ergebnis Aller Instanzen von CIM_ComputerSystem und seinen untergeordneten Elementen. Ruft alle ab Eigenschaften .
    2 CIM_Computersystem.PrimaryBesitzerKontakt Ruft alle Instanzen von CIM_ComputerSystem und ihre untergeordneten Elemente ab. Ruft nur einen ab Eigenschaft , PrimaryOwnerContact.
    3 CIM_Computersystem{CreationClassName='Linux_Computersystem',Name='Runtime'}.* Ruft eine einzelne eindeutige Instanz von CIM_ComputerSystem und seinen untergeordneten Elementen ab. Alle Schlüssel-Token Muss innerhalb von { } angegeben werden Identitätstoken .
    4 CIM_Computersystem{{Name!='Runtime'}.*

    Ruft alle Instanzen und untergeordneten Elemente von CIM_Computersystem ab, die keinen Namen haben Eigenschaft Von „Laufzeit“.

    Die Filtertoken {{ }} filtert Instanzen heraus, die nicht alle angegebenen Eigenschaften/Schlüssel enthalten.

    5 CIM_Computersystem{{Name=/^Run.*$/}}.*
    Ruft alle Instanzen und untergeordneten Elemente von CIM_Computersystem ab, deren Wert dem regulären Ausdruck entspricht, der in den / /-Zeichen enthalten ist.
    Hinweis:
    Der reguläre Ausdruck erfordert keine einfachen Anführungszeichen.

    Die Filtertoken {{ }} filtert Instanzen heraus, die nicht alle angegebenen Eigenschaften/Schlüssel enthalten.

    6 CIM_Computersystem{{Name='Runtime'}[2].*

    Ruft ab Zweites Ergebnis Aller Instanzen von CIM_ComputerSystem und seinen untergeordneten Elementen Wo Die Instanzen haben den Eigenschaftsnamen „Laufzeit“.

    Die Reihenfolge der Vorgänge folgt der Abfragesyntax.
    1. Abfrage Server für alle CIM_Computersysteme und untergeordneten Elemente.
    2. Filtern Ergebnisse basierend auf der Namenseigenschaft.
    3. Rufen Sie die Sekunde ab Instanz, die den Filter bestanden hat.
    7 CIM_Computersystem.CIM_RunningOS[0].Name

    Ruft den Namen ab Eigenschaft Für die erste CIM_OperatingSystem-Instanz jeder CIM_Computersystem-Instanz.

    Das Middle-Token, CIM_RunningOS, ist der Name von Zuordnungsklasse , Nicht das Endergebnis.

    8 CIM_Computersystem.CIM_RunningOS{{Name=/CentOS/}}[0].Name Ruft den Namen ab Eigenschaft Für die erste CIM_OperatingSystem-Instanz jeder CIM_Computersystem-Instanz, Wo Jede Instanz „CIM_OperatingSystem“ hat eine Namenseigenschaft, die „CentOS“ enthält.

    CimIQL-Ergebnisse

    CIM-Testergebnisse werden als XML-Dokument, das in eingebettet ist, an den Probe-Sensor übergeben <output>Element.

    Das folgende ist ein kommentiertes Beispiel für ein CimQuery-Batch-Ergebnis.
    <!-- 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>