Cette sonde Détection personnalisée vous aide à lire un fichier texte à partir d'un ordinateur Windows et à renseigner un CI dans la CMDB avec les valeurs de ce fichier.
Avant de commencer
Rôle requis : admin
Pourquoi et quand exécuter cette tâche
Dans cet exemple, l'utilisateur souhaite lire les fichiers créés par
BGinfo.
Remarque : Lorsque vous avez terminé de configurer la sonde et le capteur, placez la sonde dans le classifieur Windows approprié à l’emplacement .
Procédure
-
Accédez à la , puis cliquez sur Nouveau.
-
Renseignez les champs suivants :
- Nom : nom unique et descriptif de la sonde.
- Type de sonde : sélectionnez Sonde.
- Description : décrivez la fonction de cette sonde.
- Utilisé par Discovery : cochez cette case.
- Sujet de file d'attente ECC : nom de la sonde que le MID Server doit exécuter. Dans cet exemple, nous utilisons le nom WMIRunner.
- Nom de file d'attente ECC : dans cet exemple, nous utilisons le nom descriptif WMI : fichiers BGInfo.
-
Cliquez avec le bouton droit de la souris dans la barre d'en-tête, puis choisissez Enregistrer dans le menu contextuel.
-
Sélectionnez l'onglet Paramètres de sonde dans le formulaire Sonde, puis cliquez sur Nouveau.
-
Attribuez le nom WMI_GetFiles.js à ce paramètre.
-
Copiez le script ci-dessous dans le champ Script et modifiez-le si nécessaire.
-
Cliquez sur Envoyer.
//
// 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);
}
-
Accédez à la , puis cliquez sur Nouveau.
Renseignez les champs suivants :
- Nom : utilisez le même nom que la sonde correspondante. Dans cet exemple, nous utilisons le nom Windows - Obtenir les fichiers BGInfo.
- Réagit à la sonde : nom de la sonde créée lors de la procédure précédente : Windows - Obtenir les fichiers BGInfo.
- Type de capteur : sélectionnez le type de capteur à créer, en l'occurrence Capteur.
- Description : décrit la fonction de ce capteur.
- Script : copiez le script ci-dessous dans le champ Script et modifiez-le si nécessaire.
- Type de capteur : détermine le mode de traitement de la réponse de la sonde, en l'occurrence JavaScript.
-
Cliquez sur Envoyer.
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"
});