Ausführungsrichtlinien

Mithilfe von Ausführungsrichtlinien können Administratoren die Ausführung von PowerShell Scripten einschränken. Einzelne Befehle sind hiervon jedoch nicht betroffen und können unabhängig von der Konfiguration der Ausführungsrichtlinie ausgeführt werden. Die Konfiguration der Ausführungsrichtlinie kann nützlich sein, um Nutzer vor der Ausführung von nicht vertrauenswürdigem Code zu schützen. Insgesamt gibt es fünf verschiedene Konfigurationen:

  • Restricted: Dies ist die Standardeinstellung für frisch installierte Windowsclients. Diese Einstellung bewirkt, dass KEIN PowerShell Script ausgeführt werden kann.
  • AllSigned: Nur Scripte mit einem signierten Zertifikat können ausgeführt werden. Diese Einstellung gilt auch für lokale Scripte. Wenn ein bisher unbekanntes Zertifikat für die Signierung benutzt wird, muss man die Ausführung gesondert bestätigen.
  • RemoteSigned: Scripte aus dem Internet oder auf UNC-Pfaden müssen signiert sein, sofern diese nicht mit dem Befehl “Unblock-File” entsperrt werden. Lokale Scripte können unabhängig von ihrer Signierung ausgeführt werden. Dies ist die Standardeinstellung für Windows Server.
  • Unrestricted: Deaktivierung aller Beschränkungen. Alle Scripte können ausgeführt werden. Wenn ein Script aus dem Internet ausgeführt wird, muss die Ausführung bestätigt werden.
  • Bypass: Ähnlich wie “Unrestricted”, jedoch werden auch Scripte aus dem Internet ohne Rückfrage ausgeführt.
  • Undefined: Die aktuell zugewiesene Richtlinie wird entfernt.

Die Ausführungsrichtlinien können unabhängig voneinander für verschiedene Bereiche konfiguriert werden. ACHTUNG: Dies kann zur Folge haben, dass die EFFEKTIVE Ausführungsrichtlinie unverändert bleibt, da die Bereiche ihre Konfiguration vererben können!:

  • MachinePolicy: Die Ausführungsrichtlinie wird per GPO gesetzt und gilt für alle Benutzer.
  • UserPolicy: Die Ausführungsrichtlinie wird per GPO gesetzt und gilt für den aktuellen Benutzer.
  • Process: Die Ausführungsrichtlinie gilt nur für die aktuelle PowerShell Sitzung. Diese Einstellung wird nicht in der Registrierung gespeichert, sondern in der Variable $env:PSExecutionPolicyPreference gespeichert. Sobald die aktuelle PowerShell Sitzung beendet wird, werden Variable und Wert gelöscht.
  • CurrentUser: Die Ausführungsrichtlinie gilt wie die UserPolicy nur für den aktuellen Nutzer. Die Einstellung wird in der Registrierung unterhalb von HKEY_CURRENT_USER gespeichert.
  • LocalMachine: Die Ausführungsrichtlinie gilt wie die MachinePolicy für alle Benutzer des Systems. Die Einstellung wird in der Registrierung unterhalb von HKEY_LOCAL_MACHINE gespeichert.

Beispiele

Folgendermaßen kann die Ausführungsrichtlinie ausgelesen und konfiguriert werden:

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

In diesem Fall ist die effektive Ausführungsrichtlinie RemoteSigned, da die Ausführungsrichtlinie für den aktuellen Benutzer Vorrang vor der für den lokalen Computer festgelegten Ausführungsrichtlinie hat.

Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*