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)