Passer au contenu principal

Action Exécuter le Script

Exécuter un script enregistré sur un appareil dans le cadre d'une automatisation, avec support pour transmettre les variables d'automatisation au script.

Mis à jour il y a moins d’une heure

Exécutez un script enregistré sur un appareil dans le cadre d'une automatisation. Prend en charge PowerShell, Bash, Python et autres langages. Si votre script a besoin de données provenant de l'extérieur — comme une valeur de champ personnalisé ou une variable d'automatisation — vous pouvez la mapper sans modifier la logique du script.


⚙️ Prérequis

  • Un script enregistré doit exister dans votre bibliothèque de scripts, ou vous pouvez en créer un en ligne. Consultez Scripts pour savoir comment créer et organiser les scripts.

  • Une automatisation doit exister avant d'ajouter des actions. Consultez Prise en main des Automatisations si vous n'en avez pas encore configurée.


Action Exécuter le Script

À partir du pipeline d'automatisation en mode édition, cliquez sur + et sélectionnez Exécuter le script dans la catégorie Système.

Action Exécuter le Script

Le panneau d'action s'ouvre en affichant le champ Script et deux boutons : une icône de lien externe pour parcourir vos scripts enregistrés, et Créer un script pour en écrire un nouveau en ligne.

Action Exécuter le Script

Sélectionner un Script

Cliquez sur l'icône de lien externe à côté du champ Script pour ouvrir le sélecteur de script enregistré. Les scripts sont organisés en dossiers — développez n'importe quel dossier pour parcourir son contenu, ou utilisez le champ de recherche pour trouver un script par nom.

Sélectionner un Script

Créer un Script en Ligne

Cliquez sur Créer un script pour écrire un nouveau script sans quitter l'éditeur d'automatisation. L'éditeur de script s'ouvre en tant que panneau latéral.

Créer un Script

Configurez les éléments suivants :

Nom du script Un nom descriptif pour le script. Il sera enregistré dans votre bibliothèque de scripts et disponible pour utilisation dans d'autres automatisations.

Langage Le langage de script pour ce script.

Langages pris en charge : Ansible, Bash, Go, osquery, PowerShell, Python, Zsh.

Délai d'expiration (en secondes) Combien de temps Level attend que le script se termine avant de le marquer comme échoué. La valeur par défaut est 100 secondes.

Exécuter en tant que Le contexte de compte sous lequel le script s'exécute.

Option

Comportement

Système local

S'exécute comme le compte SYSTEM — élevé, sans contexte utilisateur

Utilisateur actuel

S'exécute comme l'utilisateur actuellement connecté — utile pour les opérations en contexte utilisateur comme l'application d'un fond d'écran, la configuration des paramètres utilisateur, etc.

Écrivez votre script dans l'éditeur de code. Cliquez sur {x} pour référencer les variables et les champs personnalisés en ligne dans le script. Une fois terminé, cliquez sur Créer un script pour enregistrer et l'attacher à l'action.


Variables de Script

Les variables de script sont des emplacements de sortie nommés définis dans l'onglet Variables d'un script. Le script écrit une valeur dans une variable de script pendant l'exécution, et le mapping dans le panneau d'action détermine quelle variable d'automatisation stocke cette valeur — la rendant disponible aux actions et conditions suivantes du pipeline.

ℹ️ REMARQUE : Pour passer des données dans un script — contexte de l'appareil, valeurs de champ personnalisé, informations système — utilisez les variables système ou les champs personnalisés via le sélecteur {x} dans l'éditeur de script. Les variables de script sont pour capturer la sortie, pas pour fournir l'entrée.

Lorsqu'un script avec des variables définies est sélectionné, une section Variables de script apparaît dans le panneau d'action.

Pour mapper une variable de script à une variable d'automatisation :

  1. Dans la section Variables de script, trouvez la variable de script que vous souhaitez capturer.

  2. Ouvrez la liste déroulante Variables d'automatisation sur la même ligne.

  3. Sélectionnez une variable d'automatisation existante, ou cliquez sur Créer une nouvelle variable.

Lorsque le script s'exécute, la valeur qu'il écrit dans cette variable de script est stockée dans la variable d'automatisation mappée et est reportée dans le pipeline. Consultez Variables d'Automatisation pour la référence complète sur la création et l'utilisation des variables d'automatisation.

Variable de Script

ℹ️ REMARQUE : La section Variables de script n'apparaît que lorsque le script sélectionné a au moins une variable définie dans son onglet Variables. Les scripts sans variables n'affichent pas cette section.

Gestion des Variables de Script

Les variables de script sont définies dans le script lui-même, pas dans le panneau d'action. Ouvrez l'éditeur de script et accédez à l'onglet Variables pour les ajouter, les modifier ou les supprimer.

Variables de Script

Capture de la Sortie du Script

