Windows 11/10: PowerShell-Ausführungsrichtlinie ändern – so geht’s

So ändern Sie die PowerShell-Ausführungsrichtlinie unter Windows 11 und Windows 10 sicher per Befehl oder Gruppenrichtlinie in wenigen Schritten.

Windows 11/10: PowerShell-Ausführungsrichtlinie ändern – so geht’s

Um die PowerShell-Ausführungsrichtlinie unter Windows 11/10 zu ändern, öffnen Sie PowerShell und geben den Befehl Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ein. Alternativ aktivieren Sie in den Windows-Einstellungen unter „Für Entwickler“ den PowerShell-Schalter. Danach dürfen eigene, lokale Skripte starten. Heruntergeladene Skripte brauchen dagegen weiterhin eine gültige Signatur.

Zudem finden Sie hier alle Richtlinien, Geltungsbereiche, Alternativen und Lösungen für typische Fehlermeldungen.

Was ist die PowerShell-Ausführungsrichtlinie?

Die Ausführungsrichtlinie (englisch: Execution Policy) legt fest, unter welchen Bedingungen PowerShell Skripte ausführt. Außerdem regelt sie, ob Konfigurationsdateien und Profile geladen werden dürfen.

Laut Microsoft handelt es sich um eine Schutzfunktion, die steuert, wann PowerShell Konfigurationsdateien lädt und Skripte startet. Dadurch soll das Ausführen schädlicher Skripte erschwert werden.

Deshalb erscheint beim ersten Start eines PS1-Skripts oft eine rote Fehlermeldung. Das ist kein Defekt. Vielmehr greift hier die Standardeinstellung von Windows.

Warum blockiert Windows Skripte standardmäßig?

Auf Windows-Clients wie Windows 11 und Windows 10 gilt standardmäßig die Richtlinie Restricted. Dadurch sind einzelne Befehle in der Konsole zwar erlaubt, Skriptdateien jedoch gesperrt.

Auf Windows Server ist hingegen RemoteSigned voreingestellt. Server werden nämlich häufiger über Skripte verwaltet.

Der Grund für die strenge Voreinstellung ist einfach: Viele Nutzer brauchen nie ein Skript. Deshalb ist es sicherer, Skripte erst dann zu erlauben, wenn sie wirklich gebraucht werden.

Wichtig: Die Richtlinie ist kein vollwertiges Sicherheitssystem

Viele Nutzer überschätzen die Ausführungsrichtlinie. Sie soll vor allem verhindern, dass PowerShell-Code versehentlich ausgeführt wird. Gegen Angreifer, die gezielt Code starten wollen, schützt sie jedoch nicht.

Microsoft weist zum Beispiel darauf hin, dass sich die Richtlinie leicht umgehen lässt, etwa indem man den Inhalt eines Skripts direkt in die Konsole eintippt.

Deshalb gilt:

  • Die Richtlinie ist ein Sicherheitsgurt, aber kein Virenschutz.
  • Zusätzlich sollten Sie immer Microsoft Defender oder einen anderen Virenscanner aktiv lassen.
  • Außerdem sollten Sie nur Skripte aus vertrauenswürdigen Quellen starten.

Alle PowerShell-Ausführungsrichtlinien im Überblick

Insgesamt gibt es sieben Werte. Jeder Wert erlaubt oder verbietet Skripte auf eine andere Weise.

RichtlinieWas ist erlaubt?Sicherheitsniveau
RestrictedNur einzelne Befehle, keine SkripteSehr hoch
AllSignedNur signierte Skripte (auch eigene)Hoch
RemoteSignedLokale Skripte frei, heruntergeladene nur signiertMittel (empfohlen)
UnrestrictedAlle Skripte, bei Downloads mit WarnungNiedrig
BypassAlles, ohne Warnung und ohne SperreSehr niedrig
DefaultSetzt den Standardwert (Client: Restricted)Je nach System
UndefinedKein Wert im gewählten BereichHängt von anderen Bereichen ab

Restricted

