Neuron Workflow Builder
Ivanti Neurons (Fonction) devient obsolète et est remplacé par la nouvelle expérience Ivanti Neurons Bots. Pour en savoir plus, reportez-vous à « Migration vers Neurons Bots ».
Un workflow Neuron est constitué de plusieurs étapes connectées, conçues pour automatiser divers processus métier. Il peut servir à découvrir des éléments, à fournir des informations ou à exécuter des actions. Vous pouvez créer un workflow Neuron personnalisé à partir de zéro, ou modifier un Neuron prédéfini pour le personnaliser en fonction de vos besoins, avec le générateur Neuron Builder.
Paramètres de Neuron
Utilisez le volet Paramètres de Neuron pour configurer le workflow Neuron. Les paramètres disponibles dépendent du type de Neuron choisi.
Nom : Nom du Neuron.
Catégorie : Sélectionnez une catégorie dans la liste déroulante, à savoir Conformité, Productivité des utilisateurs, Continuité des activités ou Optimisation des ressources.
Groupe cible : Choisissez Personnalisé ou Tous les périphériques. Pour Personnalisé, faites votre choix dans la liste déroulante qui répertorie tous les groupes de périphériques publics disponibles. Vous configurez les groupes de périphériques sous Périphériques > Groupe de périphériques.
Configuration d'état : Permet de basculer de l'état Inactif à l'état Actif et inversement. Lorsque le Neuron est configuré sur Actif, les paramètres de planification sont accessibles et vous pouvez déterminer le moment où le Neuron doit être exécuté. Remplissez les champs suivants :
- Répétitions : Quotidien ou Hebdomadaire
- Fréquence : Minutes ou Heures
- Intervalle : Pour Heures, 1 à 24. Pour Minutes, 30 à 55 par intervalle de 5 minutes.
- Début : Date et Heure.
- Fin : Date et Heure.
Nom : Nom du Neuron.
Configuration d'état : Permet de basculer d'un état à l'autre entre Non publié et Publié. Lorsque le Neuron est configuré sur Publié, le champ Nom d'affichage de l'action s'affiche et vous permet de nommer l'action. Cette valeur s'affiche dans le volet Actions de la vue Périphérique.
Mes étapes
Le volet Mes étapes, à gauche, contient toutes les étapes par défaut et installées. Il existe différentes catégories d'étapes :
Vous trouverez dans la bibliothèque des requêtes et actions supplémentaires, que vous pouvez ajouter à Mes étapes. Pour en savoir plus sur la bibliothèque, reportez-vous à « Neurons (Fonction) ».
- Requête : Sert à présenter et à filtrer les informations issues des périphériques qui répondent aux critères indiqués. Par exemple, vous pouvez afficher les périphériques possédant moins de 10 % d'espace disque disponible. La sortie et le contexte de cette étape de requête peuvent être transmis via les étapes suivantes du workflow Neuron. Chaque requête contient un paramètre qui permet de contrôler le comportement du Neuron si le système ne renvoie aucun résultat. Par défaut, l'option Le Neuron continue uniquement si des résultats sont trouvés est sélectionnée. Ainsi, si le système ne renvoie aucun résultat à partir des périphériques en ligne, le workflow Neuron ne va pas plus loin. Si cette case n'est pas cochée, le workflow Neuron continue à avancer. Cela peut s'avérer utile, par exemple, pour émettre une alerte afin de confirmer qu'aucun problème n'est survenu.
- Action : Les étapes de type Action utilisent Automation Fabric (Structure d'automatisation) pour exécuter des actions comme l'envoi d'e-mails ou l'exécution de scripts PowerShell personnalisés sur les périphériques des utilisateurs. Vous pouvez utiliser des variables dans certaines actions. Pour en savoir plus, reportez-vous à « Variables ».
- Commun : Inclut les éléments suivants :
- Filtrer les résultats : Filtre les informations de requête capturées en fonction des propriétés de filtre définies. Pour en savoir plus, reportez-vous à « Filtre ».
- Alerte Neurons : Sert à générer des alertes visibles sur la page d'accueil Neurons.
- Personnalisé : Utilisez une action Bash, un script JavaScript personnalisé, une action et une requête PowerShell, ou une requête osquery pour créer des actions et requêtes spécialisées. Toutes les étapes personnalisées créées dans Bibliothèque > Éditeur d'étape s'affichent ici après l'installation.
Des exemples d'utilisation d'osquery et de PowerShell sont disponibles à la section « Exemples avancés de workflows Neuron.
Espace de travail
Faites glisser des étapes sur l'espace de travail pour construire le workflow Neuron. Cliquez sur une étape pour afficher les options suivantes :
Cliquez sur cette icône pour supprimer l'étape du Neuron.
Cliquez sur cette icône pour ajouter une connexion avec une autre étape.
Cliquez sur cette icône pour rompre la connexion entre deux étapes.
Paramètres d'étape
Lorsque vous faites glisser une étape vers l'espace de travail et qu'elle est mise en surbrillance, le volet Paramètres d'étape s'ouvre. Utilisez les paramètres pour configurer et personnaliser chaque étape.
Cliquez sur Informations d'étape pour afficher la description de l'étape et toutes les propriétés associées. Vous pouvez les utiliser comme critères pour filtrer les résultats de requête.
Connexion
Pour que le workflow Neuron puisse s'exécuter, chaque étape doit être connectée à une autre. Mettez une étape en surbrillance, puis faites glisser les flèches de connexion vers l'étape cible de la connexion. Le volet Connexion s'ouvre. Il vous permet de personnaliser le type et le style de la connexion, ainsi que le style et l'épaisseur du trait. Vous pouvez également modifier la couleur et ajouter une étiquette.
Filtre
Vous pouvez filtrer les résultats de requête sur la base de propriétés personnalisables. Lorsque vous connectez une étape de requête prédéfinie à un filtre, la liste déroulante Propriétés répertorie toutes les propriétés disponibles pouvant être sélectionnées. Pour afficher les détails de ces propriétés, accédez au volet Paramètres d'étape de la requête et sélectionnez Informations d'étape.
Vous pouvez également utiliser la fonction Aperçu de la requête pour évaluer tous les périphériques cible, et utiliser la table de résultats pour afficher le format et les plages de valeurs qu'il est possible de filtrer.
Pour les requêtes personnalisées (osquery, PowerShell, BASH, etc.), les propriétés de filtre ne sont pas remplies automatiquement. Vous devez les entrer manuellement sur la base des noms de colonne renvoyés par la requête (ou visibles sous Aperçu de la requête).
Vous pouvez joindre plusieurs requêtes l'une à l'autre en séquence. Si vous procédez ainsi, tous les résultats sont combinés et disponibles pour filtrage, ou pour utilisation dans des étapes d'action comme Envoyer un e-mail et Créer un ticket ISM. Vous pouvez modifier le comportement de comparaison du filtre connecté afin d'appliquer une logique AND (Et) ou OR (Ou) pour déterminer les résultats.
Variables
Vous pouvez utiliser des variables pour transmettre des informations d'une étape à une autre et pour envoyer le résultat d'une action à une autre action. Vous pouvez utiliser des variables pour les étapes suivantes :
- Alerte Neurons
- Envoyer un e-mail
- Créer un ticket (ISM)
Insertion de variables
Pour insérer une variable, ouvrez l'écran Paramètres d'étape de l'une des étapes éligibles, à savoir Alerte Neurons, Envoyer un e-mail ou Créer un ticket (ISM). Dans les champs appropriés, utilisez le raccourci clavier (Ctrl+Espace) pour ouvrir la liste déroulante des variables disponibles et sélectionnez celles que vous souhaitez utiliser.
- Nom de Neuron : [[Workflow.Name]] - Nom du Neuron, par exemple Logiciels sur liste noire
- Nom de groupe : [[Workflow.Assistant]] - Nom de la catégorie Neurons à laquelle le Neuron appartient, par exemple Conformité
- URL du Neuron : [[Workflow.Url]] - Lien vers l'instance de numéro d'exécution unique du Neuron
- Utilisateur lanceur : [[Initiation.User]] - Nom de l'utilisateur qui a lancé l'exécution de l'instance manuelle
- ID de l'utilisateur lanceur : [[Initiation.UserId]] - ID de l'utilisateur qui a exécuté l'instance manuelle
- Tous les noms de périphérique : ${Ivanti.Devices} - Liste des noms de périphérique renvoyés par la requête, séparés par une virgule
- Toutes les données de périphérique : ${Ivanti.Results} - Liste de toutes les données de périphérique renvoyées par la requête
- Nombre de périphériques : ${Ivanti.Results.length} - Nombre de périphériques renvoyés par la requête
- Couverture - Répondu : Nombre des périphériques ayant répondu
- Couverture - Erreurs : Nombre des périphériques qui n'ont pas répondu, avec leurs erreurs
- Couverture - Pourcentage : Pourcentage des périphériques ayant répondu
Il existe des modèles prêts à l'emploi qui utilisent les variables. Pour répondre aux besoins plus complexes, les champs Alertes Neurons et E-mails prennent en charge javascript mais vous devez utiliser handlebarsjs.
Par exemple, pour renvoyer une liste de périphériques dans un e-mail, vous pouvez utiliser la syntaxe suivante :
<ul class="devicelist">
{{#each Ivanti.Results}}
<li>{{this.deviceName}}</li>
{{/each}}
</ul>
Gestion des erreurs
Dans l'idéal, tous vos Neurons (workflows) s'exécutent avec succès sur tous les périphériques cible, chaque fois que vous les exécutez. Cependant, tout ne fonctionne pas toujours. Les workflows Neurons incluent des fonctions permettant d'améliorer le taux de réussite. De plus, vous pouvez faire des choix de conception et de configuration pour améliorer ce taux et gérer plus facilement les éventuelles erreurs.
Délais de temporisation
Vous devez trouver l'équilibre entre attendre la fin de l'exécution d'un workflow et ne pas le laisser continuer trop longtemps après un échec. Il faut appliquer le délai approprié à chaque étape du workflow. Les étapes Requête ont un délai de temporisation de 15 secondes, celui des actions est de 5 minutes et les actions ciblées disposent de 25 minutes.
Exécutions ignorées
Les exécutions planifiées démarrent uniquement si l'exécution précédente est terminée. Le journal des exécutions d'un Neuron signale les exécutions ignorées par .
Changement d'opération en cas d'erreur
Lorsqu'une étape s'exécute, le workflow prend note des périphériques où cette étape a réussi et de ceux où elle a échoué. Vous pouvez consulter ces résultats sous Sortie de l'étape. Si l'étape réussit seulement sur une partie des périphériques cible, cette étape et l'exécution où elle figure sont marquées comme partiellement réussies () et le workflow continue uniquement sur les périphériques où l'étape a réussi. Vous pouvez améliorer la conception de votre workflow pour gérer plus proactivement cette situation en ajoutant des branches (changements de direction) d'erreur.
Pour ajouter une branche d'erreur :
- Ouvrez le workflow requis.
- Dans le volet Mes étapes, à la section Commun, ajoutez l'étape Filtrer les résultats après une étape Action.
- Connectez l'étape Action à l'étape Filtrer les résultats.
- Cliquez sur l'étape Filtrer les résultats.
- Dans le volet Paramètres d'étape, définissez Logique sur AND (Et), Propriété sur État de l'action, Comparaison sur Égale et Valeur sur Échec.
- Connectez une étape Filtrer les résultats similaire à la même étape Action mais en définissant Valeur sur Terminé.
Vous disposez maintenant d'une branche d'erreur (changement de direction), qui sépare les périphériques où l'étape a réussi de ceux où elle a échoué. - Sous l'étape Filtrer les résultats - Terminé, achevez la conception de votre workflow.
- Sous l'étape Filtrer les résultats - Échec, ajoutez une étape d'action Envoyer un e-mail pour signaler les échecs. Vous pouvez également ajouter une autre action pertinente pour tenter de faire progresser le workflow.
Exemples avancés de workflows Neuron
Les exemples suivants vous montrent comment construire un workflow Neuron, et utiliser les requêtes et actions personnalisées :
Ce Neuron prêt à l'emploi recherche les périphériques dont l'espace disque est insuffisant et tente de les nettoyer automatiquement. Il réévalue ensuite l'espace disque. S'il est toujours problématique, il crée un ticket Service Manager avec le nom des périphériques concernés, pour qu'un technicien les examine :
La conversion en paramètres des requêtes est prise en charge, pour faciliter leur réutilisation dans Neurons. Cette opération est prise en charge lorsque vous utilisez l'éditeur et que vous enregistrez les données sous forme de nœud de bibliothèque réutilisable :
Osquery utilise la syntaxe SQL, comme select * from processes where name = myprocess.exe
La plupart des administrateurs la connaissent.
Si nous prenons l'exemple de la requête ci-dessus, nous pouvons spécifier :
select * from processes where name = __Name__
Les doubles caractères souligné indiquent à Neurons que la requête doit être convertie en paramètres. Ainsi, lorsque vous enregistrez les données et sélectionnez cette requête, le volet des paramètres contient le champ de saisie Name (Nom) :
Vous pouvez également remplir une liste déroulante de valeurs pour y faire un choix, en insérant une variable options.
Dans l'éditeur, entrez op
et appuyez sur Tab :
Remplacez cette entrée par le texte et les options de votre choix, puis enregistrez-les sous forme de nœud de bibliothèque réutilisable :
Ces options sont désormais disponibles dans une liste déroulante :
Les requêtes osquery sont regroupées en tables. Que se passe-t-il si vous voulez combiner les résultats de plusieurs tables en une seule requête ?
Exemple : Vous voulez utiliser la table Registry (Registre) pour récupérer une valeur de registre :
Mais vous voulez aussi obtenir le fournisseur et le modèle du matériel depuis system_info.
Entrez votre requête osquery dans Neurons comme suit :
SELECT hardware_vendor,hardware_model,
(
SELECT data FROM registry
WHERE key = 'HKEY_LOCAL_MACHINE\Software\Ivanti\Neurons'
)
temp
FROM system_info
Le retour est le suivant :
Vous pouvez alors connecter une étape Filtrer les résultats pour appliquer une action si la valeur de registre est égale à une valeur particulière :
Vous pouvez aussi (facultatif) filtrer les données par fournisseur de matériel
Vous pouvez aussi utiliser les résultats pour créer une table formatée dans un e-mail :
Pour ce faire :
- Commencez par le modèle Espace disque faible.
- Modifiez la section entre balises <th> pour indiquer les noms de colonne de votre choix.
- Modifiez la section portant les balises <td> correspondantes pour utiliser les noms de colonne de l'aperçu, toujours avec le préfixe « this », suivi du premier mot en minuscules (sans espace entre les mots). Les mots suivants portent une majuscule.
Ex. : Si une colonne s'appelle Mes périphériques, elle apparaît dans la section <td> en tant que this.mesPériphériques.
Il est possible d'utiliser PowerShell pour lancer des requêtes sur les périphériques (Windows uniquement). Cependant, la requête doit renvoyer les résultats sous forme de matrice, puis passer par une opération pipe pour devenir ConvertTo-Json.
Exemple : Get-TimeZone renvoie des résultats en matrice comme suit :
PS C:\Users\Joe.Bloggs> get-timezone
Id : GMT Standard Time
DisplayName : (UTC+00:00) Dublin, Edinburgh, Lisbon, London
StandardName : GMT Standard Time
DaylightName : GMT Summer Time
BaseUtcOffset : 00:00:00
SupportsDaylightSavingTime : True
Cependant, après piping en ConvertTo-Json (PowerShell 3.0 et supérieur), les résultats sont les suivants :
PS C:\Users\Joe.Bloggs> get-timezone | convertto-json
{
"Id": "GMT Standard Time",
"DisplayName": "(UTC+00:00) Dublin, Edinburgh, Lisbon, London",
"StandardName": "GMT Standard Time",
"DaylightName": "GMT Summer Time",
"BaseUtcOffset": {
"Ticks": 0,
"Days": 0,
"Hours": 0,
"Milliseconds": 0,
"Minutes": 0,
"Seconds": 0,
"TotalDays": 0,
"TotalHours": 0,
"TotalMilliseconds": 0,
"TotalMinutes": 0,
"TotalSeconds": 0
},
"SupportsDaylightSavingTime": true
Cela permet à Neurons d'afficher les données dans une table :
Astuce : Si Aperçu de la requête ne fonctionne pas, vérifiez que tous les périphériques du groupe peuvent renvoyer la requête (périphériques Windows avec PowerShell 3 ou supérieur). Vous pouvez choisir le groupe cible dans l'écran Paramètres de Neuron .
Une fois que vous disposez des résultats de la requête, vous pouvez connecter une étape de filtre pour spécifier les conditions à remplir pour que l'étape continue. Remarque : Vous devez entrer manuellement les noms de colonne, sous forme de propriétés de filtre :
Neurons peut exécuter PowerShell sur les postes client, en exploitant l'agent Ivanti Neurons et le moteur Automation Fabric. Les actions peuvent être exécutées dans le contexte de sécurité de l'utilisateur final ou sous le compte Système (System).
Comme les requêtes osquery, les actions PowerShell peuvent être converties en paramètres. Par exemple, pour créer une action réutilisable qui peut désinstaller une mise à jour Windows problématique, vous pouvez utiliser l'éditeur PowerShell pour créer un nœud de bibliothèque réutilisable avec le code suivant :
wusa /uninstall /kb:__KBNumber__/quiet /norestart
Le code __KBNumber__
est converti en un paramètre pour fournir une option où il vous suffit d'entrer le numéro de la mise à jour à supprimer :
Vous pouvez supprimer des actions et des requêtes personnalisées de l'éditeur en les supprimant de la bibliothèque :
Les requêtes/actions BASH fonctionnent exactement comme PowerShell, avec l'exception suivante : Bash n'inclut aucune fonction ConvertTo-Json intégrée, si bien qu'il faut créer la requête afin de renvoyer les résultats au format JSON pour que Neurons puisse les interpréter.