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

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.
| Richtlinie | Was ist erlaubt? | Sicherheitsniveau |
|---|---|---|
| Restricted | Nur einzelne Befehle, keine Skripte | Sehr hoch |
| AllSigned | Nur signierte Skripte (auch eigene) | Hoch |
| RemoteSigned | Lokale Skripte frei, heruntergeladene nur signiert | Mittel (empfohlen) |
| Unrestricted | Alle Skripte, bei Downloads mit Warnung | Niedrig |
| Bypass | Alles, ohne Warnung und ohne Sperre | Sehr niedrig |
| Default | Setzt den Standardwert (Client: Restricted) | Je nach System |
| Undefined | Kein Wert im gewählten Bereich | Hä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.
| Bereich | Gilt für | Gespeichert in |
|---|---|---|
| MachinePolicy | Alle Benutzer, per Gruppenrichtlinie | Gruppenrichtlinie |
| UserPolicy | Aktuellen Benutzer, per Gruppenrichtlinie | Gruppenrichtlinie |
| Process | Nur das aktuelle PowerShell-Fenster | Arbeitsspeicher |
| CurrentUser | Nur Ihr Benutzerkonto | Registrierung (HKCU) |
| LocalMachine | Alle Benutzer des PCs | Registrierung (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:
- MachinePolicy (höchste Priorität)
- UserPolicy
- Process
- CurrentUser
- 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.
- Drücken Sie Windows-Taste + X.
- Wählen Sie unter Windows 11 „Terminal“, unter Windows 10 „Windows PowerShell“.
- 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
- Drücken Sie Windows-Taste + X.
- Klicken Sie auf „Terminal (Administrator)“.
- Bestätigen Sie die Benutzerkontensteuerung mit „Ja“.
- Standardmäßig öffnet sich ein PowerShell-Tab. Falls nicht, klicken Sie oben auf den Pfeil und wählen „Windows PowerShell“.
Unter Windows 10
- Drücken Sie Windows-Taste + X.
- Wählen Sie „Windows PowerShell (Administrator)“.
- Bestätigen Sie die Abfrage mit „Ja“.
Über die Suche (beide Versionen)
- Klicken Sie auf Start oder die Lupe.
- Tippen Sie PowerShell ein.
- 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.
- Öffnen Sie PowerShell oder das Terminal.
- Geben Sie folgenden Befehl ein:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Bestätigen Sie die Sicherheitsabfrage mit J (Ja) oder A (Ja, alle).
- 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.
- Öffnen Sie PowerShell als Administrator.
- Geben Sie ein:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
- 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:
- Drücken Sie Windows-Taste + I, um die Einstellungen zu öffnen.
- 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“.
- Klappen Sie den Abschnitt „PowerShell“ auf.
- Aktivieren Sie den Schalter zum Ändern der Ausführungsrichtlinie, damit lokale Skripte ohne Signatur laufen dürfen.
- 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
- Öffnen Sie die Einstellungen mit Windows-Taste + I.
- Klicken Sie auf „Update und Sicherheit“.
- Wählen Sie links „Für Entwickler“.
- Scrollen Sie zum Abschnitt „PowerShell“.
- Setzen Sie den Haken bei der Option zum Ändern der Ausführungsrichtlinie für lokale Skripte.
- 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
- Drücken Sie Windows-Taste + R.
- Geben Sie gpedit.msc ein und drücken Sie Enter.
- Navigieren Sie zu:
Computerkonfiguration > Administrative Vorlagen > Windows-Komponenten > Windows PowerShell - Doppelklicken Sie auf „Skriptausführung aktivieren“.
- Wählen Sie „Aktiviert“.
- 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.
- Klicken Sie auf „OK“.
- Ö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)
- Drücken Sie Windows-Taste + R, geben Sie regedit ein und bestätigen Sie mit Enter.
- Klicken Sie bei der Benutzerkontensteuerung auf „Ja“.
- Navigieren Sie zu:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell - Doppelklicken Sie rechts auf den Wert ExecutionPolicy.
- Fehlt der Wert, klicken Sie mit der rechten Maustaste auf eine freie Fläche und wählen „Neu > Zeichenfolge“. Nennen Sie ihn ExecutionPolicy.
- Tragen Sie als Wert zum Beispiel RemoteSigned ein.
- 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:
- Öffnen Sie das Terminal.
- Geben Sie ein:
winget install --id Microsoft.PowerShell --source winget
- Warten Sie, bis die Installation abgeschlossen ist.
- 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
- Öffnen Sie PowerShell.
- Geben Sie ein:
Unblock-File -Path "C:\Downloads\Skript.ps1"
- 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
- Klicken Sie im Explorer mit der rechten Maustaste auf die .ps1-Datei.
- Wählen Sie „Eigenschaften“.
- Setzen Sie im Reiter „Allgemein“ unten den Haken bei „Zulassen“.
- 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 CurrentUserauf 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:
- Öffnen Sie PowerShell als Administrator.
- Setzen Sie den Benutzerbereich zurück:
Set-ExecutionPolicy Undefined -Scope CurrentUser
- Setzen Sie anschließend den Computerbereich zurück:
Set-ExecutionPolicy Default -Scope LocalMachine
- 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
- Öffnen Sie PowerShell als Administrator.
- Erstellen Sie ein Zertifikat:
$cert = New-SelfSignedCertificate -Subject "CN=MeinSkriptZertifikat" -Type CodeSigningCert -CertStoreLocation Cert:\CurrentUser\My
- Signieren Sie anschließend Ihr Skript:
Set-AuthenticodeSignature -FilePath "C:\Skripte\MeinSkript.ps1" -Certificate $cert
- 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 Processdie sicherste Wahl. - Vorsicht bei Einzeilern: Befehle wie
iwr … | iexladen 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.
