このカスタム ディスカバリー プローブは、 Windows コンピューターからテキストファイルを読み込み、CMDB の CI にファイルの値を入力する必要がある場合に役立ちます。

始める前に

必要なロール:admin

このタスクについて

この例では、ユーザーは BGinfo で作成されたファイルを読み込もうとしています。
注: プローブとセンサーを完了した後、 [ディスカバリー定義] > [CI 分類] > [Windows]で適切な Windows 分類子にプローブを配置します。

手順

  1. [ディスカバリー定義] > [プローブ]に移動し、[新規] をクリックします。
  2. 次のフィールドに入力します。
    • 名前:プローブについて、一意でわかりやすい名前です。
    • プローブタイプ[プローブ] を選択します。
    • 説明:このプローブの機能について説明します。
    • ディスカバリーで使用:このチェックボックスを選択します
    • ECC キュートピック:MID サーバーが実行されるプローブの名前です。この例では、WMIRunner を使用します。
    • ECC キュー名:この例では、わかりやすい名前として WMI: BGInfo ファイル を使用します。
  3. ヘッダーバーで右クリックし、コンテキストメニューから [保存] を選択します。
  4. プローブフォームで [プローブパラメーター] タブを選択し、[新規] をクリックします。
  5. このパラメーターの名前として WMI_GetFiles.js と入力します。
  6. 以下のスクリプトを [スクリプト] フィールドにコピーし、必要に応じて編集します。
  7. [送信] をクリックします。
    
    //
     // Use ServiceNow WMIAPI to gather stats
     //
     var CMD_RETRIES = 3;
     var scanner = getScanner();
     if (scanner) {
       var output = "";
       for(var i = 0; i < CMD_RETRIES; i++) {
          output = scanner.winExec("%SystemRoot%\\system32\\cmd.exe /C type \\\"C:\\Information Systems\\BgInfo\\*.txt\\\"");
          if (output)
             break;
       }
       scanner.appendToRoot("output", output);
     }
  8. [ディスカバリー定義] > [センサー]に移動し、[新規] をクリックします。
    次のフィールドに入力します。
    • 名前:照合するプローブと同じ名前を使用します。この例では、Windows - Get BGInfo files を使用しています。
    • 反応対象プローブ:前の手順で作成されたプローブの名前:Windows - Get BGInfo files
    • センサータイプ:このサンプルセンサーで作成するセンサーのタイプを選択します。
    • 説明:このセンサーの機能について説明します。
    • スクリプト:以下のスクリプトを [スクリプト] フィールドにコピーし、必要に応じて編集します。
    • センサータイプ:この例の JavaScript で、プローブからの応答をどのように処理するかを決定します。
  9. [送信] をクリックします。
     
     
    new DiscoverySensor({ data: {}, process: function(result) { 
     
            this.parseOutput(result.output);
            this.update(this.data);
        },
     
     parseOutput: function(output) {
            var currentFile;
            var files = {};
     
     if (output.startsWith("<wmi")) {
                var bgout = new XMLHelper(output).toObject();
                if (!bgout)
                    return;
     
     output = bgout.output;
            }
     
     var lines = output.split(/\n/);
     
     for(var i = 0; i < lines.length; i++) {
                var line = lines[i];
                if (line.startsWith("C:\\Information Systems\\BgInfo\\")) {
                    currentFile = line.substr(30);
                    files[currentFile] = "";
                } else if (currentFile) {
                    var newLine = line.trim();
                    if (newLine)
                        files[currentFile] += (files[currentFile]? "\n" : "") + newLine;
                }
            }
     
     this.data['u_jack_id'] = files['JackID.txt'];
     this.data['warranty_expiration'] = files['Warranty.txt'];
     this.data['po_number'] = files['Ponum.txt'];},
     type: "DiscoverySensor"
     
     });