CIM プローブ

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:15分
  • CIM プローブは、WBEM プロトコルを使用して、一連のデータオブジェクトとプロパティについて、特定の CIM サーバー、CIM オブジェクトマネージャーをクエリーします。

    プローブパラメーターの設定手順については、「プローブパラメーターを設定」を参照してください。

    CIM プローブには、次のパラメーターを渡すことができます。

    表 : 1. CIM プローブ
    パラメーター 説明 デフォルト値
    ソース [必要] 接続する最初のホストです。 なし
    port 接続するポートです。空の場合、値は「schema」パラメーター:http = 5988, https = 5989 によって決定されます。 5988 または 5989
    schema [必要] 使用するスキーマ:「http」または「https」です。 http
    namespace [必要] CIM のネームスペースです。クエリーによって上書きされる場合があります。 なし
    クエリ― [必要] 結果を処理して結果を返すための、CIM プローブクエリーをセミコロンで区切って列挙します。 なし
    retries ネットワーク接続の問題により失敗した場合にクエリーを再試行する回数です。 2
    connection_timeout プローブがサーバーにコネクトする際に経過するミリ秒数です。 5000
    socket_timeout プローブがデータを読み取る際に経過するミリ秒数です。 5000

    CIM 中間クエリー言語 (CimIQL) は、キー、フィルター、ドット連結を使用して CIM スキーマをスキャンします。

    パラメーター展開

    CIM クエリー言語は、標準 SNC の前処理されたプローブパラメーター展開をサポートしています。次のように名前をカプセル化してクエリーに変数を配置します。

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

    テキスト ${foobar} は、CIM プローブに渡された foobar プローブパラメーターのコンテンツに置き換えられます。barfoo に対しても同様です。

    CIMIQL

    CIM 中間クエリー言語 (CimIQL) は、CIM プロバイダをクエリーするプロセスを簡素化するために設計された中間言語です。

    CimIQL は現在、標準的な Web ベースのエンタープライズ管理 (WBEM) プロトコルスタックをサポートしていますが、その他 (Web Service Management (WS-MAN) など) も将来追加される可能性があります。クエリー言語の構文は、Microsoft の WMI クエリー言語および UNIX の wbemcli コマンドの要素から取り入れられます。CimIQL ライブラリーは、Pure Java の実装です。

    注:
    CimIQL は「シミクル」と発音されます。

    CimIQL の構文

    CimIQL の構文は、クエリーやさまざまなトークンを含む複数の要素で構成されます。

    表 : 2. CimIQL の構文要素の説明
    要素 説明
    ステートメント CimIQL の最も基本的な要素は、有効なです。ステートメントには、ピリオドで区切られた複数のクエリーが含まれています。
    クエリー は、プロトコルに依存しない単一の高レベル要求を表します。各クエリーは、「トークン」と呼ばれる、ネストされた言語コンポーネントとサブコンポーネントで構成されています。
    トークン は、CimIQL 構文の特定の字句的側面を記述します。
    運用トークン 各クエリーの最初のトークンは、実行される全体的な論理操作を表すである必要があります。
    コンポーネントトークン は、運用トークンのサブコンポーネントです。
    結果 各クエリーは結果とペアになり、ステートメント内の次のクエリーへの入力として提供されます。は、一連のオブジェクトとそのプロパティで構成されます。

    CimIQL 運用トークン

    CimIQL プローブには、運用トークンが必要です。

    次のそれぞれのコア運用は、HTTP による CIM 運用と対応しています。

    表 : 3. CimIQL 運用トークンの概要
    リターン値 詳細 HTTP による同等の CIM 運用
    class object オブジェクトの取得

    固有のキー (キートークンとして) をすべて指定し、オプションのパラメータートークンをカンマで区切って指定することによって、特定のクラスの単一のオブジェクトを取得します。

    GetInstance
    class object オブジェクトの列挙

    一連の条件トークンパラメータートークンに一致するオブジェクトを取得します。

    EnumerateInstances
    class object 関連オブジェクトの列挙

    前のクエリーの各結果に関連付けられたオブジェクトを取得します。

    アソシエーター
    statement results 代入

    前の名前付きステートメントの結果を、その独自のステートメントの次のクエリーに入力としてフィードする、非運用トークンです。

    名前付きステートメントの結果の参照

    オブジェクトトークンの取得

    <クラス名>{<キートークン>,<パラメータートークン>,...}
    • 固有のキーすべてを (キートークンキートークンとして) 指定し、オプションのパラメータートークンをカンマで区切って指定することによって、特定のクラスの単一のオブジェクトを取得します。このトークンは、とも呼ばれます。
    • <クラス名> は、目的のオブジェクトの大文字と小文字を区別する CIM クラス名です。デフォルトでは、指定されたクラスとそのすべての拡張クラスのオブジェクトが取得されます。
    • キーおよびパラメータートークンは、一組の波かっこ ({...}) で囲まれています。
    • このトークンは、かならずステートメント内の最初のクエリーとして使用する必要があります。
    • リターン:クラスオブジェクト
    • 例:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    オブジェクトトークンの列挙

    <クラス名>{{<条件トークン>,<パラメータートークン>,...}}<アレイインデックストークン> または <クラス名><アレイインデックストークン>
    • 一連の条件トークンパラメータートークンに一致するオブジェクトを取得します。このトークンは、とも呼ばれます。
    • 条件トークンおよびパラメータートークンは、二組の波かっこ ({{...}}) で囲まれています。条件またはパラメーターが必要ない場合、波かっこはオプションになります。
    • <クラス名> は、目的のオブジェクトの大文字と小文字を区別する CIM クラス名です。デフォルトでは、指定されたクラスとそのすべての拡張クラスのオブジェクトが取得されます。
    • インデックストークンはオプションです。
    • このトークンは、かならずステートメント内の最初のクエリーとして使用する必要があります。
    • リターン:クラスオブジェクト
    • 例:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    関連オブジェクトトークンの列挙

    <関連クラス名>{{<プロパティフィルタートークン>,<パラメータートークン>,...}}<アレイインデックストークン> または <関連クラス名><アレイインデックストークン>
    • 前のクエリーの各結果に関連付けられたオブジェクトを取得します。
    • 条件トークンおよびパラメータートークンは、二組の波かっこ ({{...}}) で囲まれています。プロパティフィルターまたはパラメーターが必要ない場合、波かっこはオプションになります。
    • <関連クラス名> は、2 つのオブジェクトを関連付ける多対多または 1 対多のクラスの名前です。デフォルトでは、指定されたクラスとそのすべての拡張クラスのオブジェクトが取得されます。
    • 結果のオブジェクトのクラス名に基づいて結果をフィルタリングするために、<パラメータートークン>, ResultClass を指定することができます。
    • インデックストークンはオプションです。
    • このトークンは、ステートメント内の最初のクエリとして使用することができません。
    • リターン:クラスオブジェクト
    • 例:
      CIM_ComputerSystem{{Name='runtime'}}[2].*

    代入トークン

    ${<ステートメント名>}
    • 前の名前付きステートメントの結果を、その独自のステートメントの次のクエリーに入力としてフィードする、非運用トークンです。
    • リターン:void
    • 例:
      $(lastComputer).ElementName

    CimIQL コンポーネントトークン

    CimIQL プローブには、運用トークンのサブコンポーネントであるコンポーネントトークンが必要です。

    次のトークンは、運用トークンのサブコンポーネントです。
    表 : 4. CimIQL コンポーネントトークンの概要
    トークン 詳細
    プロパティトークン * または <プロパティ名>,<プロパティ名>,...

    最終結果セットの各オブジェクトに対してどのプロパティを返すかを指定します。

    クエリ区切り文字トークン . (ピリオド)

    クエリーを分割します。

    インデックストークン [インデックス]

    先行するクエリーの結果を、指定された整数インデックスの単一のオブジェクトに削減します。

    キートークン <キー名>='<値>'

    正確な値でキーとして指定されたオブジェクトプロパティに一致します。

    条件トークン <プロパティ名>< 条件付き演算子><囲まれた値>

    指定された条件に基づいて、オブジェクトの単一のプロパティに一致します。

    パラメータートークン <パラメーター名>:'<値>'

    呼び出される操作に <パラメーター名> でパラメーターを渡します。パラメーターに応じて、CimIQL の前処理中に、または要求による CIMOM によってパラメーターが使用される場合があります。

    プロパティトークン

    * または <プロパティ名>,<プロパティ名>,...
    • 最終結果セットの各オブジェクトに対してどのプロパティを返すかを指定します。
    • ワイルドカード * を使用すると、利用可能なすべてのプロパティが返されます。それ以外の場合、各プロパティ名はカンマで区切られたリストで提供されます。
    • このトークンは、各ステートメントの最後に必要です。
    • 例:
      CIM_ComputerSystem[0].*

    クエリー区切り文字トークン

    . (ピリオド)
    • クエリーを分割します。
    • 例:
      CIM_ComputerSystem.PrimaryOwnerContact

    インデックストークン

    [インデックス]
    • 先行するクエリーの結果を、指定された整数インデックスの単一のオブジェクトに削減します。
    • このトークンは常にオプションです。
    • 例:
      CIM_ComputerSystem[0].*

    キートークン

    <キー名>='<値>'
    • 正確な値でキーとして指定されたオブジェクトプロパティに一致します。
    • <キー名> は、キーとして使用されるプロパティの名前です。
    • 例:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    条件トークン

    <プロパティ名>< 条件付き演算子><囲まれた値>
    • 指定された条件に基づいて、オブジェクトの単一のプロパティに一致します。
    • <プロパティ名> は、照合するプロパティの名前です。
    • <条件付き演算子> は、プロパティの実際の値を予期される値と比較する方法を決定します。利用可能な演算子は、等値 (=) および非等値 (! =) です。
    • <囲まれた値> は、次のいずれかである必要があります。
      • リテラル値は単一引用符で囲まれます (' ... ')。例:foo='bar'
      • 正規表現は、一組のスラッシュで囲まれます (/ ... /)。例:foo=/bar.*/
    • 例:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    パラメータートークン

    <パラメーター名>:'<値>'
    • 呼び出される操作に <パラメーター名> でパラメーターを渡します。パラメーターに応じて、CimIQL の前処理中に、または要求による CIMOM によってパラメーターが使用される場合があります。
    • 例:
      CIM_ComputerSystem.CIM_RunningOS{{ResultClass:'Win32_ComputerSystem'}}.*

    CimIQL チュートリアル

    このチュートリアルは、それぞれの例が前の例でビルドされる例を示しています。

    表 : 5. CimIQL チュートリアル
    順序 CimIQL ステートメント 結果
    1 CIM_ComputerSystem [0]. * CIM_ComputerSystem とその派生のすべてのインスタンスの最初の結果を取得します。すべてのプロパティを取得します。
    2 CIM_ComputerSystem.PrimaryOwnerContact CIM_ComputerSystem とその派生のすべてのインスタンスを取得します。1 つのプロパティ、PrimaryOwnerContact のみを取得します。
    3 CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.* CIM_ComputerSystem とその派生の単一の固有のインスタンスを取得します。すべてのキートークンは、{} ID トークン内で指定する必要があります。
    4 CIM_ComputerSystem{{Name!='runtime'}}.*

    [名前] プロパティが「runtime」でない CIM_ComputerSystem のすべてのインスタンスと派生を取得します。

    フィルタートークン {{}} は、指定されたすべてのプロパティ / キーを含まないインスタンスをフィルタリングします。

    5 CIM_ComputerSystem{{Name=/^run.*$/}}.*
    / / 文字内に含まれる正規表現に一致する値を持つ CIM_ComputerSystem のすべてのインスタンスと派生を取得します。
    注:
    正規表現には単一の引用符は必要ありません。

    フィルタートークン {{}} は、指定されたすべてのプロパティ / キーを含まないインスタンスをフィルタリングします。

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

    プロパティ名が「runtime」である CIM_ComputerSystem のすべてのインスタンスとその派生について、2 番目の結果を取得します。

    操作の順序は、クエリーの構文に従います。
    1. すべての CIM_ComputerSystem と派生に対してサーバーをクエリーします。
    2. 名前プロパティに基づいて結果をフィルタリングします。
    3. フィルターを通過した 2 番目のインスタンスを取得します。
    7 CIM_ComputerSystem.CIM_RunningOS[0].Name

    各 CIM_ComputerSystem インスタンスの最初の CIM_OperatingSystem インスタンスの名前プロパティを取得します。

    中央のトークンである CIM_RunningOS は、最終結果ではなく、アソシエータークラスの名前です。

    8 CIM_ComputerSystem.CIM_RunningOS{{Name=/CentOS/}}[0].Name 各 CIM_ComputerSystem インスタンスの最初の CIM_OperatingSystem インスタンスの名前プロパティを取得します。ここで、各 CIM_OperatingSystem インスタンスの名前プロパティには「CentOS」が含まれます。

    CimIQL 結果

    CIM プローブの結果は、<output> 要素内に埋め込まれた XML ドキュメントとしてプローブセンサーに渡されます。

    次に、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>