Restricted ist die strengste Stufe. Zwar dürfen Sie Befehle wie Get-Process direkt eingeben, jedoch startet keine einzige .ps1-Datei. Ebenso werden Profile und Moduldateien (.psm1) blockiert.

AllSigned

Bei AllSigned laufen nur Skripte mit einer digitalen Signatur eines vertrauenswürdigen Herausgebers. Das gilt sogar für Skripte, die Sie selbst geschrieben haben. Deshalb ist diese Einstellung vor allem für Unternehmen mit eigener Zertifizierungsstelle sinnvoll.

RemoteSigned

RemoteSigned ist für die meisten Privatnutzer und Admins die beste Wahl. Eigene, lokal erstellte Skripte laufen ohne Signatur. Heruntergeladene Skripte müssen dagegen signiert sein oder zuerst entsperrt werden.

Windows erkennt heruntergeladene Dateien übrigens an einer versteckten Markierung, dem sogenannten „Mark of the Web“ (Zone.Identifier).

Unrestricted

Mit Unrestricted laufen alle Skripte. Allerdings erscheint bei Dateien aus dem Internet eine Sicherheitsabfrage. Deshalb sollten Sie diese Stufe nur vorübergehend nutzen.

Bypass

Bypass blockiert nichts und warnt auch nicht. Diese Einstellung ist für Automatisierungen gedacht, zum Beispiel wenn ein Programm PowerShell im Hintergrund startet. Für den Alltag ist sie hingegen ungeeignet.

Default und Undefined

Default setzt die Richtlinie auf den Standardwert zurück. Auf Windows 11 und Windows 10 ist das Restricted.

Undefined entfernt dagegen den Wert aus einem bestimmten Bereich. Sind alle Bereiche auf Undefined gesetzt, gilt automatisch wieder Restricted.

Geltungsbereiche (Scopes): Für wen gilt die Richtlinie?

Neben dem Wert selbst spielt der Geltungsbereich eine große Rolle. Sie können nämlich für verschiedene Ebenen unterschiedliche Richtlinien festlegen.

Es gibt die Bereiche MachinePolicy, UserPolicy, Process, CurrentUser und LocalMachine. Wenn Sie keinen Bereich angeben, wird automatisch LocalMachine verwendet.

BereichGilt fürGespeichert in
MachinePolicyAlle Benutzer, per GruppenrichtlinieGruppenrichtlinie
UserPolicyAktuellen Benutzer, per GruppenrichtlinieGruppenrichtlinie
ProcessNur das aktuelle PowerShell-FensterArbeitsspeicher
CurrentUserNur Ihr BenutzerkontoRegistrierung (HKCU)
LocalMachineAlle Benutzer des PCsRegistrierung (HKLM)

Die Rangfolge verstehen

Die Bereiche folgen einer festen Reihenfolge. Der Bereich mit dem höheren Rang gewinnt, und zwar auch dann, wenn auf einer niedrigeren Ebene eine strengere Richtlinie steht.

Die Rangfolge lautet also:

  1. MachinePolicy (höchste Priorität)
  2. UserPolicy
  3. Process
  4. CurrentUser
  5. LocalMachine (niedrigste Priorität)

Deshalb kann eine Gruppenrichtlinie Ihre eigenen Einstellungen jederzeit überschreiben. Das ist besonders auf Firmen-PCs wichtig.

Welcher Bereich ist der richtige?

  • CurrentUser: Ideal für Privatnutzer. Zudem brauchen Sie dafür keine Administratorrechte.
  • LocalMachine: Sinnvoll, wenn alle Konten auf dem PC Skripte nutzen sollen. Hierfür sind jedoch Adminrechte nötig.
  • Process: Perfekt für einen einmaligen Test, denn die Änderung verschwindet beim Schließen des Fensters.

Aktuelle Ausführungsrichtlinie anzeigen

Bevor Sie etwas ändern, sollten Sie den aktuellen Stand prüfen. So sehen Sie außerdem sofort, ob eine Gruppenrichtlinie aktiv ist.

  1. Drücken Sie Windows-Taste + X.
  2. Wählen Sie unter Windows 11 „Terminal“, unter Windows 10 „Windows PowerShell“.
  3. Geben Sie folgenden Befehl ein und drücken Sie Enter:
