Benutzerdefinierte Bedingungen
In diesem Abschnitt werden folgende Themen behandelt:
- Wissenswertes über benutzerdefinierte Bedingungen
- PowerShell-Skripte
- Erstellen einer benutzerdefinierten Bedingung
- Exportieren von benutzerdefinierten Skripten
Wissenswertes über benutzerdefinierte Bedingungen
Mit einer benutzerdefinierten Bedingung können Sie Bedingungen mit PowerShell, Visual Basic oder Java Script erstellen, importieren und exportieren. Benutzerdefinierte Bedingungen erlauben Szenarien, die standardmäßig nicht auf der Environment Manager-Konsole zur Verfügung stehen. So kann zum Beispiel geprüft werden, ob die Windows Firewall aktiv ist.
Die Skripte werden in der AEMP-Konfiguration gespeichert, zur Laufzeit auf die Festplatte kopiert, ausgeführt und nach Abschluss gelöscht. Skripte können zur Wiederverwendung im- oder exportiert werden.
Umfangreiche Skripts vergrößern eine AEMP-Konfiguration ebenso wie eine hohe Anzahl an Skripts. Dadurch kann es länger dauern, bis Konfigurationen auf Endpunkten bereitgestellt sind. Außerdem kann sich die Ausführungszeit für die Konfigurationen verlängern.
Es wird empfohlen, keine benutzerdefinierten Bedingungen mit PowerShell-Skripts im Anmeldetrigger zu verwenden, da sich der Anmeldevorgang durch die Ausführung dieser Skripts verlangsamen kann.
Da Skripte für benutzerdefinierte Bedingungen im Batchmodus ausgeführt werden, werden weder Eingabeaufforderungen noch Meldungen angezeigt und die Zeit für das Skript läuft ab, ohne dass es ausgeführt wurde. Entfernen Sie alle Eingabeaufforderungen und Meldungen aus einem Bedingungsskript bzw. kommentieren Sie diese aus, um sicherzustellen, dass das Skript korrekt ausgeführt wird.
Benutzerdefinierte Bedingungen können sowohl auf Computer- als auch Benutzertrigger angewendet werden.
Exitcodes
In allen benutzerdefinierten Skripten muss ein Exitcode festgelegt werden, anhand dessen der Environment Manager Agent bei Rückgabe ermittelt, ob das Skript erfolgreich ausgeführt wurde. Für Skripte ohne Exitcode wird von einem Erfolg (Wert 0) ausgegangen. Für jede Skriptart muss eine bestimmte Anweisung zum Beenden verwendet werden.
Sprache | Exit-Anweisung |
---|---|
VBScript | WScript.Quit [Wert] |
JScript | WScript.Quit([Wert]) |
PowerShell | exit ([Wert]) |
Ersetzen Sie [Wert] durch den jeweiligen Code zum Beenden des Skripts: 0 für erfolgreiche Ausführung und 1 für Fehlschlagen. Beispiel: WScript.Quit 0, WScript.Quit(0), exit (0).
PowerShell-Skripte
In Windows-PowerShell-Skripten kommen verschiedene Ausführungsrichtlinien zum Einsatz, mit denen die Ausführung der Skripte verhindert werden kann oder nur die zugelassen werden, die von vertraunswürdigen Herausgebern signiert wurden. Environment Manager überschreibt Ausführungsrichtlinien und umgeht alle Einschränkungen, damit die PowerShell-Skripte ausgeführt werden können.
Es ist auch möglich, Ausführungsrichtlinien für Benutzer und Computer anhand von Gruppenrichtlinien einzurichten, die alle PowerShell-Ausführungsrichtlinien außer Kraft setzen. Eine Benutzerrichtlinie, die keine bzw. nur signierte Skripts erlaubt, hat keine Auswirkung auf die Ausführung von benutzerdefinierten PowerShell-Bedingungen, wenn diese als System ausgeführt werden. Wenn sie jedoch als aktueller Benutzer ausgeführt werden, lässt die Benutzerrichtlinie die Skripts nicht zu und die benutzerdefinierte Bedingung schlägt fehl. Eine Computerrichtlinie, die keine bzw. nur signierte Skripts erlaubt, lässt nicht zu, dass benutzerdefinierte PowerShell-Aktionen ausgeführt werden.
Daher muss Ihre Gruppenrichtlinie so eingerichtet sein, dass diese Skripts für Benutzer und Computer ausgeführt werden, wenn benutzerdefinierte PowerShell-basierte Bedingungen erfolgreich ausgeführt werden sollen.
Environment Manager ist kompatibel mit den PowerShell-Versionen 1.0, 2.0 und 3.0.
Erstellen einer benutzerdefinierten Bedingung
- Wählen Sie im Navigationsbaum für die Richtlinienkonfiguration den Knoten oder Trigger aus, zu dem Sie die Bedingung hinzufügen möchten. Sie haben folgende Optionen:
- Ein neuer Knoten
- Ein vorhandener Knoten
- Die Registerkarte "Umgebung" eines Triggers
- Wählen Sie im Menüband "Bedingungen" die Option Benutzerdefiniert aus, um den Dialog "Benutzerdefinierte Bedingung" anzuzeigen.
- Wählen Sie die Art des Skripts aus: PowerShell, VBScript oder JScript.
-
Legen Sie die zulässige Ausführungszeit fest. Das ist die Dauer angegeben in Sekunden, nach der das Skript beendet wird. Wenn Sie den Wert auf null setzen oder keinen Wert in das Feld eingeben, ist das Limit für die Ausführungszeit des Skripts auf unendlich gesetzt.
Benutzerdefinierte Bedingungen setzen die Standardtimeouts von Knoten und Bedingungen außer Kraft.
- Klicken Sie auf die Dropdownliste Optionen und konfigurieren Sie die folgenden Optionen:
- Einmal pro Sitzung prüfen – Wählen Sie diese Option aus, um die Bedingung einmal auszuführen und das Ergebnis für die Dauer der Sitzung im Cache zu speichern. Anderenfalls wird die Bedingung bei jedem Aufruf in einer Konfiguration bewertet.
- Als Systembenutzer ausführen – Markieren Sie diese Option, damit im Skript Funktionen verwendet werden können, auf die der aktuell angemeldete Benutzer anderenfalls nicht zugreifen könnte. Wenn diese Option nicht ausgewählt wird, wird das Skript bei Benutzertriggern im Kontext des angemeldeten Benutzers ausgeführt.
- Geben Sie das Skript mit einer der folgenden Möglichkeiten ein:
- Geben Sie es direkt in das Feld ein.
- Durch Drag & Drop oder Kopieren und Einfügen von einem anderen Speicherort.
Klicken Sie auf die Schaltfläche "Import" und wählen Sie eine Datei aus, die Sie im Skriptfeld öffnen und verwenden möchten.
Aus dem Menü "Einfügen" können Sitzungsvariablen zum Skript hinzugefügt werden. Die Dropdownliste umfasst alle benutzerdefinierten Sitzungsvariablen sowie die folgenden integrierten Variablen:
- SessionID – Die aktuelle Kennung der Sitzung
- UserSID – Die Sicherheits-ID des Benutzers
- UserTemp – Der Speicherort des temporären Benutzerverzeichnisses
- In den Triggern "Netzwerk verfügbar", "Netzwerkverbindung hergestellt" und "Netzwerkverbindung unterbrochen" können weitere integrierte Sitzungsvariablen zum Skript hinzugefügt werden, um Verbindungsattribute festzulegen. Diese integrierten Sitzungsvariablen können weder geändert noch gelöscht werden.
- Klicken Sie auf OK, um das Skript zu speichern.
Wenn das Skript ausgelöst wird, wird es bis zum Ende ausgeführt und das Ergebnis der Bedingung (Erfolg oder Fehlschlag) wird in der Debugprotokolldatei erfasst.
Benutzerdefinierte Skripts, deren Zeit abgelaufen ist, werden als fehlgeschlagen eingestuft und alle untergeordneten Knoten sowie die dazugehörigen Aktionen werden nicht ausgeführt.
Exportieren von benutzerdefinierten Skripten
Skripte können im Dialog "Benutzerdefinierte Aktion" exportiert und gespeichert sowie in andere Bedingungen und Konfigurationen importiert werden.
- Öffnen Sie eine benutzerdefinierte Bedingung.
- Klicken Sie auf die Schaltfläche "Exportieren" und wählen Sie einen Speicherort für die PowerShell-, VBS- oder JS-Datei aus.
- Klicken Sie auf Speichern, um den Exportvorgang abzuschließen.