Beispiel: Parametrisierte Pakete
Parametrisierte Pakete sind so konzipiert, dass sie Sie dazu auffordern, Werte für Befehlszeilenparameter anzugeben, wenn Sie Aktionen bereitstellen. Wenn Sie beispielsweise eine Aktion bereitstellen, die das von Tanium bereitgestellte Paket Registry - Set Value (Registry - Wert festlegen) verwendet, werden Sie auf der Seite Action Deployment (Aktionsverteilung)


Wenn Sie die Aktion für eine regelmäßige Neuverteilung konfigurieren, wird sie zu einer geplanten Aktion. Wenn eine geplante Aktion auf einem parametrisierten Paket basiert, wird die Paketdefinition, einschließlich der substituierten Werte, in einem Objekt gespeichert, das als temporäres Paket bezeichnet wird Auf dem Endpunkt führt der Tanium Client das temporäre Paket aus, wenn er eine Anweisung hat, die geplante Aktion auszuführen, die sie aufruft. Eine geplante Aktion verwendet weiterhin das temporäre Paket, auch wenn das Paket, auf dem es basiert, aktualisiert wird. Wenn also ein Paket aktualisiert wird und Sie möchten, dass die geplante Aktion den aktualisierten Code verwendet, müssen Sie die geplante Aktion erneut erstellen.
Paketskript- und Befehlszeilenparameter
Wenn Sie ein parametrisiertes Paket konfigurieren (siehe Ein Paket erstellen), gibt der Befehl ein Skript an. Die im Skript codierten Parameter und die Reihenfolge, in der Werte während der Aktionsverteilung angegeben werden, werden entsprechend der Position ausgerichtet, und nicht entsprechend der Zahl. Im folgenden Beispiel sind die Skriptparameter die Zahlen von 0 bis 4.

Die Befehlszeilenparameter sind in von $1 bis $5 nummeriert.


'- Begin file: i18n/UTF8Decode.vbs '======================================== ' UTF8Decode '======================================== ' Used to convert the UTF-8 style parameters passed from ' the server to sensors in sensor parameters. ' This function should be used to safely pass non english input to sensors. '----- '----- Function UTF8Decode(str) Dim arraylist(), strLen, i, sT, val, depth, sR Dim arraysize arraysize = 0 strLen = Len(str) for i = 1 to strLen sT = mid(str, i, 1) if sT = "%" then if i + 2 <= strLen then Redim Preserve arraylist(arraysize + 1) arraylist(arraysize) = cbyte("&H" &mid(str, i + 1, 2)) arraysize = arraysize + 1 i = i + 2 end if else Redim Preserve arraylist(arraysize + 1) arraylist(arraysize) = asc(sT) arraysize = arraysize + 1 end if next depth = 0 for i = 0 to arraysize – 1 Dim mybyte mybyte = arraylist(i) if mybyte and &h80 then if (mybyte and &h40) = 0 then if depth = 0 then Err.Raise 5 end if val = val * 2 ^ 6 + (mybyte and &h3f) depth = depth – 1 if depth = 0 then sR = sR &chrw(val) val = 0 end if elseif (mybyte and &h20) = 0 then if depth >0 then Err.Raise 5 val = mybyte and &h1f depth = 1 elseif (mybyte and &h10) = 0 then if depth >0 then Err.Raise 5 val = mybyte and &h0f depth = 2 else Err.Raise 5 end if else if depth >0 then Err.Raise 5 sR = sR &chrw(mybyte) end if next if depth >0 then Err.Raise 5 UTF8Decode = sR End Function '- End file: i18n/UTF8Decode.vbs
In Shellscripts können Sie eine Funktion ähnlich der nachfolgenden verwenden, um die Parameterdaten zu dekodieren:
#!/bin/sh percent_decode() { local data=$(echo "$1" | sed 's/%/\\\x/g') /usr/bin/printf '%b' "$data" } myVariable=`percent_decode "||parameter_value||"`
Das printf-Dienstprogramm ist eventuell nicht verfügbar oder funktioniert möglicherweise nicht korrekt auf allen Linux-, MacOS- und UNIX-Plattformen. Eine narrensichere aber weniger elegante Implementierung ist:
#!/bin/sh brute_force_percent_decode() { # decode everything between 0x20-0x7E except: #0 1 2 3 4 5 6 7 8 9 (0x30-0x39) #A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (0x41-0x5A) #a b c d e f g h i j k l m n o p q r s t u v w x y z (0x61-0x7A) echo "$1" | sed -e 's/%20/ /g' \ -e 's/%21/!/g' \ -e 's/%22/"/g' \ -e 's/%23/#/g' \ -e 's/%24/$/g' \ -e 's/%25/%/g' \ -e 's/%26/\&/g' \ -e "s/%27/'/g" \ -e 's/%28/(/g' \ -e 's/%29/)/g' \ -e 's/%2[aA]/*/g' \ -e 's/%2[bB]/+/g' \ -e 's/%2[cC]/,/g' \ -e 's/%2[dD]/-/g' \ -e 's/%2[eE]/./g' \ -e 's#%2[fF]#/#g' \ -e 's/%3[aA]/:/g' \ -e 's/%3[bB]/;/g' \ -e 's/%3[cC]/</g' \ -e 's/%3[dD]/=/g' \ -e 's/%3[eE]/>/g' \ -e 's/%3[fF]/?/g' \ -e 's/%40/@/g' \ -e 's/%5[bB]/[/g' \ -e 's/%5[cC]/\\/g' \ -e 's/%5[dD]/]/g' \ -e 's/%5[eE]/^/g' \ -e 's/%5[fF]/_/g' \ -e 's/%60/`/g' \ -e 's/%7[bB]/{/g' \ -e 's/%7[cC]/|/g' \ -e 's/%7[dD]/}/g' \ -e 's/%7[eE]/-/g' } myVariable=`brute_force_percent_decode "||parameter_value||"`
Einstellungen für die Parametereingabe
Parameter-Eingaben, die Sie in der Paketkonfiguration angeben, bestimmen die Einstellungen, zu denen die Tanium Console Benutzer bei der Bereitstellung einer Aktion, die das Paket verwendet, zur Konfiguration aufgefordert werden. Fügen Sie jeweils einen Parameter hinzu. Die erste, die Sie hinzufügen, wird der Befehlszeilen-Variablen $1 zugeordnet, die zweite der Variablen $2 zugeordnet und so weiter.


