Freigeben über


Skripterzwingung mit App Control for Business

Hinweis

Einige Funktionen von App Control for Business sind nur für bestimmte Windows-Versionen verfügbar. Erfahren Sie mehr über die Verfügbarkeit von App Control-Features.

Wichtig

Option 11 Deaktiviert: Die Skripterzwingung wird auf Windows Server 2016 oder auf Windows 10 1607 LTSB nicht unterstützt und sollte auf diesen Plattformen nicht verwendet werden. Dies führt zu unerwarteten Skripterzwingungsverhalten.

Übersicht über die Skripterzwingung

Standardmäßig ist die Skripterzwingung für alle App-Steuerungsrichtlinien aktiviert, es sei denn, die Option 11 Deaktiviert:Skripterzwingung ist in der Richtlinie festgelegt. Die Erzwingung von App-Steuerelementskripts umfasst einen Handshake zwischen einem optimierten Skripthost, z. B. PowerShell, und App Control. Der Skripthost verarbeitet jedoch das tatsächliche Erzwingungsverhalten. Einige Skripthosts, z. B. der Microsoft HTML-Anwendungshost (mshta.exe), blockieren die gesamte Codeausführung, wenn eine App Control UMCI-Richtlinie aktiv ist. Die meisten Skripthosts fragen zuerst App Control, ob ein Skript basierend auf den derzeit aktiven App Control-Richtlinien ausgeführt werden soll. Der Skripthost blockiert, lässt oder ändert dann die Ausführung des Skripts, um den Benutzer und das Gerät bestmöglich zu schützen.

Die Überprüfung für signierte Skripts erfolgt mithilfe der WinVerifyTrust-API. Um die Überprüfung zu bestehen, muss der Signaturstamm im vertrauenswürdigen Stammspeicher auf dem Gerät vorhanden sein, und Ihre App Control-Richtlinie muss dies zulassen. Dieses Verhalten unterscheidet sich von der App Control-Überprüfung für ausführbare Dateien, für die keine Installation des Stammzertifikats erforderlich ist.

App Control gibt das Ereignisprotokoll AppLocker – MSI und Script für alle Skripterzwingungsereignisse frei. Wenn ein Skripthost App Control fragt, ob ein Skript zulässig sein soll, wird ein Ereignis mit der Antwort-App-Steuerung protokolliert, die an den Skripthost zurückgegeben wird. Weitere Informationen zu App Control-Skripterzwingungsereignissen finden Sie unter Grundlegendes zu App Control-Ereignissen.

Hinweis

Wenn ein Skript ausgeführt wird, das von der Richtlinie nicht zulässig ist, löst App Control ein Ereignis aus, das angibt, dass das Skript "blockiert" wurde. Das tatsächliche Skripterzwingungsverhalten wird jedoch vom Skripthost verarbeitet und kann die Ausführung der Datei möglicherweise nicht vollständig blockieren.

Beachten Sie auch, dass einige Skripthosts ihr Verhalten ändern können, auch wenn sich eine App-Steuerungsrichtlinie nur im Überwachungsmodus befindet. Sie sollten die spezifischen Informationen des Skripthosts in diesem Artikel überprüfen und gründlich in Ihrer Umgebung testen, um sicherzustellen, dass die Skripts, die Sie ausführen müssen, ordnungsgemäß funktionieren.

Optimierte Skripthosts, die Teil von Windows sind

PowerShell

Ihre App-Steuerungsrichtlinien müssen zulassen, dass alle PowerShell-Skripts (.ps1), Module (.psm1) und Manifeste (.psd1) mit Vollsprachrechten ausgeführt werden können.

Ihre App-Steuerungsrichtlinien müssen auch alle abhängigen Module zulassen, die von einem zulässigen Modul geladen werden, und Modulfunktionen müssen explizit anhand des Namens exportiert werden, wenn Die App-Steuerung erzwungen wird. Module, die keine exportierten Funktionen angeben (keine Exportnamenliste), werden weiterhin geladen, aber es sind keine Modulfunktionen zugänglich. Module, die Platzhalter (*) im Namen verwenden, können nicht geladen werden.

Alle PowerShell-Skripts, die von der App-Steuerungsrichtlinie nicht zulässig sind, werden weiterhin ausgeführt, jedoch nur im eingeschränkten Sprachmodus.

PowerShell-Dot-Sourcing wird nicht empfohlen. Stattdessen sollten Skripts PowerShell-Module verwenden, um allgemeine Funktionen bereitzustellen. Wenn eine zulässige Skriptdatei versucht, Dot-Source-Skriptdateien auszuführen, müssen diese Skriptdateien auch die Richtlinie erfüllen.

App Control versetzt interaktive PowerShell in den Eingeschränkten Sprachmodus, wenn eine UMCI-Richtlinie für die App-Steuerung erzwungen wird und eine aktive App-Steuerungsrichtlinie die Skripterzwingung aktiviert, auch wenn sich diese Richtlinie im Überwachungsmodus befindet. Um interaktive PowerShell mit Vollsprachrechten auszuführen, müssen Sie die Skripterzwingung für alle Richtlinien deaktivieren.

Weitere Informationen finden Sie unter Informationen zu Sprachmodi und eingeschränktem Sprachmodus.

VBscript, cscript und jscript

Ihre App-Steuerungsrichtlinien müssen die Ausführung aller Skripts mit dem Windows-basierten Skripthost (wscript.exe) oder dem Microsoft Console Based Script Host (cscript.exe) zulassen. Andernfalls wird das Skript blockiert.

Microsoft HTML Application Host (MSHTA) und MSXML

Die gesamte Codeausführung mit MSHTA oder MSXML wird blockiert, wenn eine App Control-Richtlinie mit Skripterzwingung aktiv ist, auch wenn sich diese Richtlinie im Überwachungsmodus befindet.

COM-Objekte

App Control erzwingt zusätzlich eine eingeschränkte Zulassungsliste für COM-Objekte, die ihre App Control-Richtlinie erweitern oder weiter einschränken kann. Com-Objekterzwingung wird von Option 11 Deaktiviert:Skripterzwingungnicht beeinflusst. Weitere Informationen zum Zulassen oder Verweigern von COM-Objekten finden Sie unter Zulassen der COM-Objektregistrierung.

Skripts, die nicht direkt vom App-Steuerelement gesteuert werden

App Control steuert nicht direkt Code, der über den Windows-Befehlsprozessor (cmd.exe) ausgeführt wird, einschließlich .bat/.cmd-Skriptdateien. Alles, was ein solches Batchskript auszuführen versucht, unterliegt jedoch der App-Steuerung. Wenn Sie cmd.exe nicht ausführen müssen, wird empfohlen, es direkt zu blockieren oder nur durch Ausnahme basierend auf dem aufrufenden Prozess zuzulassen. Weitere Informationen finden Sie unter Verwenden einer App Control for Business-Richtlinie zum Steuern bestimmter Plug-Ins, Add-Ins und Module.

Die App-Steuerung steuert keine Skripts, die über einen nicht vereinfachten Skripthost ausgeführt werden, z. B. viele Java- oder Python-Engines von Drittanbietern. Wenn Ihre App-Steuerungsrichtlinie die Ausführung eines nicht optimierten Skripthosts zulässt, lassen Sie implizit zu, dass alle Skripts über diesen Host ausgeführt werden. Bei Nicht-Microsoft-Skripthosts sollten Sie beim Softwarehersteller überprüfen, ob die Skripthosts für die App-Steuerungsrichtlinie geeignet sind.