Tutorial: PowerShell-Fehler „Running Scripts is Disabled“ beheben
Hier ist ein ausführliches Tutorial, wie du die Fehlermeldung „Die Ausführung von Skripten ist auf diesem System deaktiviert“ in der PowerShell beheben kannst.
Wenn du versuchst, ein PowerShell-Skript (.ps1) auszuführen und die Fehlermeldung erhältst, dass die Ausführung von Skripten auf diesem System deaktiviert ist, liegt das an der sogenannten Execution Policy (Ausführungsrichtlinie). Dies ist eine Sicherheitsfunktion von Windows, die das ungewollte Ausführen von bösartigen Skripten verhindern soll.
In diesem Tutorial lernst du, wie du diese Richtlinie sicher anpassen kannst.
Schritt 1: Den aktuellen Status prüfen
Bevor du etwas änderst, solltest du prüfen, welche Richtlinie aktuell eingestellt ist.
- Öffne die PowerShell (suche im Startmenü nach "PowerShell").
- Gib folgenden Befehl ein und drücke Enter:
Get-ExecutionPolicyWenn dort Restricted steht, ist das Ausführen jeglicher Skripte untersagt.
Schritt 2: Die Ausführungsrichtlinie ändern (Lösung)
Um Skripte zuzulassen, musst du die Richtlinie ändern. Die empfehlenswerteste Einstellung für Entwickler ist RemoteSigned. Das bedeutet: Lokal erstellte Skripte laufen sofort, aus dem Internet heruntergeladene Skripte müssen von einem vertrauenswürdigen Herausgeber signiert sein.
Methode A: Dauerhafte Änderung (Administratorrechte erforderlich)
Dies ist die gängigste Methode, wenn du öfter mit Skripten arbeitest.
- Klicke mit der rechten Maustaste auf das PowerShell-Icon und wähle „Als Administrator ausführen“.
- Gib folgenden Befehl ein:
Set-ExecutionPolicy RemoteSigned - Bestätige die Sicherheitsabfrage mit
Y(für Ja) oderA(für Ja, alle).
Methode B: Änderung nur für den aktuellen Benutzer (Keine Admin-Rechte nötig)
Falls du keine Administratorrechte auf dem PC hast, kannst du die Richtlinie nur für dein Profil ändern:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Schritt 3: Ein Skript einmalig ausführen (Alternative)
Wenn du die globalen Einstellungen deines Systems nicht ändern möchtest, kannst du die Sperre für eine einzelne Sitzung oder einen einzelnen Aufruf umgehen.
Option 1: Für die aktuelle Sitzung Gib diesen Befehl in der PowerShell ein. Die Änderung gilt nur, bis du das Fenster schließt:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
Option 2: Direkt beim Starten des Skripts Du kannst das Skript über die Eingabeaufforderung (CMD) oder eine Verknüpfung mit einem speziellen Flag starten:
powershell.exe -ExecutionPolicy Bypass -File "C:\Pfad\zu\deinem\Skript.ps1"
Übersicht der wichtigsten Richtlinien (Execution Policies)
Hier ist eine kurze Erklärung, was die verschiedenen Modi bedeuten:
| Richtlinie | Beschreibung |
|---|---|
| Restricted | Standard. Keine Skripte erlaubt, nur einzelne Befehle. |
| AllSigned | Nur Skripte, die von einem vertrauenswürdigen Herausgeber signiert wurden, dürfen ausgeführt werden. |
| RemoteSigned | Lokal erstellte Skripte erlaubt. Heruntergeladene Skripte müssen signiert sein. (Empfohlen) |
| Unrestricted | Alle Skripte werden ausgeführt. Bei unsignierten Skripten aus dem Netz erfolgt eine Warnung. |
| Bypass | Nichts wird blockiert, es gibt keine Warnungen. (Meist für temporäre Zwecke). |
Sicherheitshinweis
Ändere die Richtlinie niemals auf Unrestricted oder Bypass, wenn du nicht genau weißt, woher das Skript stammt. Die Einstellung RemoteSigned bietet einen guten Kompromiss zwischen Komfort und Sicherheit.
Fertig! Dein System sollte nun in der Lage sein, PowerShell-Skripte ohne Fehlermeldung auszuführen.