Set-ExecutionPolicy

Ändert die Benutzereinstellung für die Windows PowerShell-Ausführungsrichtlinie.

Syntax

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Beschreibung

Set-ExecutionPolicy ändert die Benutzereinstellung für die Windows PowerShell-Ausführungsrichtlinie.

Zum Ausführen dieses Befehls unter Windows Vista, Windows Server 2008 und höheren Versionen von Windows müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" starten, selbst wenn Sie Mitglied der Gruppe "Administratoren" auf dem Computer sind.

Die Ausführungsrichtlinie ist Teil der Sicherheitsstrategie von Windows PowerShell. Sie bestimmt, ob Konfigurationsdateien (einschließlich des Windows PowerShell-Profils) geladen und Skripts ausgeführt werden können. Ferner wird festgelegt, welche Skripts digital signiert werden müssen, bevor sie ausgeführt werden können.

Weitere Informationen finden Sie unter "about_Execution_Policies".

Parameter

-ExecutionPolicy <ExecutionPolicy>

Gibt eine neue Ausführungsrichtlinie für die Shell an. Der Parametername ("Name") ist optional.

Gültige Werte:

– Restricted: Es werden keine Konfigurationsdateien geladen und keine Skripts ausgeführt. "Restricted" ist der Standardwert.

– AllSigned: Alle Skripts und Konfigurationsdateien müssen von einem vertrauenswürdigen Herausgeber signiert werden; einschließlich der Skripts, die auf dem lokalen Computer erstellt werden.

– RemoteSigned: Alle aus dem Internet heruntergeladenen Skripts und Konfigurationsdateien müssen von einem vertrauenswürdigen Herausgeber signiert sein.

– Unrestricted: Alle Konfigurationsdateien werden geladen, und alle Skripts werden ausgeführt. Wenn Sie ein nicht signiertes Skript ausführen möchten, das aus dem Internet heruntergeladen wurde, werden Sie vor der Ausführung zur Genehmigung aufgefordert.

– Bypass: Keine Blockierung findet statt, und es werden keine Warnungen oder Eingabeaufforderungen ausgegeben.

– Undefined: Entfernt die gerade zugewiesene Ausführungsrichtlinie aus dem aktuellen Bereich. Mit diesem Parameter wird keine Ausführungsrichtlinie entfernt, die in einem Gruppenrichtlinienbereich festgelegt wurde.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-Force

Unterdrückt alle Eingabeaufforderungen. Set-ExecutionPolicy zeigt standardmäßig immer dann eine Warnung an, wenn Sie die Ausführungsrichtlinie ändern.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Scope <ExecutionPolicyScope>

Gibt den Bereich der Ausführungsrichtlinie an. Der Standardwert ist "LocalMachine".

Gültige Werte:

– Process: Die Ausführungsrichtlinie wirkt sich auf nur den aktuellen Windows PowerShell-Prozess aus.

– CurrentUser: Die Ausführungsrichtlinie wirkt sich auf nur den aktuellen Benutzer aus.

– LocalMachine: Die Ausführungsrichtlinie wirkt sich auf alle Benutzer des Computers aus.

Zum Entfernen einer Ausführungsrichtlinie aus einem bestimmten Bereich legen Sie die Ausführungsrichtlinie für diesen Bereich auf "Undefined" fest.

Erforderlich?

false

Position?

2

Standardwert

LocalMachine

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Confirm

Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-WhatIf

Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

Microsoft.PowerShell.ExecutionPolicy, System.String

Sie können ein Ausführungsrichtlinienobjekt oder eine Zeichenfolge, die den Namen einer Ausführungsrichtlinie enthält, über die Pipeline an Set-ExecutionPolicy übergeben.

Ausgaben

Keiner

Dieses Cmdlet gibt keine Ausgabe zurück.

Hinweise

Wenn Sie Set-ExecutionPolicy verwenden, wird die neue Benutzereinstellung in die Registrierung geschrieben. Sie bleibt unverändert, solange kein Benutzereingriff erfolgt.