Get-ExecutionPolicy

Dieser Befehl zeigt die wirksame Richtlinie an. Für eine genauere Übersicht nutzen Sie dagegen diesen Befehl:

Get-ExecutionPolicy -List

Die Ausgabe sieht zum Beispiel so aus:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine      Restricted

In diesem Beispiel gilt also Restricted für alle Benutzer. Zudem ist keine Gruppenrichtlinie gesetzt.

PowerShell als Administrator öffnen

Für Änderungen im Bereich LocalMachine brauchen Sie Adminrechte. Deshalb hier die schnellsten Wege.

Unter Windows 11

  1. Drücken Sie Windows-Taste + X.
  2. Klicken Sie auf „Terminal (Administrator)“.
  3. Bestätigen Sie die Benutzerkontensteuerung mit „Ja“.
  4. Standardmäßig öffnet sich ein PowerShell-Tab. Falls nicht, klicken Sie oben auf den Pfeil und wählen „Windows PowerShell“.

Unter Windows 10

  1. Drücken Sie Windows-Taste + X.
  2. Wählen Sie „Windows PowerShell (Administrator)“.
  3. Bestätigen Sie die Abfrage mit „Ja“.

Über die Suche (beide Versionen)

  1. Klicken Sie auf Start oder die Lupe.
  2. Tippen Sie PowerShell ein.
  3. Klicken Sie rechts auf „Als Administrator ausführen“.

Methode 1: Ausführungsrichtlinie mit Set-ExecutionPolicy ändern

Der Befehl Set-ExecutionPolicy ist der klassische und flexibelste Weg. Außerdem funktioniert er auf Windows 11 und Windows 10 identisch.

Nur für den aktuellen Benutzer (empfohlen)

Diese Variante ist für die meisten Nutzer ideal. Zudem benötigen Sie keine Adminrechte.

  1. Öffnen Sie PowerShell oder das Terminal.
  2. Geben Sie folgenden Befehl ein:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  1. Bestätigen Sie die Sicherheitsabfrage mit J (Ja) oder A (Ja, alle).
  2. Prüfen Sie anschließend das Ergebnis mit Get-ExecutionPolicy -List.

Danach laufen Ihre eigenen Skripte sofort. Ein Neustart ist nicht nötig.

Für alle Benutzer des Computers

Wenn mehrere Konten Skripte nutzen sollen, setzen Sie die Richtlinie systemweit.

  1. Öffnen Sie PowerShell als Administrator.
  2. Geben Sie ein:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
  1. Bestätigen Sie mit J.

Ohne Adminrechte erscheint hingegen eine Fehlermeldung wegen verweigerten Zugriffs. In diesem Fall starten Sie PowerShell einfach erneut mit erhöhten Rechten.

Nur für die aktuelle Sitzung

Möchten Sie ein Skript nur einmal testen, eignet sich der Bereich Process. Die Änderung ist nämlich nach dem Schließen des Fensters wieder weg.

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

Der Wert wird dabei nicht in der Registrierung gespeichert, sondern in der Umgebungsvariable $env:PSExecutionPolicyPreference. Beim Schließen der Sitzung wird er deshalb gelöscht.

Dadurch ist diese Methode besonders sicher. Ihr System bleibt nämlich dauerhaft geschützt.

Sicherheitsabfrage überspringen

In Skripten oder bei vielen Rechnern stört die Rückfrage. Deshalb können Sie den Parameter -Force anhängen:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

Die Richtlinie wird dann ohne Nachfrage gesetzt. Allerdings sollten Sie genau wissen, was Sie tun.

Weitere Beispiele

  • Alle Skripte erlauben (nur vorübergehend empfohlen):
    Set-ExecutionPolicy Unrestricted -Scope CurrentUser
  • Nur signierte Skripte zulassen:
    Set-ExecutionPolicy AllSigned -Scope LocalMachine
  • Skripte wieder komplett sperren:
    Set-ExecutionPolicy Restricted -Scope CurrentUser
  • Wert aus einem Bereich entfernen:
    Set-ExecutionPolicy Undefined -Scope CurrentUser

