6.2.4.3 Script Templates


PIC

Abbildung 6.36: Script Template Beispiel


Die Templates bilden die Vorlage für konkrete Jobs (s. Abb. 6.36). So kann als Beispiel die Benutzeranlage in einem AD über PowerShell als Template abgespeichert werden. Der Executor ist hier also der zuvor festgelegte PowerShell-Executor. Im Reiter Deploy-Files werden die Dateien die auf dem Zielsystem abgelegt werden sollen eingetragen. Diese Dateien werden dann im temporärem Ordner des PMD Jobs abgelegt. Abhängig von der Spalte "Cleanup" wird die Datei nach dem Job-Ende auch wieder gelöscht. Sollen die Deploy-Files permanent abgelegt werden, so empfiehlt es sich die Dateien im PowerShell Script durch entsprechende Befehle zu kopieren bzw. zu verschieben. Im Script sind folgende Umgebungsvariablen verfügbar:

PMD_TEMP
Zugewiesenes temporäres Verzeichnis für den aktuellen Job.
PMD_PROG_DIR
Programmausführungsverzeichnis. (PMDService, ScriptAgent oder PMDRun.exe)

Der Reiter "Script" enthält dann das PowerShell Script (in unserem Beispiel zur Benutzeranlage). Ausdrücke in geschweiften Klammern dienen als Token, die im konkretem Job dann ersetzt werden. {USER_FIRSTNAME}, {USER_LASTNAME}, {EMAIL}, {USER_PASSWORD}, {KND_ID} sind Beispiele für solche Token. Die Token werden im Reiter "Argumente" (ohne die geschweiften Klammern) angegeben. Jeder hier angegebene Parameter hat eine Sortierung, in welcher Reihenfolge die abzufragenden Parameter angezeigt werden sollen. Negative Sortierungen sorgen dafür, dass die GUI-Werte nicht angezeigt werden. Die Sortierung wird nur auf gleicher Ebene(Level) berücksichtigt, da die Parameterfestlegung über mehrere Schritte (Ebenen, Level) erfolgt und die höheren Level die geringeren Level nochmal überschreiben können. Die Spalten Kundengruppe, Kunde, Domain, Gerät können die Tokenauswahl nochmals beeinflussen bzw. auch Umgekehrt können Sie die Spaltenwerte, die verwendet werden sollen, noch dynamisch anpassen, indem Sie die Spaltennamen verwenden und entsprechende Werte festlegen. Weiter haben Sie die Wahl den Token-Typ zu wählen.

GUI
Ein fester Wert, welcher immer verwendet wird. Ist die Vorgabe Leer, wird dieser Parameter beim erstellen eines Konkreten Jobs abgefragt. Vorname, Zuname und Kundennummer sind klassische Beispiele für direkte GUI - Parameter auf der ersten Ebene.
Replace
ersetzt Token durch Werte aus vorausgegangenen Ebenen (Level). Hier könnte auf dritter Ebene dann die Email aus dem Schema ( {USER_FIRSTNAME}.{USER_LASTNAME}@{DOMAINNAME}) generiert werden. Den Tag Domainname müssten Sie dann aber auf zweiter Ebene als Gui Parameter festlegen welcher abhängig von der Kundennummer (s. Spalte Kundennummer) schon vorbelegt wird.
Funktion
Ersetzt den Wert durch ein Ergebnis aus einer SQL Query. Beim Passwort könnten Sie auf beliebiger Ebene den Typ Funktion wählen und mit Select dbms_random.string('p',16) from dual ein zufälliges 16 stelliges Passwort generieren welches das komplette Spektrum druckbarer Zeichen abdeckt. Beachten Sie, dass auf Funktionsebene ebenfalls Token eingesetzt werden können. So können Sie 'p' durch '{PWD_CHAR}' und 16 durch {PWD_ANZ} (beachten Sie hierbei die Anführungszeichen) ersetzen und eine Ebene vorher ggf. Kunden(-gruppen)-abhängig festlegen dass bei Kunde A nur 8 Zeichen verwendet werden und bei Kunde B 10 Zeichen aber nur aus alphanumerischen Werten. Die genauen Parameter der Funktion dbms_random entnehmen Sie der Oracle Dokumentation.

Zur besseren Verständlichkeit und Benutzerfreundlichkeit können zusätzlich noch ein "Friendly Name" für jeden Parameter angegeben werden. So wird z.B. statt USER_FIRSTNAME einfach Vorname angezeigt. Ist kein "Friendly Name" definiert, wird der Argumentname angezeigt. Weiter wird beim konkreten Job die Spalte Hinttext als Hinweistextspalte angezeigt und enthält hilfreiche Angaben wie z.B. "Geben Sie hier den Vornamen des anzulegenden Benutzers ein". Die Spalte "Dropdownsql" ist ebenfalls optional und kann ein SQL Statement enthalten, welches eine Auswahlliste generiert.

SELECT '$true' FROM DUAL  
UNION  
SELECT '$false' FROM DUAL

Somit wird in der Auswahl $true bzw. $false angezeigt. Die Auswahl versteht sich nur als Eingabehilfe, ermöglicht aber eine freie Eingabe. Die Korrektheit ist vom Benutzer zu prüfen. Wie Sie schon aus den vorangegangenen Beschreibung ersehen können, ist dieser Bereich sehr mächtig und Sie müssen nicht alle Parameter, die hier festgelegt werden, auch im Script verwenden. So wird z.B. {DOMAINNAME}, {PWD_ANZ} und {PWD_CHAR} im PowerShell-Script gar nicht verwendet, dienen aber als zwischen Variable. Werden Werte mehrfach zugewiesen müssen Sie beachten, dass höhere Ebenen niedrigere ebenen Überschreiben, Mehrfachnennungen eines Parameters auf gleicher Ebene nur erlaubt ist, wenn jeweils mindestens eine einschränkende Spalte (z.B. Kundennummer) verwendet wird. So können Sie z.B. auf Ebene zwei das Passwort für Kunden A als Typ GUI angeben, und wird somit explizit abgefragt. Aber für Kunden B ein Kennwort nach entsprechender Richtlinie vorgeben lassen und es per negativer Sortierung dem Anwender vorenthalten und z.B. im Powershell-Script an eine Treuhänder eMail-Adresse senden. Auf diese Weise lassen sich nicht nur verschiedene Passwortrichtlinien für verschiedene Kunden, Gruppen und Domains u.d.gl. festlegen, sondern auch das eMail-Schema kann dynamisch festgelegt werden und z.B. per SQL Funktion festlegen, dass nur der erste Buchstabe des Vornamens verwendet wird. So ist es möglich dass ein Stefan Mustermann beim Kunden A mit Stefan.Mustermann@KundeA.de und bei Kunde B mit s.mustermann@KundeB.com angelegt wird. Im Powershell, welches lediglich die fertige eMail-Adresse enthält wird diese dann auch komplett übergeben und entsprechend ersetzt. Durch die Token können sogar ganze Powershell Script Abschnitte eingefügt werden was hilfreich ist, wenn man die angelegten Benutzer abhängig z.B. vom Kunden in Bestimmte Gruppen geben möchte. Die Tokenersetzung geht nun sogar noch einen Schritt weiter und ersetzt die Kopfdaten eines konkreten Jobs. Somit können durch diesen dynamischen Mechanismus auch Target_IP, BIOS_GUID, PMD_TOKEN oder gar der Ausführungszeitpunkt bestimmt bzw. beeinflusst werden.