Zum Hauptinhalt springen

Skriptaktion ausführen

Führen Sie ein gespeichertes Skript auf einem Gerät als Teil einer Automatisierung aus, mit Unterstützung zum Übergeben von Automatisierungsvariablen an das Skript.

Heute aktualisiert

Einführung

Führen Sie ein gespeichertes Skript auf einem Gerät als Teil einer Automatisierung aus. Unterstützt PowerShell, Bash, Python und andere Sprachen. Wenn Ihr Skript Daten von außerhalb benötigt — wie einen benutzerdefinierten Feldwert oder eine Automatisierungsvariable — können Sie diese ohne Änderung der Skriptlogik zuordnen.


Voraussetzungen

  • Ein gespeichertes Skript muss in Ihrer Skriptbibliothek vorhanden sein, oder Sie können ein Skript inline erstellen. SieheScriptsWeitere Informationen zum Erstellen und Organisieren von Skripten.

  • Eine Automatisierung muss vorhanden sein, bevor Aktionen hinzugefügt werden. SieheErste Schritte mit Automatisierungenfalls Sie noch keine eingerichtet haben.


Skriptaktion ausführen

Klicken Sie in der Automatisierungs-Pipeline im Bearbeitungsmodus auf+ and select Run scriptaus der Systemkategorie.

Run Script Action

Das Aktionsfenster wird angezeigtScriptFeld und zwei Schaltflächen: Ein Symbol für externe Links zum Durchsuchen Ihrer gespeicherten Skripte undCreate scriptum ein neues Skript inline zu schreiben.

Run Script Action


Auswahl eines Skripts

Klicken Sie auf das Symbol für externe Links neben demScriptFeld, um die Auswahl für gespeicherte Skripte zu öffnen. Skripte sind in Ordnern organisiert — erweitern Sie jeden Ordner zum Durchsuchen seines Inhalts oder verwenden Sie das Suchfeld, um ein Skript nach Name zu finden.

Selecting a Script


Erstellen eines Skripts inline

Click Create scriptum ein neues Skript zu schreiben, ohne den Automatisierungs-Editor zu verlassen. Der Skript-Editor wird als Seitenfenster angezeigt.

Creating a Script

Konfigurieren Sie Folgendes:

Script nameEin beschreibender Name für das Skript. Es wird in Ihrer Skriptbibliothek gespeichert und ist für die Verwendung in anderen Automatisierungen verfügbar.

LanguageDie Skriptsprache für dieses Skript.

Unterstützte Sprachen:Ansible, Bash, Go, osquery, PowerShell, Python, Zsh.

Timeout (in Sekunden)Wie lange Level wartet, bis das Skript abgeschlossen ist, bevor es als fehlgeschlagen markiert wird. Der Standardwert ist 100 Sekunden.

Run asDer Kontokontext, unter dem das Skript ausgeführt wird.

Option

Behavior

Local system

Wird unter dem SYSTEM-Konto ausgeführt — erhöht, kein Benutzerkontext

Current user

Wird als angemeldeter Benutzer ausgeführt — nützlich für Vorgänge im Benutzerkontext wie das Anwenden von Hintergrund, die Konfiguration von Benutzereinstellungen usw.

Schreiben Sie Ihr Skript in den Code-Editor. Klicken Sie auf{x}um Variablen und benutzerdefinierte Felder inline im Skript zu referenzieren. Wenn Sie fertig sind, klicken Sie aufCreate scriptum es zu speichern und an die Aktion anzuhängen.


Skriptvariablen

Skriptvariablen sind benannte Ausgabeslots, die in derVariablesRegisterkarte eines Skripts definiert sind. Das Skript schreibt während der Ausführung einen Wert in eine Skriptvariable, und die Zuordnung im Aktionsfenster bestimmt, welche Automatisierungsvariable diesen Wert speichert — wodurch sie für nachfolgende Aktionen und Bedingungen in der Pipeline verfügbar wird.

ℹ️ HINWEIS: To pass data intoein Skript — Gerätekontext, benutzerdefinierte Feldwerte, Systeminformationen — verwenden Sie Systemvariablen oder benutzerdefinierte Felder über die{x}Auswahl im Skript-Editor. Skriptvariablen dienen zum Erfassen der Ausgabe, nicht zum Bereitstellen der Eingabe.

Wenn ein Skript mit definierten Variablen ausgewählt wird, wird einSkriptvariablenDer Abschnitt wird im Aktionsfenster angezeigt.

So ordnen Sie eine Skriptvariable einer Automatisierungsvariable zu:

  1. In the SkriptvariablenAbschnitt finden Sie die Skriptvariable, die Sie erfassen möchten.

  2. Open the AutomatisierungsvariablenDropdown in derselben Zeile.

  3. Wählen Sie eine vorhandene Automatisierungsvariable oder klicken Sie aufNeue Variable erstellen.

Wenn das Skript ausgeführt wird, wird der Wert, den es in diese Skriptvariable schreibt, in der zugeordneten Automatisierungsvariable gespeichert und durch die Pipeline weitergeleitet. SieheAutomatisierungsvariablenfür die vollständige Referenz zum Erstellen und Verwenden von Automatisierungsvariablen.

Script Variable

ℹ️ HINWEIS:Der Abschnitt Skriptvariablen wird nur angezeigt, wenn das ausgewählte Skript mindestens eine Variable auf der Registerkarte Variablen hat. Skripte ohne Variablen zeigen diesen Abschnitt nicht an.

Verwalten von Skriptvariablen