Methode 2: Ausführungsrichtlinie über die Windows-Einstellungen ändern

Wer keine Befehle tippen möchte, nutzt die Einstellungen-App. Allerdings kennt dieser Schalter nur zwei Zustände: RemoteSigned und Restricted. Zudem gilt er nur für den aktuellen Benutzer.

Unter Windows 11

Die Position der Einstellung hat sich zwischen den Windows-11-Versionen mehrfach verschoben. Manche Anleitungen nennen den Weg über „System“ und dann „Für Entwickler“, andere wiederum den Weg über „Datenschutz und Sicherheit“ und dann „Für Entwickler“. In neueren Versionen wie 24H2 und 25H2 finden Sie die Entwickleroptionen außerdem unter System > Erweitert.

So gehen Sie vor:

  1. Drücken Sie Windows-Taste + I, um die Einstellungen zu öffnen.
  2. Klicken Sie links auf „System“ und dann auf „Erweitert“. Bei älteren Versionen wählen Sie stattdessen „Für Entwickler“ unter „System“ oder „Datenschutz und Sicherheit“.
  3. Klappen Sie den Abschnitt „PowerShell“ auf.
  4. Aktivieren Sie den Schalter zum Ändern der Ausführungsrichtlinie, damit lokale Skripte ohne Signatur laufen dürfen.
  5. Schließen Sie die Einstellungen.

Ist der Schalter eingeschaltet, gilt RemoteSigned für Ihr Konto. Schalten Sie ihn wieder aus, kehrt die Richtlinie zu Restricted zurück.

Tipp: Finden Sie den Menüpunkt nicht, tippen Sie einfach „Für Entwickler“ in das Suchfeld der Einstellungen.

Unter Windows 10

  1. Öffnen Sie die Einstellungen mit Windows-Taste + I.
  2. Klicken Sie auf „Update und Sicherheit“.
  3. Wählen Sie links „Für Entwickler“.
  4. Scrollen Sie zum Abschnitt „PowerShell“.
  5. Setzen Sie den Haken bei der Option zum Ändern der Ausführungsrichtlinie für lokale Skripte.
  6. Klicken Sie auf „Übernehmen“.

Anschließend gilt ebenfalls RemoteSigned für Ihr Benutzerkonto.

Methode 3: Ausführungsrichtlinie per Gruppenrichtlinie festlegen

In Unternehmen setzen Admins die Richtlinie meist zentral. Dafür eignet sich der Editor für lokale Gruppenrichtlinien. Allerdings ist dieser nur in Windows 11/10 Pro, Enterprise und Education enthalten. In der Home-Edition fehlt er dagegen.

Schritt-für-Schritt-Anleitung

  1. Drücken Sie Windows-Taste + R.
  2. Geben Sie gpedit.msc ein und drücken Sie Enter.
  3. Navigieren Sie zu:
    Computerkonfiguration > Administrative Vorlagen > Windows-Komponenten > Windows PowerShell
  4. Doppelklicken Sie auf „Skriptausführung aktivieren“.
  5. Wählen Sie „Aktiviert“.
  6. Legen Sie unten die gewünschte Option fest:
    • „Nur signierte Skripts zulassen“ entspricht AllSigned.
    • „Lokale Skripts und remote signierte Skripts zulassen“ entspricht RemoteSigned.
    • „Alle Skripts zulassen“ entspricht Unrestricted.
  7. Klicken Sie auf „OK“.
  8. Öffnen Sie eine Eingabeaufforderung und geben Sie gpupdate /force ein.

Für einzelne Benutzer finden Sie dieselbe Einstellung zudem unter Benutzerkonfiguration > Administrative Vorlagen > Windows-Komponenten > Windows PowerShell.

Gruppenrichtlinie wieder entfernen

Setzen Sie die Einstellung „Skriptausführung aktivieren“ einfach auf „Nicht konfiguriert“. Danach gelten wieder die Werte aus CurrentUser und LocalMachine.