Wenn jedoch die Gruppenrichtlinie zum Aktivieren der Ausführung von Skripts für den Computer oder Benutzer aktiviert ist, wird die Benutzereinstellung in die Registrierung geschrieben, ohne übernommen zu werden. Windows PowerShell zeigt dann eine Meldung mit Informationen zum Konflikt an. Gruppenrichtlinien können nicht mit Set-ExecutionPolicy überschrieben werden. Dies gilt auch, wenn die Benutzereinstellungen restriktiver als die Richtlinie sind.

Beispiel 1

C:\PS>set-executionpolicy remotesigned

Beschreibung
-----------
Mit diesem Befehl wird die Benutzereinstellung für die Ausführungsrichtlinie der Shell auf "RemoteSigned" festgelegt.





Beispiel 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

Beschreibung
-----------
In diesem Befehl wird versucht, die Ausführungsrichtlinie für die Shell auf "Restricted" festzulegen. Die Einstellung "Restricted" wird in die Registrierung geschrieben. Da sie jedoch in Konflikt mit einer Gruppenrichtlinie steht, wird sie nicht wirksam, selbst wenn sie restriktiver als die Richtlinie ist.





Beispiel 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Beschreibung
-----------
In diesem Befehl wird die Ausführungsrichtlinie von einem Remotecomputer abgerufen und auf den lokalen Computer angewendet.

Im Befehl wird das Cmdlet "Invoke-Command" verwendet, um den Befehl an den Remotecomputer zu senden. Da Sie ein ExecutionPolicy-Objekt (Microsoft.PowerShell.ExecutionPolicy) über die Pipeline an Set-ExecutionPolicy übergeben können, ist für den Set-ExecutionPolicy-Befehl kein ExcecutionPolicy-Parameter erforderlich.

Der Befehl verfügt über einen Force-Parameter, der die Benutzereingabeaufforderung unterdrückt.





Beispiel 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

        Scope   ExecutionPolicy
        -----   ---------------
MachinePolicy         Undefined
   UserPolicy         Undefined
      Process         Undefined
  CurrentUser         AllSigned
 LocalMachine      RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Beschreibung
-----------
In diesem Beispiel wird veranschaulicht, wie eine Ausführungsrichtlinie für einen bestimmten Bereich festgelegt wird.

Mit dem ersten Befehl wird das Cmdlet "Set-ExecutionPolicy" verwendet, um die Ausführungsrichtlinie "AllSigned" für den aktuellen Benutzer festzulegen. Er verwendet den Force-Parameter zum Unterdrücken der Benutzeraufforderungen.

Der zweite Befehl verwendet den List-Parameter von Get-ExecutionPolicy, um die für jeden Bereich festgelegten Ausführungsrichtlinien abzurufen. Die Ergebnisse verdeutlichen, dass sich die für den aktuellen Benutzer festgelegte Ausführungsrichtlinie von der Ausführungsrichtlinie unterscheidet, die für alle Benutzer des Computers festgelegt wurde. 

Mit dem dritten Befehl wird das Cmdlet "Get-ExecutionPolicy" ohne Parameter verwendet, um die gültige Ausführungsrichtlinie für den aktuellen Benutzer auf dem lokalen Computer abzurufen. Das Ergebnis bestätigt, dass die Ausführungsrichtlinie, die für den aktuellen Benutzer festgelegt wurde, Vorrang gegenüber der für alle Benutzer festgelegten Richtlinie hat.





Beispiel 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Beschreibung
-----------
Dieser Befehl verwendet eine Ausführungsrichtlinie mit dem Wert "Undefined", um die für den aktuellen Benutzerbereich festgelegte Ausführungsrichtlinie wirksam zu entfernen. Dadurch wird die Ausführungsrichtlinie wirksam, die im Gruppenrichtlinienbereich oder im Bereich "LocalMachine" (Alle Benutzer) festgelegt wurde.

Wenn Sie die Ausführungsrichtlinie in allen Bereichen auf "Undefined" festgelegt haben und die Gruppenrichtlinie nicht festgelegt wurde, ist für alle Benutzer des Computers die Standardausführungsrichtlinie "Restricted" gültig.





Siehe auch

Konzepte

Get-ExecutionPolicy
Set-AuthenticodeSignature
Get-AuthenticodeSignature
about_Execution_Policies
about_Signing