Introduction
Exécute un script enregistré sur un appareil dans le cadre d'une automatisation. Prend en charge PowerShell, Bash, Python et d'autres langages. Si votre script a besoin de données extérieures — comme la valeur d'un champ personnalisé ou une variable d'automatisation — vous pouvez les 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 directement. Consultez Scripts pour savoir comment créer et organiser des scripts.
Une automatisation doit exister avant d'ajouter des actions. Consultez Premiers pas avec les automatisations si vous n'en avez pas encore configuré.
Action : Exécuter un script
Dans le pipeline d'automatisation en mode édition, cliquez sur + et sélectionnez Exécuter un script dans la catégorie Système.
Le panneau d'action s'ouvre et affiche 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 rédiger un directement.
Sélectionner un script
Cliquez sur l'icône de lien externe à côté du champ Script pour ouvrir le sélecteur de scripts enregistrés. Les scripts sont organisés en dossiers — développez un dossier pour parcourir son contenu ou utilisez le champ de recherche pour trouver un script par son nom.
Créer un script directement
Cliquez sur Créer un script pour rédiger un nouveau script sans quitter l'éditeur d'automatisation. L'éditeur de script s'ouvre en tant que panneau latéral.
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 une utilisation dans d'autres automatisations.
Langage Le langage de script utilisé pour ce script.
Langages pris en charge : Ansible, Bash, Go, osquery, PowerShell, Python, Zsh.
Délai d'expiration (en secondes) Durée pendant laquelle 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 sous le compte SYSTEM — élevé, sans contexte utilisateur |
Utilisateur actuel | S'exécute sous 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. |
Rédigez votre script dans l'éditeur de code. Cliquez sur {x} pour référencer des variables et des champs personnalisés directement dans le script. Une fois terminé, cliquez sur Créer un script pour enregistrer et l'associer à l'action.
Variables de script
Les variables de script sont des emplacements de sortie nommés définis dans l'onglet Variables L'onglet. Le script écrit une valeur dans une variable de script lors de l'exécution, et le mappage dans le panneau d'action détermine quelle variable d'automatisation stocke cette valeur — la rendant disponible pour les actions et conditions suivantes dans le pipeline.
ℹ️ REMARQUE : Pour transmettre des données dans un script — contexte de l'appareil, valeurs de champs personnalisés, informations système — utilisez des variables système ou des champs personnalisés via le {x} du sélecteur dans l'éditeur de script. Les variables de script servent à capturer la sortie, pas à fournir des entrées.
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 :
Dans la section Variables de script trouvez la variable de script que vous souhaitez capturer.
Ouvrez la liste déroulante Variables d'automatisation sur la même ligne.
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 transmise tout au long du pipeline. Consultez Variables d'automatisation pour la référence complète sur la création et l'utilisation des variables d'automatisation.
ℹ️ REMARQUE : La section Variables de script n'apparaît que lorsque le script sélectionné possède 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.
Capture de la sortie du script
Il existe deux façons de capturer une valeur depuis un script et de la rendre disponible pour les actions suivantes dans le pipeline.
Syntaxe de variable en ligne
Intégrez cette syntaxe n'importe où dans la sortie de votre script pour affecter une valeur spécifique à une variable d'automatisation :
{{variable_name=value}}L'agent de Level analyse la sortie du script à la recherche de ce motif au fur et à mesure de l'exécution du script. Toutes les autres sorties — journaux, messages d'état, tout le reste — passent sans modification.
Cela est utile lorsque vous avez besoin d'une valeur ciblée d'un script qui produit également d'autres sorties. La variable doit être créée dans l'onglet des 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 chaque action et condition suivante dans le pipeline après le mappage.
Affecter la sortie complète à une variable
Dans Options supplémentaires, utilisez Affecter la sortie de l'action à une variable pour capturer l'intégralité du 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 sorties que vous ne voulez pas polluer la variable (journaux, messages d'état, etc.). Utilisez Affecter 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 |
| Action marquée comme réussie |
Différent de zéro (ex. | Action marquée comme échouée |
Votre paramètre En cas d'échec de l'action dans les options supplémentaires contrôle ce qui se passe ensuite — si 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 considère l'action comme réussie.
Conditions
La section Conditions vous permet de restreindre le moment où cette action s'exécute 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'affectation de la variable de sortie, les nouvelles tentatives et le bouton d'activation.
Consultez Vue d'ensemble des actions pour la référence complète sur les options supplémentaires disponibles pour chaque action.
FAQ
Quelle est la différence entre Exécuter un script et Shell ? Exécuter un script exécute un script enregistré depuis votre bibliothèque — le script est versionné et réutilisable dans plusieurs automatisations. Shell exécute un script ad hoc rédigé directement dans le panneau d'action. Utilisez Exécuter un script lorsque la même logique doit être partagée ou maintenue ; utilisez Shell pour des commandes ponctuelles en ligne.
Le script peut-il écrire une sortie lisible par d'autres actions ? Oui — de deux façons. Définissez des variables de script dans l'onglet Variables et les mapper à des variables d'automatisation dans le panneau d'action ; les valeurs écrites dans ces variables lors de l'exécution sont transmises tout au long du pipeline. Ou utilisez Affecter la sortie de l'action à une variable dans les options supplémentaires pour capturer le stdout complet du script directement dans une variable d'automatisation sans mappage 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 tout de même ê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 dépasse le délai d'expiration ? L'action est marquée comme échouée. Le paramètre En cas d'échec de l'action dans les options supplémentaires contrôle si le pipeline s'arrête ou continue.
Qui peut ajouter ou modifier des actions Exécuter un script ? Les techniciens ayant la permission de modifier les automatisations dans le groupe concerné. Consultez Espace de travail → Autorisations pour la configuration du contrôle d'accès.