Methode 4: Ausführungsrichtlinie über die Registrierung ändern

Die Registrierung ist eine Alternative, wenn PowerShell selbst nicht startet. Allerdings sollten Sie vorher eine Sicherung anlegen. Fehler in der Registry können nämlich Probleme verursachen.

Für alle Benutzer (LocalMachine)

  1. Drücken Sie Windows-Taste + R, geben Sie regedit ein und bestätigen Sie mit Enter.
  2. Klicken Sie bei der Benutzerkontensteuerung auf „Ja“.
  3. Navigieren Sie zu:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
  4. Doppelklicken Sie rechts auf den Wert ExecutionPolicy.
  5. Fehlt der Wert, klicken Sie mit der rechten Maustaste auf eine freie Fläche und wählen „Neu > Zeichenfolge“. Nennen Sie ihn ExecutionPolicy.
  6. Tragen Sie als Wert zum Beispiel RemoteSigned ein.
  7. Klicken Sie auf „OK“.

Nur für den aktuellen Benutzer (CurrentUser)

Der Weg ist ähnlich. Allerdings lautet der Pfad hier:

HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

Legen Sie dort ebenso die Zeichenfolge ExecutionPolicy an und setzen Sie den gewünschten Wert.

Hinweis: Diese Pfade gelten für Windows PowerShell 5.1. PowerShell 7 speichert seine Einstellungen dagegen teilweise anders, dazu gleich mehr.

Methode 5: Einzelnes Skript ohne dauerhafte Änderung starten

Oft wollen Sie nur ein bestimmtes Skript ausführen. Dann müssen Sie die Richtlinie gar nicht dauerhaft ändern. Stattdessen übergeben Sie beim Start einfach den Parameter -ExecutionPolicy Bypass.

Dafür eignet sich der Aufruf von PowerShell.exe zusammen mit -File und -ExecutionPolicy Bypass, wodurch die Sperre nur für diesen Aufruf umgangen wird.

Für Windows PowerShell 5.1

powershell.exe -ExecutionPolicy Bypass -File "C:\Skripte\MeinSkript.ps1"

Für PowerShell 7

pwsh.exe -ExecutionPolicy Bypass -File "C:\Skripte\MeinSkript.ps1"

Diese Methode ist außerdem praktisch für die Aufgabenplanung. Dort tragen Sie als Programm powershell.exe ein und als Argumente den Rest des Befehls.

Windows PowerShell 5.1 und PowerShell 7: Der Unterschied

Auf Windows 11/10 sind oft zwei PowerShell-Versionen vorhanden. Deshalb ist Vorsicht geboten.

  • Windows PowerShell 5.1 ist fest in Windows integriert. Die Programmdatei heißt powershell.exe.
  • PowerShell 7 muss separat installiert werden, zum Beispiel über winget. Die Programmdatei heißt pwsh.exe.

Beide Versionen verwalten ihre Ausführungsrichtlinie getrennt. In aktuellen PowerShell-Versionen werden die Richtlinien für Computer und Benutzer in Konfigurationsdateien von PowerShell abgelegt. Windows PowerShell 5.1 nutzt hingegen die Registrierung.

Das bedeutet in der Praxis: Ändern Sie die Richtlinie in PowerShell 5.1, gilt sie nicht automatisch in PowerShell 7. Deshalb sollten Sie den Befehl in beiden Konsolen ausführen, wenn Sie beide Versionen nutzen.

PowerShell 7 installieren

Falls Sie PowerShell 7 nutzen möchten, geht das am schnellsten mit winget:

  1. Öffnen Sie das Terminal.
  2. Geben Sie ein:
winget install --id Microsoft.PowerShell --source winget
  1. Warten Sie, bis die Installation abgeschlossen ist.
  2. Starten Sie anschließend PowerShell 7 über das Startmenü oder im Terminal über den Pfeil neben dem Tab.

Hinweis zu macOS und Linux