Skriptvariablen werden im Skript selbst definiert, nicht im Aktionsfenster. Öffnen Sie den Skript-Editor und navigieren Sie zumVariablesRegisterkarte, um Variablen hinzuzufügen, zu bearbeiten oder zu entfernen.

Script Variables


Erfassen der Skriptausgabe

Es gibt zwei Möglichkeiten, einen Wert aus einem Skript zu erfassen und ihn für nachfolgende Aktionen in der Pipeline verfügbar zu machen.

Inline-Variablensyntax

Betten Sie diese Syntax überall in Ihrer Skriptausgabe ein, um eine Automatisierungsvariable auf einen bestimmten Wert zu setzen:

##{{variable_name=value}}

Der Level-Agent analysiert die Skriptausgabe auf dieses Muster hin. Alle anderen Ausgaben — Protokolle, Statusmeldungen, alles andere — werden unverändert weitergegeben.

Dies ist nützlich, wenn Sie einen gezielten Wert aus einem Skript benötigen, das auch andere Ausgaben produziert. Die Variable muss auf der Registerkarte Skriptvariablen erstellt werden.

Beispiel (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}}

Nach Ausführung dieses Skriptslocal_ipenthält die IP-Adresse und ist nach der Zuordnung für alle nachfolgenden Aktionen und Bedingungen in der Pipeline verfügbar.

Gesamte Ausgabe einer Variablen zuweisen

In Zusätzliche Optionen, use Aktionsausgabe einer Variablen zuweisenum die gesamte Standardausgabe des Skripts in einer Automatisierungsvariablen zu erfassen. Dies funktioniert für jedes Skript, ohne dass Änderungen erforderlich sind — erfasst aber alles, was das Skript ausgibt, nicht nur den Wert, den Sie benötigen.

💡 TIP: Use the inline ##{{variable=value}}Syntax, wenn Ihr Skript andere Ausgaben produziert, die Sie nicht in der Variablen haben möchten (Protokolle, Statusmeldungen usw.). Verwenden SieAktionsausgabe einer Variablen zuweisenwenn die einzige Ausgabe des Skripts der Wert ist, den Sie erfassen möchten.


Exit Codes

Level verwendet den Exit-Code des Skripts, um zu bestimmen, ob die Aktion erfolgreich war oder fehlgeschlagen ist.

Exit code

Result

0

Aktion als erfolgreich markiert

Non-zero (e.g. 1)

Aktion als fehlgeschlagen markiert

Your Bei AktionsfehlerDie Einstellung in den Zusatzoptionen bestimmt, was als nächstes passiert — ob die Pipeline stoppt oder fortfährt.

Stellen Sie sicher, dass Ihre Skripte explizit mit dem entsprechenden Code beendet werden. Wenn ein Skript beendet wird0nach dem Auftreten eines Fehlers, den es nicht verarbeitet hat, behandelt Level die Aktion als erfolgreich.


Conditions

The ConditionsDer Abschnitt ermöglicht es Ihnen, zu begrenzen, wann diese Aktion ausgeführt wird, basierend auf Geräteattributen oder dem Ergebnis einer vorherigen Aktion.

See Aktionsbedingungenfür die vollständige Referenz zu Bedingungstypen, Operatoren und Werten.


Additional Options

Erweitern Sie Zusätzliche Optionenfür Aktionsname, Fehlerverhalten, Ausgabevariablenzuweisung, Wiederholungen und den aktivierten Schieberegler.

See Aktionsübersichtfür die vollständige Referenz zu zusätzlichen Optionen, die für jede Aktion verfügbar sind.


Häufig gestellte Fragen

  • Was ist der Unterschied zwischen Skript ausführen und Shell?Skript ausführen führt ein gespeichertes Skript aus Ihrer Bibliothek aus — das Skript ist versionskontrolliert und wiederverwendbar in Automatisierungen. Shell führt ein Ad-hoc-Skript aus, das direkt im Aktionsfenster geschrieben wird. Verwenden Sie Skript ausführen, wenn dieselbe Logik freigegeben oder verwaltet werden muss; verwenden Sie Shell für einmalige Inline-Befehle.

  • Kann das Skript eine Ausgabe schreiben, die andere Aktionen lesen können?Ja — zwei Wege. Definieren Sie Skriptvariablen in der RegisterkarteVariablesdes Skripts und ordnen Sie sie den Automatisierungsvariablen im Aktionsfenster zu; Werte, die während der Ausführung in diese Variablen geschrieben werden, werden durch die Pipeline weitergeleitet. Oder verwenden SieAktionsausgabe einer Variablen zuweisenin den Zusatzoptionen, um die gesamte Standardausgabe des Skripts direkt ohne zusätzliche Zuordnung in eine Automatisierungsvariable zu erfassen. Sie können auch die Inline-Syntax verwenden##{{variable_name=value}}um eine Skriptvariable während der Ausführung zu setzen — sie muss immer noch im Aktionsfenster zugeordnet werden, um eine Automatisierungsvariable zu werden. SieheErfassen der Skriptausgabeoben für Details.

  • Was passiert, wenn das Skript ein Timeout hat?Die Aktion wird als fehlgeschlagen markiert. DieBei AktionsfehlerDie Einstellung in den Zusatzoptionen bestimmt, ob die Pipeline stoppt oder fortfährt.

  • Wer kann Skriptaktionen hinzufügen oder ändern?Techniker mit Berechtigung zum Bearbeiten von Automatisierungen in der relevanten Gruppe. SieheArbeitsbereich → Berechtigungenfür die Konfiguration der Zugriffskontrolle.

Hat dies deine Frage beantwortet?