THEMA about_Execution_Policies KURZBESCHREIBUNG Beschreibt Ausführungsrichtlinien von Windows PowerShell und erläutert deren Verwaltung. DETAILBESCHREIBUNG Mit Windows PowerShell-Ausführungsrichtlinien können Sie die Bedingungen festlegen, unter denen Windows PowerShell Konfigurationsdateien lädt und Skripts ausführt. Sie können eine Ausführungsrichtlinie für den lokalen Computer, für den aktuellen Benutzer oder für eine bestimmte Sitzung festlegen. Sie können auch mit einer Gruppenrichtlinie Ausführungsrichtlinien für Computer und Benutzer festlegen. Ausführungsrichtlinien für den lokalen Computer und den aktuellen Benutzer werden in der Registrierung gespeichert. Im Windows PowerShell-Profil müssen Sie keine Ausführungsrichtlinien festlegen. Die Ausführungsrichtlinie für eine bestimmte Sitzung wird nur im Arbeitsspeicher gespeichert und geht beim Schließen der Sitzung verloren. Die Ausführungsrichtlinie ist kein Sicherheitssystem, das Benutzeraktionen einschränkt. Beispielsweise können Benutzer eine Richtlinie leicht umgehen, indem sie den Skriptinhalt in der Befehlszeile eingeben, wenn sie kein Skript ausführen können. Stattdessen erleichtert die Ausführungsrichtl inie den Benutzern das Festlegen grundlegender Regeln und verhindert, dass gegen diese unabsichtlich verstoßen wird. AUSFÜHRUNGSRICHTLINIEN IN WINDOWS POWERSHELL --------------------------------------------- In Windows PowerShell sind folgende Ausführungsrichtlinien festgelegt: "Restricted" ist die Standardrichtlinie. Restricted - Standardausführungsrichtlinie. - Erlaubt das Ausführen von einzelnen Befehle, nicht jedoch von Skripts. - Verhindert die Ausführung aller Skriptdateien, einschließlich Formatierungs- und Konfigurationsdateien (".ps1xml"), Modulskriptdateien (".psm1") und Windows PowerShell-Profilen (".ps1"). AllSigned - Erlaubt das Ausführen von Skripts. - Alle Skripts und Konfigurationsdateien müssen von einem vertrauenswürdigen Herausgeber signiert sein, dies gilt auch für auf dem lokalen Computer erstellte Skripts. - Zeigt vor dem Ausführen von Skripts von Herausgebern, die Sie noch nicht als vertrauenswürdig oder nicht vertrauenswürdig klassifiziert haben, eine Eingabeaufforder ung an. - Ist mit dem Risiko der Ausführung nicht signierter Skripts aus anderen Quellen als dem Internet sowie signierter, aber mit böswilliger Absicht erstellter Skripts, verbunden. RemoteSigned - Erlaubt das Ausführen von Skripts. - Erfordert eine digitale Signatur von einem vertrauenswürdigen Herausgeber für Skripts und Konfigurationsdateien, die aus dem Internet heruntergeladen wurden (einschließlich E-Mail- und Instant Messaging-Programmen). - Erfordert keine digitalen Signaturen für Skripts, die Sie ausgeführt und auf dem lokalen Computer erstellt (nicht aus dem Internet heruntergeladen) haben. - Ist mit dem Risiko der Ausführung signierter, aber mit bösartiger Absicht erstellter Skripts verbunden. Unrestricted - Erlaubt das Ausführen nicht signierter Skripts. (Ist mit dem Risiko der Ausführung mit bösartiger Absicht erstellter Skripts verbunden.) - Warnt den Benutzer vor dem Ausführen von aus dem Internet heruntergeladenen Skripts und Konfigurationsdat eien. Bypass - Es findet keine Blockierung statt, und es werden keine Warnungen oder Eingabeaufforderungen ausgegeben. - Diese Ausführungsrichtlinie wurde für Konfigurationen entworfen, in denen ein Windows PowerShell-Skript in eine größere Anwendung integriert ist, oder für Konfigurationen, in denen Windows PowerShell die Grundlage für ein Programm mit einem eigenen Sicherheitsmodell bildet. Undefined - Für den aktuellen Bereich ist keine Ausführungsrichtlinie festgelegt. - Wenn die Ausführungsrichtlinie in allen Bereichen nicht definiert ("Undefined") ist, gilt die Standardausführung srichtlinie "Restricted". Hinweis: In Systemen, die UNC (Universal Naming Convention)-Pfade und Internetpfade nicht unterscheiden, können durch einen UNC-Pfad angegebene Skripts möglicherweise nicht für die Ausführung mit der Ausführungsrichtlinie "RemoteSigned" zugelassen werden. BEREICH VON AUSFÜHRUNGSRICHTLINIEN ---------------------------------- Sie können eine Ausführungsrichtlinie festlegen, die nur in einem bestimmten Bereich gilt. Die gültigen Werte für "Scope" sind "Process", "CurrentUser" und "LocalMachine". Beim Festlegen einer Ausführungsrichtlinie ist LocalMachine der Standard. Die Scope-Werte sind in ihrer Rangfolge aufgeführt. - Process Die Ausführungsrichtlinie wirkt sich auf die aktuelle Sitzung (den aktuellen Windows PowerShell-Prozess) aus. Die Ausführungsrichtlinie wird in der Umgebungsvariablen "$PSExecutionPolicyPreference" gespeichert. Dieser Wert wird gelöscht, wenn die Sitzung, in der die Richtlinie festgelegt wurde, geschlossen wird. - CurrentUser Die Ausführungsrichtlinie wirkt sich auf nur den aktuellen Benutzer aus. Sie wird im Registrierungsuntersc hlüssel HKEY_CURRENT_USER gespeichert. - LocalMachine Die Ausführungsrichtlinie wirkt sich auf alle Benutzer des aktuellen Computers aus. Sie wird im Registrierungsun terschlüssel HKEY_LOCAL_MACHINE gespeichert. Die Richtlinie mit Vorrang gilt auch dann für die aktuelle Sitzung, wenn auf einer niedrigeren Rangebene eine restriktivere Richtlinie festgelegt wurde. Weitere Informationen finden Sie unter "Set-ExecutionPolicy". ABRUFEN VON AUSFÜHRUNGSRICHTLINIEN ---------------------------------- Zum Abrufen der Windows PowerShell-Ausführungsrichtlinie, die für die aktuelle Sitzung gilt, verwenden Sie das Cmdlet "Get-ExecutionPolicy". Mit dem folgenden Befehl wird die aktuelle Ausführungsrichtlinie abgerufen: get-executionpolicy Wenn Sie alle Ausführungsrichtlinien für die aktuelle Sitzung abrufen und diese in der entsprechenden Rangfolge anzeigen möchten, geben Sie Folgendes ein: get-executionpolicy -list Das Ergebnis ähnelt der folgenden Beispielausgabe: Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine AllSigned In diesem Fall gilt die Ausführungsrichtlinie RemoteSigned, da die Ausführungsrichtlinie für den aktuellen Benutzer Vorrang vor dem Ausführungsrichtliniensatz für den lokalen Computer hat. Um den Ausführungsrichtliniensatz für einen bestimmten Bereich abzurufen, verwenden Sie den Scope-Parameter von Get-ExecutionPolicy. Mit dem folgenden Befehl rufen Sie beispielsweise die Ausführungsrichtlinie für den aktuellen Benutzerbereich ab. get-executionpolicy -scope CurrentUser ÄNDERN VON AUSFÜHRUNGSRICHTLINIEN ---------------------------------- Zum Ändern der Windows PowerShell-Ausführungsrichtlinie auf dem Computer verwenden Sie das Cmdlet "Set-ExecutionPolicy". Die Änderung wird sofort wirksam. Sie müssen Windows PowerShell nicht neu starten. Wenn Sie die Ausführungsrichtlinie für den lokalen Computer (Standard) oder den aktuellen Benutzer festlegen, wird diese in der Registrierung gespeichert und bleibt wirksam, bis Sie diese erneut ändern. Wenn Sie die Ausführungsrichtlinie für den aktuellen Prozess festlegen, wird diese nicht in der Registrierung gespeichert. Sie bleibt wirksam, bis der aktuelle Prozess und alle untergeordneten Prozesse geschlossen werden. Hinweis: Wenn Sie unter Windows Vista und höheren Windows-Versionen Befehle ausführen möchten, mit denen die Ausführungsrichtlinie für den lokalen Computer (Standard) geändert wird, starten Sie Windows PowerShell mit der Option "Als Administrator ausführen". Geben Sie zum Ändern der Ausführungsrichtlinie Folgendes ein: Set-ExecutionPolicy <Richtlinienname> Beispiel: Set-ExecutionPolicy RemoteSigned Wenn Sie die Ausführungsrichtlinie in einem bestimmten Bereich festlegen möchten, geben Sie Folgendes ein: Set-ExecutionPolicy <Richtlinienname> -scope <Bereich> Beispiel: Set-ExecutionPolicy RemoteSigned -scope CurrentUser Ein Befehl zum Ändern der Ausführungsrichtlinie kann erfolgreich ausgeführt werden, ohne dass die geltende Ausführungsrichtlinie geändert wurde. Beispielsweise kann ein Befehl, mit dem die Ausführungsrichtlinie für den lokalen Computer festgelegt wird, erfolgreich ausgeführt, jedoch von der Ausführungsrichtlinie für den aktuellen Benutzer überschrieben werden. ENTFERNEN VON AUSFÜHRUNGSRICHTLINIEN ------------------------------------ Zum Entfernen der Ausführungsrichtlinie für einen bestimmten Bereich legen Sie den Wert der Ausführungsrichtlinie auf "Undefined" fest. Zum Beispiel entfernen Sie die Ausführungsrichtlinie für alle Benutzer des lokalen Computers wie folgt: set-executionpolicy Undefined Sie können auch Folgendes eingeben: set-executionpolicy Undefined -scope LocalMachine Wenn in keinem Bereich eine Ausführungsrichtlinie festgelegt ist, gilt die Standardausführungsrichtlinie "Restricted". FESTLEGEN EINER AUSFÜHRUNGSRICHTLINIE IN "POWERSHELL.EXE" --------------------------------------------------------- Mit dem ExecutionPolicy-Parameter von "PowerShell.exe" können Sie eine Ausführungsrichtlinie für eine neue Windows PowerShell-Sitzung festlegen. Die Richtlinie wirkt sich nur auf die aktuelle Sitzung und untergeordnete Sitzungen aus. Zum Festlegen der Ausführungsrichtlinie für eine neue Sitzung starten Sie Windows PowerShell über die Befehlszeile (z. B. "Cmd.exe" oder Windows PowerShell), und legen Sie dann die Ausführungsrichtlinie über den ExecutionPolicy-Parameter von "PowerShell.exe" fest. Beispiel: powershell.exe -executionpolicy -allsigned Die von Ihnen festgelegte Ausführungsrichtlinie wird nicht in der Registrierung gespeichert. Stattdessen wird sie in der Umgebungsvariablen "$PSExecutionPolicy Preference" gespeichert. Die Variable wird gelöscht, wenn Sie die Sitzung schließen, in der die Richtlinie festgelegt wurde. Während der Sitzung hat die für die Sitzung festgelegte Ausführungsrichtlinie Vorrang vor einer Ausführungsrichtlinie, die in der Registrierung für den lokalen Computer oder aktuellen Benutzer festgelegt wurde. Sie hat jedoch keinen Vorrang vor einem Ausführungsrichtliniensatz, der über eine Gruppenrichtlinien einstellung festgelegt wurde (Erläuterung weiter unten). VERWALTEN VON AUSFÜHRUNGSRICHTLINIEN MIT GRUPPENRICHTLINIEN ----------------------------------------------------------- Mit der Gruppenrichtlinie "Skriptausführung aktivieren" können Sie die Ausführungsrichtlinie für Computer im Unternehmen verwalten. Die Gruppenrichtlinieneinstellung überschreibt die in Windows PowerShell festgelegten Ausführungsrichtlinien in allen Bereichen. Folgende Einstellungen der Richtlinie "Skriptausführung aktivieren" sind verfügbar: -- Wenn Sie "Skriptausführung aktivieren" deaktivieren, werden Skripts nicht ausgeführt. Dies entspricht der Ausführungsrichtl inie "Restricted". -- Wenn Sie "Skriptausführung aktivieren" aktivieren, können Sie eine Ausführungsrichtlinie auswählen. Die Gruppenrichtlinienein stellungen entsprechen den folgenden Ausführungsrichtlinieneins tellungen. Gruppenrichtlinie Ausführungsrichtlinie ------------ ---------------- Alle Skripts sind zugelassen. Unrestricted Lokale Skripts und RemoteSigned signierte Remoteskripts sind zugelassen. Nur signierte Skripts AllSigned sind zugelassen. -- Wenn "Skriptausführung aktivieren" nicht konfiguriert wurde, hat dies keine Auswirkungen. Es gilt die in Windows PowerShell festgelegte Ausführungsrichtlinie. Mit der Datei "PowerShellExecutionPolicy.adm" wird die Richtlinie "Skriptausführung aktivieren" den Knoten "Computerkonfiguration" und "Benutzerkonfiguration" im Gruppenrichtlinien-Editor unter den folgenden Pfaden hinzugefügt. Unter Windows XP und Windows Server 2003: Administrative Vorlagen\Windows-Komponenten\Windows PowerShell Unter Windows Vista und höheren Versionen von Windows: Administrative Vorlagen\Klassische administrative Vorlage\Windows- Komponenten\Windows PowerShell Im Knoten "Computerkonfiguration" festgelegte Richtlinien haben Vorrang vor Richtlinien, die im Knoten "Benutzerkonfiguration" festgelegt wurden. Die Datei "PowerShellExecutionPolicy.adm" ist im Microsoft Download Center verfügbar. Weitere Informationen finden Sie im Thema zu administrativen Vorlagen für Windows PowerShell unter https://go.microsoft.com/fwlink/?LinkId=131786 (möglicherweise auf Englisch). VORRANG VON AUSFÜHRUNGSRICHTLINIEN ----------------------------------- Wenn Sie die effektive Ausführungsrichtlinie für eine Sitzung bestimmen, wertet Windows PowerShell die Ausführungsrichtlinien in der folgenden Rangfolge aus: - Gruppenrichtlinie: Computerkonfiguration - Gruppenrichtlinie: Benutzerkonfiguration - Ausführungsrichtlinie: Prozessausführungsrichtlinie (oder PowerShell.exe - ExecutionPolicy): CurrentUser - Ausführungsrichtlinie: LocalMachine VERWALTEN SIGNIERTER UND NICHT SIGNIERTER SKRIPTS -------------------------------------------------- Wenn Sie in Windows PowerShell die Ausführungsrichtlinie "RemoteSigned" festgelegt haben, werden keine aus dem Internet heruntergeladenen Skripts ohne Signatur ausgeführt (einschließlich E-Mail- und Instant Messaging-Programmen). Sie können das Skript signieren oder ein nicht signiertes Skript auszuführen, ohne die Ausführungsrichtlinie zu ändern. Weitere Informationen finden Sie unter "about_Signing". SIEHE AUCH Get-ExecutionPolicy Set-ExecutionPolicy about_Signing "Verwaltungsvorlagen für Windows PowerShell" (https://go.microsoft.com/fwlink/?LinkId=131786, möglicherweise auf Englisch)