PowerShell 7 läuft außerdem auf macOS und Linux. Dort gilt jedoch immer Unrestricted. Die Ausführungsrichtlinie lässt sich auf diesen Systemen zudem nicht ändern. Das Thema betrifft deshalb vor allem Windows.

Heruntergeladene Skripte entsperren

Bei RemoteSigned blockiert Windows unsignierte Skripte aus dem Internet. Das betrifft zum Beispiel Dateien aus E-Mails, Browser-Downloads oder ZIP-Archiven. Deshalb müssen Sie solche Dateien zuerst entsperren.

Mit dem Befehl Unblock-File

  1. Öffnen Sie PowerShell.
  2. Geben Sie ein:
Unblock-File -Path "C:\Downloads\Skript.ps1"
  1. Starten Sie das Skript anschließend ganz normal.

Mehrere Dateien in einem Ordner entsperren Sie zudem auf einen Schlag:

Get-ChildItem "C:\Downloads\Skripte" -Recurse | Unblock-File

Über die Dateieigenschaften

  1. Klicken Sie im Explorer mit der rechten Maustaste auf die .ps1-Datei.
  2. Wählen Sie „Eigenschaften“.
  3. Setzen Sie im Reiter „Allgemein“ unten den Haken bei „Zulassen“.
  4. Klicken Sie auf „OK“.

Tipp: Entsperren Sie ZIP-Archive am besten schon vor dem Entpacken. Dadurch sind alle enthaltenen Skripte automatisch freigegeben.

Typische Fehlermeldungen und ihre Lösung

„Die Ausführung von Skripts ist auf diesem System deaktiviert“

Das ist der häufigste Fehler. Die vollständige Meldung lautet etwa: „Die Datei … kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist.“

Lösung:

  • Setzen Sie die Richtlinie mit Set-ExecutionPolicy RemoteSigned -Scope CurrentUser auf RemoteSigned.
  • Alternativ aktivieren Sie den PowerShell-Schalter in den Windows-Einstellungen.

„Die Datei ist nicht digital signiert“

Diese Meldung erscheint trotz RemoteSigned. Das Skript stammt nämlich aus dem Internet.

Lösung:

  • Prüfen Sie zuerst, ob die Quelle vertrauenswürdig ist.
  • Entsperren Sie die Datei anschließend mit Unblock-File.

„Die Einstellung wird durch eine Richtlinie überschrieben“

Hier meldet PowerShell zwar eine erfolgreiche Änderung. Allerdings bleibt die Richtlinie wirkungslos, weil ein höherer Bereich greift.

Lösung:

  • Prüfen Sie mit Get-ExecutionPolicy -List, ob MachinePolicy oder UserPolicy gesetzt ist.
  • Auf privaten PCs deaktivieren Sie die Einstellung im gpedit.msc.
  • Auf Firmen-PCs wenden Sie sich hingegen an Ihre IT-Abteilung.

„Der Zugriff auf den Registrierungsschlüssel wurde verweigert“

Dieser Fehler tritt auf, wenn Sie LocalMachine ohne Adminrechte ändern.

Lösung:

  • Starten Sie PowerShell als Administrator.
  • Oder nutzen Sie stattdessen den Bereich CurrentUser.

Richtlinie geändert, aber Skript startet trotzdem nicht

Häufig liegt das an der falschen PowerShell-Version.

Lösung:

  • Prüfen Sie, ob das Skript mit powershell.exe oder pwsh.exe gestartet wird.
  • Setzen Sie die Richtlinie zusätzlich in der jeweils anderen Konsole.
  • Kontrollieren Sie außerdem, ob Ihr Virenscanner das Skript blockiert.

Welche Ausführungsrichtlinie ist die richtige?

Die passende Einstellung hängt von Ihrem Einsatzzweck ab. Deshalb hier klare Empfehlungen.

Für Privatnutzer

  • Empfehlung: RemoteSigned im Bereich CurrentUser
  • Befehl: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Vorteil: Eigene Skripte laufen, zugleich bleiben Downloads geschützt.