Sie können die Elemente auswählen und ziehen, um sie in die Liste der Parametereingaben zu verschieben, die im Navigationsmenü links im Formular angezeigt wird. Stellen Sie sicher, dass die endgültige Reihenfolge mit den nummerierten Parametern im Befehl übereinstimmt.
Das häufigste Widget für die Benutzereingabe ist ein Textfeld, aber Sie können eine der folgenden Optionen auswählen:
- Kontrollkästchen: Der Benutzer aktiviert eine Einstellung, indem er ein Kästchen aktiviert. In die Variable wird 0 oder 1 eingegeben. Gibt 1 zurück, wenn aktiviert und 0, wenn nicht aktiviert.
- Datum, Datum/Uhrzeit, Datum – Zeitspanne: Der Benutzer wählt ein Datum und eine Uhrzeit oder einen Bereich aus. Das Datum/Uhrzeit-Format wird in Millisekunden angegeben. Für einen Bereich gibt der Benutzer zwei Datumsangaben an, die durch ein Pipe-Zeichen getrennt sind.
- Dropdown-Liste: Benutzer wählt nur eine Option aus einer Liste aus.
- Liste: Der Benutzer wählt eine oder mehrere Werte aus. Mehrere Werte werden durch ein Pipe-Zeichen getrennt.
- Numerisch: Der Benutzer gibt eine Zahl ein. Die Eingabe kann mit Minimal- und Maximalwerten gesteuert werden. Sie können eine Schrittgröße angeben, um zu verlangen, dass die Eingabe durch den angegebenen Wert teilbar ist. Snap Zeitabstand ist der Betrag, um den eine Zahl durch Drücken der Aufwärts- bzw. Abwärts-Taste erhöht oder verringert wird. Der Wert für Schrittgröße sollte ein Vielfaches des Wertes für Snap Zeitabstand sein, es sei denn, der Snap Zeitabstand ist 0. Die vom Benutzer gewählte Zahl wird in die Variable eingegeben.
- Numerisches Intervall: Der Benutzer wählt eine Zahl und ein Element aus einer Liste aus. Das Listenelement hat einen numerischen Wert. Der in die Variable eingegebene Wert ist das Ergebnis der Multiplikation. Wenn ein Benutzer beispielsweise eine 2 und „Hoch“ wählt (wobei hoch ein Wert von 3 bedeutet), lautet der Wert in der Variablen 6.
- Trennzeichen: Ein Trennzeichen ist eine grafische Methode, um Abschnitte im Benutzereingabeformular zu trennen.
- Textbereich: Der Benutzer gibt eine große Textmenge ein. Der Text wird in die Variable eingegeben.
- Texteingabe: Der Benutzer gibt Texteingaben ein. Zulässige Einträge können mit regulären Ausdrücken gesteuert werden. Die Benutzereingabe wird in die Variable eingegeben.
- Zeit: Der Benutzer wählt eine Zeit aus einer Dropdown-Liste aus. Die Eingabe kann Einschränkungen unterliegen.
Die meisten Parametertypen bieten Optionen zum Angeben von schreibgeschützten Werten, die Benutzern helfen, zu verstehen, wie die Parameter bei der Bereitstellung einer Aktion konfiguriert werden. Das folgende Beispiel zeigt die schreibgeschützten Werte, die Sie für Texteingabe angeben können. Der Abschnitt Preview (Vorschau) zeigt, wie die Einstellungen für Benutzer angezeigt werden, die eine Aktion bereitstellen, die das Paket verwendet.

Zuletzt aktualisiert: 20.09.202116:06 | Feedback