---
sourceDocument: Australia IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/it-operations-management

 Release :

    - australia

ft:locale :

    - de-DE

ft:publication_title :

    - Australia IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Example custom Discovery probe and sensor: populate a CI with text file values

# Example custom Discovery probe and sensor: populate a CI with text file values {#ariaid-title1}

* Freigeben Version: Australia
* 
* Aktualisiert 12. März 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

This custom Discovery probe
helps you if you need to read a text file from a Windows computer and populate a CI in
the CMDB with the values from the file.

## Vorbereitungen

Role required: admin

## Warum und wann dieser Vorgang ausgeführt wird

In this example the user wanted to read files created by BGinfo.  
Hinweis:  
When you have completed the probe and sensor, place the probe in the appropriate Windows classifier at Discovery DefinitionCI ClassificationWindows.

## Prozedur

1. Navigate to Discovery DefinitionProbes, and then click New.
2. Complete the following fields:  
   * Name: Unique and descriptive name for the probe
   * Probe type: Select Probe.
   * Description: Describe the function of this probe.
   * Used by Discovery: Select this check box
   * ECC queue topic: This is name of the probe the MID server is to run. In this example, we use WMIRunner.
   * ECC queue name: In this example, we use the descriptive name WMI: BGInfo files.
   {#t_CustomProbeTextFile__ul_exc_cym_tp}
3. Right-click in the header bar and select Save from the context menu.
4. Select the Probe Parameters tab in the Probe form, and then click New.
5. Enter <kbd class="ph userinput">WMI_GetFiles.js</kbd> as the Name of this parameter.
6. Copy the script below into the Script field and edit as needed.
7. Click Submit.  


       //
        // 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. Navigate to Discovery DefinitionSensors, and then click New.  
   Complete the following fields:
   * Name: Use the same name as the matching probe. In this example, we use Windows - Get BGInfo files.
   * Reacts to probe: The name of the probe created in the previous procedure: Windows - Get BGInfo files
   * Sensor type: Select the type of sensor to create - in this example Sensor.
   * Description: Describes the function of this sensor.
   * Script: Copy the script below into the Script field and edit as needed.
   * Sensor type: Determines how the answer from the probe is processed - in this example JavaScript.
   {#t_CustomProbeTextFile__ul_bkg_xzm_tp}
9. Click Submit.  

        
        
       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&nbsp;" : "") + 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"
        
        });