Für Entwickler

  • Empfehlung: Ebenfalls RemoteSigned
  • Zusätzlich: Für Tests einzelner Skripte Bypass im Bereich Process nutzen.
  • Vorteil: Flexibilität, ohne das System dauerhaft zu öffnen.

Für Unternehmen

  • Empfehlung: AllSigned oder RemoteSigned per Gruppenrichtlinie
  • Zusätzlich: Eigene Skripte mit einem Code-Signing-Zertifikat signieren.
  • Vorteil: Einheitliche Regeln auf allen Rechnern.

Für Nutzer, die nie Skripte brauchen

  • Empfehlung: Restricted beibehalten
  • Vorteil: Maximaler Schutz vor versehentlich gestarteten Skripten.

Wovon abzuraten ist

Setzen Sie Unrestricted oder Bypass nicht dauerhaft für LocalMachine. Dadurch könnten nämlich auch Schadskripte ungehindert starten. Außerdem gilt die Einstellung dann für alle Konten auf dem PC.

Ausführungsrichtlinie zurücksetzen

Möchten Sie den Originalzustand wiederherstellen, gehen Sie so vor:

  1. Öffnen Sie PowerShell als Administrator.
  2. Setzen Sie den Benutzerbereich zurück:
Set-ExecutionPolicy Undefined -Scope CurrentUser
  1. Setzen Sie anschließend den Computerbereich zurück:
Set-ExecutionPolicy Default -Scope LocalMachine
  1. Prüfen Sie das Ergebnis mit Get-ExecutionPolicy -List.

Danach gilt wieder Restricted als Standard. Zudem sollten Sie in den Windows-Einstellungen den PowerShell-Schalter ausschalten, falls Sie ihn aktiviert hatten.

Eigene Skripte signieren

Wer AllSigned nutzt, muss Skripte signieren. Für Tests genügt ein selbst erstelltes Zertifikat. Für den produktiven Einsatz eignet sich hingegen ein Zertifikat einer offiziellen Zertifizierungsstelle.

Testzertifikat erstellen und Skript signieren

  1. Öffnen Sie PowerShell als Administrator.
  2. Erstellen Sie ein Zertifikat:
$cert = New-SelfSignedCertificate -Subject "CN=MeinSkriptZertifikat" -Type CodeSigningCert -CertStoreLocation Cert:\CurrentUser\My
  1. Signieren Sie anschließend Ihr Skript:
Set-AuthenticodeSignature -FilePath "C:\Skripte\MeinSkript.ps1" -Certificate $cert
  1. Damit Windows dem Zertifikat vertraut, exportieren Sie es und importieren es zusätzlich in die Speicher „Vertrauenswürdige Stammzertifizierungsstellen“ und „Vertrauenswürdige Herausgeber“. Das erledigen Sie zum Beispiel über certmgr.msc.

Beachten Sie jedoch: Jede Änderung am Skript macht die Signatur ungültig. Deshalb müssen Sie das Skript nach jeder Bearbeitung erneut signieren.

Sicherheitstipps für den Umgang mit PowerShell-Skripten

Die Ausführungsrichtlinie allein schützt nicht vollständig. Deshalb sollten Sie zusätzlich diese Regeln beachten:

  • Quelle prüfen: Starten Sie nur Skripte von bekannten Anbietern oder aus eigener Hand.
  • Inhalt lesen: Öffnen Sie unbekannte Skripte vorher im Editor oder in Visual Studio Code.
  • Virenschutz aktiv lassen: Microsoft Defender prüft Skripte zusätzlich über die Schnittstelle AMSI.
  • Minimale Rechte: Starten Sie Skripte nur als Administrator, wenn es wirklich nötig ist.
  • Process-Bereich nutzen: Für einmalige Aktionen ist -Scope Process die sicherste Wahl.
  • Vorsicht bei Einzeilern: Befehle wie iwr … | iex laden Code direkt aus dem Internet. Führen Sie solche Befehle deshalb nur bei absolut vertrauenswürdigen Quellen aus.
  • Regelmäßig prüfen: Kontrollieren Sie ab und zu mit Get-ExecutionPolicy -List, ob Ihre Einstellungen noch stimmen.

