Skript ausführen
Wie du mit der Aktion Skript ausführen eigene PowerShell- oder Bash-Skripte startest, Werte zurückgibst und wann der Schritt fehlschlägt.
Mit dieser Aktion startest du ein eigenes PowerShell- oder Bash-Skript auf dem Gerät und gibst Werte daraus an spätere Schritte weiter. Das Gerät muss dafür online sein.
Voraussetzungen
- Auf dem Zielgerät muss ein octoja-Agent installiert und verbunden sein.
- Für Angemeldeter Benutzer unter Ausführen als muss jemand am Gerät angemeldet sein. Unter Linux und macOS muss das ein anderes Konto als
rootsein. - Unter Linux braucht octoja
jqauf dem Gerät, um Ausgabeparameter zu übernehmen. Ohnejqbleiben sie leer.
Konfigurationsfelder
Die drei Skriptfelder sind Registerkarten im Eigenschaften-Panel. Jedes Gerät führt nur das Skript für sein eigenes Betriebssystem aus. Fülle also nur die Registerkarten aus, die du brauchst.
octoja setzt Variablen als reinen Text ins Skript ein, bevor es an das Gerät geht. Fehlt ein Wert im Lauf, etwa weil der Schritt, der ihn liefert, übersprungen wurde, bleibt der Platzhalter unverändert im Skript stehen.
Achtung: octoja maskiert Werte nicht für PowerShell oder Bash. Anführungszeichen, ; oder $( … ) in einem Wert werden Teil des Skripts und können ändern, was es tut. Setze nur Werte ein, die du selbst kontrollierst, etwa deine eigenen Felder. Freitext von Benutzern oder externen Systemen gehört nie in ein Skript.
Ausgabeparameter
Lege unter Ausgabeparameter einen Namen wie result an und setze im Skript eine Variable mit demselben Namen: $result = 'OK' in PowerShell oder result='OK' in Bash. Text, den du nur auf die Standardausgabe schreibst, setzt keinen Parameter.
Plattformunterstützung
Ausgaben
Unter Variable einfügen findest du exitCode, stdout und stderr (als Exit-Code, Standardausgabe und Fehlerausgabe) sowie deine eigenen Parameter.
Ergebnisverhalten
Mit der Standardeinstellung unter Bei Fehler stoppt ein fehlgeschlagener Schritt den Workflow. Sollen spätere Schritte trotzdem laufen, wähle Mit nächstem Schritt fortfahren.
Standardausgabe, Fehlerausgabe und Ausgabeparameter werden nach 65.536 Zeichen abgeschnitten, und das Ergebnis weist nicht darauf hin. Auch ein erfolgreicher Schritt kann also eine unvollständige Ausgabe liefern. Gib deshalb kompakte Ergebnisse zurück statt ganzer Protokolle.
Mit System (Agent-Identität) läuft das Skript mit vollen Rechten und kann auf dem Gerät alles ändern oder löschen. Schritt testen und Testlauf führen es wirklich aus. Probiere neue Skripte zuerst auf einem geeigneten Gerät aus.
FAQ
Kann die Aktion über das Überwachungsgerät eines Netzwerkgeräts laufen?
Kann die Aktion über das Überwachungsgerät eines Netzwerkgeräts laufen?
Nein. Skript ausführen nutzt die Agentenverbindung des Zielgeräts. Bei einem agentenlosen Netzwerkgerät führt das zugewiesene Überwachungsgerät die Automatisierungsskripte nicht stellvertretend aus. Dass das Netzwerkgerät als online angezeigt wird, ersetzt keine Agentenverbindung.
Das unterscheidet die Aktion von Monitoring-Checks für Netzwerkgeräte, die über das Überwachungsgerät laufen können. Eigenes Feld schreiben läuft dagegen in octoja und benötigt keine Agentenverbindung; diese Aktion führt selbst kein PowerShell- oder Bash-Skript aus.
Warum bleibt die Fehlerausgabe leer, obwohl das Skript fehlgeschlagen ist?
Warum bleibt die Fehlerausgabe leer, obwohl das Skript fehlgeschlagen ist?
Ein Exit-Code ungleich 0 kennzeichnet einen Fehler, erzeugt aber selbst keinen Text in stderr. In Bash schreibt echo "Example failure" in stdout, nicht in stderr. Prüfe deshalb beide Ausgaben; eine leere Fehlerausgabe bedeutet nicht, dass das Skript erfolgreich war.
Wenn dein Bash-Skript eine eigene Fehlermeldung zurückgeben soll, schreibe sie ausdrücklich in die Fehlerausgabe:
echo "Example failure" >&2
exit 1
Für eine nachfolgende Teams-Nachricht wähle am Skriptschritt unter Bei Fehler die Option Mit nächstem Schritt fortfahren. Setze im Benachrichtigungsschritt zwei Bedingungen für den Exit-Code des Skripts: ist nicht leer und ≠ 0, verknüpft mit Alle. So löst ein übersprungener Skriptschritt keine Fehlerbenachrichtigung aus.
Füge über Variable einfügen dessen Exit-Code, Standardausgabe und Fehlerausgabe in die Nachricht ein. Dafür musst du keine eigenen Ausgabeparameter anlegen.
Siehe auch: Eine Automatisierung erstellen
War dies hilfreich?
Mehr in Aktionen
Benachrichtigung sendenBenutzer fragenBenutzerkonto deaktivierenBenutzerkonto erstellenBrauchen Sie noch Hilfe? Team fragen