カスタムディスカバリープローブおよびセンサーの例:CI にテキストファイルの値を入力
- 更新日2024年8月1日
- 所要時間:6 分
- Xanadu
- "ディスカバリー"
このカスタム ディスカバリー プローブは、 Windows コンピューターからテキストファイルを読み込み、CMDB の CI にファイルの値を入力する必要がある場合に役立ちます。
始める前に
必要なロール:admin
このタスクについて
この例では、ユーザーは BGinfo で作成されたファイルを読み込もうとしています。
注: プローブとセンサーを完了した後、 [ディスカバリー定義] > [CI 分類] > [Windows]で適切な Windows 分類子にプローブを配置します。
手順
- [ディスカバリー定義] > [プローブ]に移動し、[新規] をクリックします。
-
次のフィールドに入力します。
- 名前:プローブについて、一意でわかりやすい名前です。
- プローブタイプ:[プローブ] を選択します。
- 説明:このプローブの機能について説明します。
- ディスカバリーで使用:このチェックボックスを選択します
- ECC キュートピック:MID サーバーが実行されるプローブの名前です。この例では、WMIRunner を使用します。
- ECC キュー名:この例では、わかりやすい名前として WMI: BGInfo ファイル を使用します。
- ヘッダーバーで右クリックし、コンテキストメニューから [保存] を選択します。
- プローブフォームで [プローブパラメーター] タブを選択し、[新規] をクリックします。
- このパラメーターの名前として WMI_GetFiles.js と入力します。
- 以下のスクリプトを [スクリプト] フィールドにコピーし、必要に応じて編集します。
-
[送信] をクリックします。
// // 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); } -
[ディスカバリー定義] > [センサー]に移動し、[新規] をクリックします。
次のフィールドに入力します。
- 名前:照合するプローブと同じ名前を使用します。この例では、Windows - Get BGInfo files を使用しています。
- 反応対象プローブ:前の手順で作成されたプローブの名前:Windows - Get BGInfo files
- センサータイプ:このサンプルセンサーで作成するセンサーのタイプを選択します。
- 説明:このセンサーの機能について説明します。
- スクリプト:以下のスクリプトを [スクリプト] フィールドにコピーし、必要に応じて編集します。
- センサータイプ:この例の JavaScript で、プローブからの応答をどのように処理するかを決定します。
-
[送信] をクリックします。
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" });