Häufige Fragen zur PowerShell-Ausführungsrichtlinie

Brauche ich Administratorrechte, um die Ausführungsrichtlinie zu ändern?

Das hängt vom Bereich ab. Für CurrentUser und Process brauchen Sie keine Adminrechte. Für LocalMachine sind sie hingegen zwingend nötig. Gruppenrichtlinien lassen sich zudem nur mit Adminrechten bearbeiten.

Welche Ausführungsrichtlinie ist unter Windows 11 standardmäßig aktiv?

Auf Windows 11 und Windows 10 ist standardmäßig Restricted aktiv. Dadurch laufen keine Skripte. Auf Windows Server gilt dagegen RemoteSigned als Standard.

Muss ich den PC nach der Änderung neu starten?

Nein, ein Neustart ist nicht nötig. Die Änderung greift sofort. Allerdings sollten Sie bereits geöffnete PowerShell-Fenster schließen und neu öffnen, damit alles sauber übernommen wird.

Ist RemoteSigned sicher?

Für die meisten Nutzer ja. RemoteSigned bietet nämlich einen guten Kompromiss. Eigene Skripte laufen frei, während heruntergeladene Skripte blockiert bleiben. Zusätzlich sollten Sie jedoch immer einen Virenscanner aktiv haben.

Warum wirkt meine Änderung nicht?

Meist überschreibt eine Gruppenrichtlinie Ihre Einstellung. Prüfen Sie das mit Get-ExecutionPolicy -List. Steht bei MachinePolicy oder UserPolicy ein Wert, hat dieser Vorrang. Außerdem kann es sein, dass Sie die falsche PowerShell-Version geändert haben.

Funktioniert die Anleitung auch in der Windows Home-Edition?

Ja, fast vollständig. Set-ExecutionPolicy, die Einstellungen-App und die Registrierung funktionieren auch in der Home-Edition. Lediglich der Gruppenrichtlinien-Editor fehlt dort.

Gilt die Richtlinie auch für PowerShell 7?

Ja, aber separat. PowerShell 7 und Windows PowerShell 5.1 speichern ihre Richtlinien getrennt. Deshalb müssen Sie die Änderung in beiden Versionen vornehmen, wenn Sie beide nutzen.

Kann ich ein Skript ausführen, ohne die Richtlinie zu ändern?

Ja. Starten Sie das Skript einfach mit dem Parameter -ExecutionPolicy Bypass, zum Beispiel: powershell.exe -ExecutionPolicy Bypass -File "C:\Pfad\Skript.ps1". Die Einstellung gilt dann nur für diesen einen Aufruf.

Wie mache ich die Änderung wieder rückgängig?

Geben Sie Set-ExecutionPolicy Undefined -Scope CurrentUser ein. Für den Computerbereich nutzen Sie zusätzlich Set-ExecutionPolicy Default -Scope LocalMachine. Danach gilt wieder Restricted.

Was bedeutet der Bereich „Process“?

Der Bereich Process gilt nur für das aktuell geöffnete PowerShell-Fenster. Sobald Sie es schließen, verschwindet die Einstellung. Deshalb eignet er sich ideal für kurze Tests.

Fazit

Die PowerShell-Ausführungsrichtlinie unter Windows 11/10 ändern Sie am schnellsten mit Set-ExecutionPolicy RemoteSigned -Scope CurrentUser. Alternativ nutzen Sie den Schalter in den Einstellungen, die Gruppenrichtlinie oder die Registrierung.

Für die meisten Nutzer ist RemoteSigned die beste Wahl. Zudem sollten Sie heruntergeladene Skripte stets prüfen und Bypass nur vorübergehend einsetzen.

Mario
Mario

Mario schreibt bei tippsling.de über Technik, Spiele, DIY und digitale Alltagsthemen. Sein Schwerpunkt liegt auf verständlichen Anleitungen zu Windows, Apps und praktischen Problemlösungen – ergänzt um Ratgeber zu Gaming- und DIY-Themen.

Schreibe einen Kommentar

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