Skriptbasierte Regel
Skriptbasierte Regeln ermöglichen die Erstellung benutzerdefinierter Regeln mithilfe von PowerShell oder VBScript, um komplexe Anforderungen zu erfüllen. Anwendungen können basierend auf einer Vielzahl von Skriptbedingungen dynamisch zugelassen, blockiert oder erhöht werden, wodurch eine leistungsstarke, flexible Kontrolle über das Anwendungsverhalten bewirkt wird.
Skriptbasierte Regeln können jede Schnittstelle nutzen, die über PowerShell oder VBScript zugänglich ist, zum Beispiel COM (Component Object Model). Jedes Skript wird unter den folgenden Umständen ausgewertet:
-
Wenn eine neue Konfiguration auf dem Computer bereitgestellt wird
-
Wenn sich ein Benutzer anmeldet
Skriptbasierte Regel konfigurieren
Sie können skriptbasierte Regeln konfigurieren, wenn Sie Anwendungskontrollregeln auf der Seite Wann wird dies zugewiesen? einrichten. So konfigurieren Sie skriptbasierte Regeln:
-
Wählen Sie auf der Seite Wann wird dies zugewiesen? die Option Skriptbasiert aus der Dropdownliste Quelle auswählen aus.
Die Registerkarte Skript wird angezeigt. -
Geben Sie einen Namen für das Skript an.
-
Wählen Sie in der Dropdownliste Skriptsprache je nach Anforderung die Option PowerShell oder VBScript aus.
Weitere Informationen zum Verwenden der Skripte finden Sie in den folgenden Abschnitten.
PowerShell-Skripte
Wenn das Skript mit einem Wert von 0 zurückgibt (beendet wird), gilt das Skript bestanden und die Regeln werden angewendet. Wenn ein Wert ungleich Null zurückgegeben wird, schlägt das Skript fehl und die Regeln kommen nicht zur Anwendung.
Jedes PowerShell-Skript wird in einer Instanz von PowerShell.exe ausgeführt, und daher erzwingt oder fügt Application Control keine bestimmte Syntax hinzu. Alle korrekt gebildeten PowerShell-Skripte funktionieren.
PowerShell muss auf allen Endpunkten installiert werden, auf denen das Skript verwendet werden soll.
VBScript-Skripte
Jedes Skript wird innerhalb einer gehosteten Skript-Engine ausgeführt, wodurch eine größere Kontrolle über die Skriptausführung und gleichzeitig ein hohes Maß an Eingabe- und Ausgabekontrolle bereitgestellt wird.
-
Es wird keine VBS-Datei verwendet.
-
Es wird kein separater Prozess gestartet.
Ein Skript muss als Funktion geschrieben werden und kann zahlreiche Funktionen enthalten, es muss jedoch eine Hauptstartfunktion angegeben werden. Die Startfunktion wird vom Application Control-Agenten ausgeführt und kann zum Aufrufen anderer Funktionen verwendet werden.
Das AMScriptRule COM-Objekt ist in die Skripterstellungs-Engine integriert und bietet Zugriff auf die folgenden Methoden:
-
strUsername = AMScriptRule.UserName
-
strUserdomain = AMScriptRule.UserDomain
-
strSessionid = AMScriptRule.SessionID
-
strStationname = AMScriptRule.WinStation
Der Microsoft-Standard in dieser Instanz bedeutet, dass WinStation den Wert des Namens der Terminal Services Session zurückgibt, der vom Sitzungstyp bestimmt wird. Die typischen Werte lauten "Console" oder "RDP-Tcp#34" anstelle des Windows Station-Namens, der normalerweise WinSta0 ist.
Das AMScriptRule COM-Objekt enthält außerdem die folgenden Methoden:
-
strLog = AMScriptRule.Log "My Log Statement"
Mit dieser Option können Sie Protokollzeichenfolgen zur Verwendung mit Debugging-Skriptregeln an die Agentenprotokolldatei ausgeben.
-
strEnvironmentvar = AMScriptRule.ExpandEnvironment ("%MyEnvironmentVariables%")
Erweitert die Umgebungsvariablen des Benutzers, der das Skript ausführt.
Beim Verwenden von WScript. Die Shell zum Erweitern von Umgebungsvariablen gibt nur SYSTEM-Variablen zurück.
-
-
Wählen Sie in der Dropdownliste Eingabefunktion die Option Skriptbasierte Regel aus.
Die Option "Eingabefunktion" ist nur für VBScript verfügbar.
-
Fügen Sie im Feld Skript ein PowerShell- oder VBScript-Skript hinzu.
-
Navigieren Sie zur Registerkarte Optionen, um die Skriptausführungen und das Timeout zu konfigurieren.
-
Wählen Sie auf der Registerkarte Optionen die Ausführungsmethode des Skripts aus der Dropdownliste Ausführungstyp wie folgt aus:
-
Pro Sitzung als Benutzer: Gibt an, dass das Skript für jeden Benutzer ausgeführt wird, der sich anmeldet. Einstellungen werden nur für die Dauer der Benutzersitzung angewendet. Beachten Sie, dass das Skript auch dann ausgeführt wird, wenn der Desktop entsperrt ist.
-
Pro Sitzung als System: Gibt an, dass das Skript einmal für jeden angemeldeten Benutzer mit Systemkontoberechtigungen ausgeführt wird. Einstellungen werden nur für die Dauer der Benutzersitzung angewendet.
-
Pro Computer als System: Gibt an, dass das Skript beim Computerstart einmal mit Systemkontoberechtigung ausgeführt wird. Einstellungen werden auf alle Benutzersitzungen angewendet, bis der Computer neu gestartet wird, der Application Control-Agent neu gestartet wird oder eine Konfiguration geändert wird.
-
-
Aktivieren Sie die Option Erst ausführen, wenn Benutzeranmeldung abgeschlossen ist, um zu verhindern, dass das Skript ausgeführt wird, während die Benutzeranmeldung noch andauert.
-
Geben Sie eine Zeit bei Wartezeit in Sekunden oder Skript-Timeout ein, damit ein Skript weiterhin ausgeführt werden kann, bevor die Skript-Timeout-Zeit abgelaufen ist. Eine Einstellung von null (0) Sekunden verhindert die Skript-Zeitüberschreitung. Wenn eine Zeitüberschreitung auftritt, gilt das Ergebnis als fehlgeschlagen und die Einstellungen können nicht angewendet werden.
-
Klicken Sie auf Hinzufügen.