Il y a deux façons de capturer une valeur d'un script et de la rendre disponible aux actions suivantes du pipeline.

Syntaxe des variables en ligne

Intégrez cette syntaxe n'importe où dans la sortie de votre script pour définir une variable d'automatisation sur une valeur spécifique :

##{{variable_name=value}}

L'agent Level analyse la sortie du script à la recherche de ce modèle pendant l'exécution du script. Toute autre sortie — journaux, messages d'état, tout le reste — passe sans être modifiée. Consultez Définir les Variables Directement à partir des Scripts pour plus de détails et d'exemples.

Ceci est utile lorsque vous avez besoin d'une valeur ciblée d'un script qui produit également d'autres résultats. La variable doit être créée dans l'onglet variables de script.

Exemple (PowerShell) :

# Get local IP address
$ip = (Get-NetIPAddress -AddressFamily IPv4 |
Where-Object {$_.IPAddress -ne "127.0.0.1" -and $_.InterfaceAlias -notlike "*Loopback*"} |
Select-Object -First 1 -ExpandProperty IPAddress)

# Log it normally — this line is ignored for variable purposes
Write-Output "Detected local IP address: $ip"

# Set the automation variable
##{{local_ip=$ip}}

Après l'exécution de ce script, local_ip contient l'adresse IP et est disponible pour toutes les actions et conditions suivantes du pipeline après mapping.

Assigner la sortie complète à une variable

Dans Options supplémentaires, utilisez Assigner la sortie de l'action à une variable pour capturer l'intégralité de la sortie stdout du script dans une variable d'automatisation. Cela fonctionne pour n'importe quel script sans nécessiter de modifications du script lui-même — mais capture tout ce que le script produit, pas seulement la valeur dont vous avez besoin.

💡 CONSEIL : Utilisez la syntaxe en ligne ##{{variable=value}} lorsque votre script produit d'autres résultats que vous ne souhaitez pas polluer la variable (journaux, messages d'état, etc.). Utilisez Assigner la sortie de l'action à une variable lorsque la seule sortie du script est la valeur que vous souhaitez capturer.


Codes de Sortie

Level utilise le code de sortie du script pour déterminer si l'action a réussi ou échoué.

Code de sortie

Résultat

0

Action marquée comme réussie

Non-zéro (par exemple 1)

Action marquée comme échouée

Votre paramètre En cas d'échec de l'action dans Options supplémentaires contrôle ce qui se passe ensuite — que le pipeline s'arrête ou continue.

Assurez-vous que vos scripts se terminent explicitement avec le code approprié. Si un script se termine avec 0 après avoir rencontré une erreur qu'il n'a pas gérée, Level traitera l'action comme réussie.


Conditions

La section Conditions vous permet de restreindre l'exécution de cette action en fonction des attributs de l'appareil ou du résultat d'une action précédente.

Consultez Conditions d'Action pour la référence complète sur les types de conditions, les opérateurs et les valeurs.


Options Supplémentaires

Développez Options supplémentaires pour le nom de l'action, le comportement en cas d'échec, l'assignation de variables de sortie, les tentatives, et le basculement activé.

Consultez Aperçu des Actions pour la référence complète sur les options supplémentaires disponibles sur chaque action.


FAQ

  • Quelle est la différence entre Exécuter le Script et Shell ? Exécuter le script exécute un script enregistré de votre bibliothèque — le script est contrôlé par version et réutilisable entre les automatisations. Shell exécute un script ad-hoc écrit directement dans le panneau d'action. Utilisez Exécuter le script lorsque la même logique doit être partagée ou maintenue ; utilisez Shell pour les commandes en ligne unique.

  • Le script peut-il écrire une sortie que d'autres actions peuvent lire ? Oui — de deux façons. Définissez les variables de script dans l'onglet Variables du script et mappez-les aux variables d'automatisation dans le panneau d'action ; les valeurs écrites dans ces variables pendant l'exécution sont reportées dans le pipeline. Ou utilisez Assigner la sortie de l'action à une variable dans Options supplémentaires pour capturer la sortie complète du script directement dans une variable d'automatisation sans mapping supplémentaire. Vous pouvez également utiliser la syntaxe en ligne ##{{variable_name=value}} pour définir une variable de script en cours d'exécution — elle doit toujours être mappée dans le panneau d'action pour devenir une variable d'automatisation. Consultez Capture de la Sortie du Script ci-dessus pour plus de détails.

  • Que se passe-t-il si le script expire ? L'action est marquée comme échouée. Le paramètre En cas d'échec de l'action dans Options supplémentaires contrôle que le pipeline s'arrête ou continue.

  • Qui peut ajouter ou modifier les actions Exécuter le Script ? Les techniciens ayant la permission de modifier les automatisations dans le groupe pertinent. Consultez Espace de Travail → Autorisations pour la configuration du contrôle d'accès.

Avez-vous trouvé la réponse à votre question ?