Hier erfahren Sie, wie Sie Windows PowerShell optimal nutzen, indem Sie die Skriptausführungsrichtlinie aktivieren.
Mit iPowerShell können Sie standardmäßig Befehle (Cmdlets) über die Konsole ausführen. Um ein Skript auszuführen, können Sie eine Notepad-Datei mit dem Skriptcode erstellen, diese mit der Dateierweiterung .ps1 speichern und über die PowerShell-Konsole ausführen. Sie können das Skript auch direkt zur Ausführung in die Konsole einfügen.
Wenn Sie jedoch zum ersten Mal ein Skript über PowerShell ausführen, wird der Fehler „Running script is disabled“ angezeigt. Standardmäßig ist die Skriptausführung auf PowerShell als Sicherheitsmaßnahme deaktiviert, um zu verhindern, dass schädliche Skripts auf Ihrem System ausgeführt werden. Hier zeigen wir Ihnen die beiden Möglichkeiten zum Aktivieren der Skriptausführungsrichtlinie in Windows PowerShell.
So überprüfen Sie Ihre bestehende Ausführungsrichtlinie
Sie können ein PowerShell-Cmdlet verwenden, um Ihre aktuelle Ausführungsrichtlinie abzurufen. Die Kenntnis Ihrer aktuellen Ausführungsrichtlinie ist notwendig, um zu wissen, ob Sie eine Richtlinienänderung benötigen oder nicht.
So erhalten Sie Ihre aktuelle Ausführungsrichtlinie für den aktuellen Benutzer:
- Öffnen Sie Windows PowerShell als Administrator.
- Geben Sie den folgenden Befehl in die PowerShell-Konsole ein und drücken Sie die Eingabetaste:
erhalten-Ausführungsrichtlinie
- Da Sie beim Ausführen des Skripts auf einen Fehler gestoßen sind, wird die Rückgabe wahrscheinlich angezeigt Eingeschränkt als Ihre aktuelle Ausführungsrichtlinie.
- Wenn Sie die Ausführungsrichtlinie für alle unterstützten Bereiche anzeigen müssen:
erhalten-Ausführungsrichtlinie -Liste
Sie müssen die Ausführungsrichtlinie in RemoteSigned ändern, um lokale Skripts ohne den Fehler auszuführen. Sie können die Ausführungsrichtlinie über die App „Einstellungen“ und PowerShell ändern.
So aktivieren Sie die PowerShell-Ausführungsrichtlinie mithilfe der Einstellungs-App
Sie können die PowerShell-Ausführungsrichtlinie mithilfe der App „Einstellungen“ ändern und auf „RemoteSigned“ festlegen. Alles, was Sie tun müssen, ist, die PowerShell-Einstellungen im Entwicklerbereich zu optimieren, um die Ausführungsrichtlinie zu ändern, um die Ausführung von PowerShell-Skripts zu ermöglichen.
So ändern Sie die Ausführungsrichtlinie mithilfe von Einstellungen:
- Drücken Sie Sieg + ich SE öffnenTDinge.
- Öffne das Privatsphäre & Sicherheit Registerkarte im linken Bereich.
- Klicken Sie anschließend auf Für Entwickler.
- Klicken Sie, um die zu erweitern Power Shell Abschnitt.
- Schalten Sie den Schalter um Ändern Sie die Ausführungsrichtlinie, damit lokale PowerShell-Skripts ohne Signierung ausgeführt werden können – Signierung für Remote-Skripts erforderlich.
- Wenn Sie fertig sind, öffnen Sie PowerShell und geben Sie get ein Ausführungsrichtlinie, und drücke Eingeben. Die Ausführungsrichtlinie für den aktuellen Benutzer ist jetzt auf festgelegt RemoteSigniert.
- Wenn Sie die Ausführungsrichtlinie deaktivieren müssen, schalten Sie den PowerShell-Schalter um und stellen Sie ihn auf ein Aus.
So lassen Sie zu, dass Skripts in PowerShell mit PowerShell ausgeführt werden
Sie können eine verwenden PowerShell-Cmdlet um die Ausführungsrichtlinie auf RemoteSigned festzulegen. Die Befehlszeilenschnittstelle erleichtert das schnelle Ändern der Ausführungsrichtlinie, ohne die App „Einstellungen“ zu verwenden.
Außerdem kann die Einstellungs-App nur die RemoteSigned-Ausführungsrichtlinie aktivieren oder deaktivieren. Während Sie mit PowerShell auch andere Richtlinien und Bereiche festlegen können.
So ändern Sie die Ausführungsrichtlinie mit PowerShell:
- Öffnen Sie PowerShell als Administrator.
- Geben Sie im PowerShell-Fenster den folgenden Befehl ein und drücken Sie Eingeben:
Satz-ExecutionPolicy Remotesigniert
- Wenn Sie dazu aufgefordert werden, drücken Sie A um die Aktion zu bestätigen. Dadurch wird die eingestellt RemoteSigniert Ausführungsrichtlinie für alle Benutzer. Wenn Sie die Ausführungsrichtlinie für die festlegen möchten Aktueller Benutzer verwenden Sie nur den Scope-Parameter, gefolgt vom Benutzernamen.
- Zum Beispiel zum Einstellen der RemoteSigniert Ausführungsrichtlinie für Aktueller Benutzer, verwenden Sie den folgenden Befehl:
Satz-ExecutionPolicy RemoteSgined -Umfang Aktueller Benutzer
- Ersetzen Aktueller Benutzer im obigen Befehl mit anderen Benutzern (Scope) gemäß Ihrer Anforderung.
So entfernen Sie die Skriptausführungsrichtlinie mit PowerShell
Wenn Sie die Skriptausführung deaktivieren möchten, setzen Sie die Ausführungsrichtlinie auf Nicht definiert mit the Set_ExecutionPolicy cmdlet. Dies ist ein Standardzustand und verhindert, dass PowerShell Skripts ausführt.
So deaktivieren Sie die Skriptausführung mit PowerShell:
- Öffnen Sie PowerShell mit erhöhten Berechtigungen.
- Geben Sie als Nächstes den folgenden Befehl ein und drücken Sie die Eingabetaste, um die Skriptausführung für alle Benutzer zu deaktivieren:
Satz-Ausführungsrichtlinie nicht definiert
- Der obige Befehl legt die standardmäßige Ausführungsrichtlinie (undefiniert) für alle Benutzer fest. Wenn Sie die Skriptausführung für einen bestimmten Bereich deaktivieren möchten, verwenden Sie den folgenden Befehl:
Satz-Ausführungsrichtlinie nicht definiert -Scope CurrentUser
- Der obige Befehl deaktiviert die Skriptausführung für Aktueller Benutzer.
Ausführungsrichtlinien und -bereiche verstehen
Einfach ausgedrückt, die Ausführungsrichtlinie von PowerShell ist eine Richtlinie, die steuert, wie PowerShell Konfigurationsdateien und Skripts ausführt. Der beabsichtigte Zweck besteht darin, zu verhindern, dass Benutzer versehentlich bösartige Skripts ausführen. Die sieben PowerShell-Ausführungsrichtlinien sind Standard, Restricted, RemoteSigned, AllSigned, Unrestricted, Bypass und Undefined.
Die folgende Tabelle erläutert kurz alle PowerShell-Ausführungsrichtlinien:
Ausführungsrichtlinie |
Durchsetzung |
Standard |
Legt die standardmäßige Ausführungsrichtlinie als Restricted auf Windows Client und RemoteSigned auf Windows Server fest. |
Allesigniert |
Ermöglicht die Ausführung von vom Herausgeber signierten Skripts. |
Bypass |
Uneingeschränkte Ausführung von Skripten für größere Anwendungen. |
RemoteSigniert |
Ermöglicht die Ausführung lokal geschriebener Skripts. Erfordert digitale Signaturen für aus dem Internet heruntergeladene Skripte. |
Eingeschränkt |
Erlaubt keine Skriptausführung, sondern nur einzelne PowerShell-Befehle. |
Nicht definiert |
Legt die Ausführungsrichtlinie für Windows-Clients auf Restricted und für Windows Server auf RemoteSigned fest. |
Uneingeschränkt |
Lassen Sie unsignierte Skriptausführung mit einer Warnung für die aus dem Internet heruntergeladenen Skripts zu. |
Geltungsbereich der Ausführungsrichtlinie
Sie können die Ausführungsrichtlinie für einen bestimmten Bereich in PowerShell festlegen. Die fünf Ausführungsrichtlinienbereiche sind Maschinenrichtlinie, Benutzerrichtlinie, Prozess, aktueller Benutzer, Und Lokale Maschine.
In der folgenden Tabelle werden alle Bereiche der Ausführungsrichtlinien kurz erläutert:
Geltungsbereich der Ausführungsrichtlinie |
Durchsetzung |
Benutzerrichtlinie |
Konfiguriert durch eine Gruppenrichtlinie für den aktuellen Benutzer. |
Maschinenrichtlinie |
Konfiguriert durch eine Gruppenrichtlinie für alle Benutzer. |
AktuellerBenutzer |
Für den aktuellen Benutzer konfiguriert und im Registrierungsunterschlüssel HKEY_CURRENT_MACHINE gespeichert. |
Lokale Maschine |
Für alle Benutzer konfiguriert und im Registrierungsunterschlüssel HKEY_CURRENT_MACHINE gespeichert. |
Verfahren |
Wirkt sich auf die aktuelle PowerShell-Sitzung aus und wird automatisch gelöscht, wenn die Sitzung geschlossen wird. |
PowerShell-Skriptausführungsrichtlinie unter Windows hinzufügen oder entfernen
Die Skriptausführung auf PowerShell ist für Windows-Clients standardmäßig deaktiviert und für Windows-Server auf RemoteSigned festgelegt. Hauptbenutzer können jedoch Ausführungsrichtlinien ändern, um lokale, signierte und unsignierte PowerShell-Skripts auszuführen.
Alternativ können Sie die PowerShell-Ausführungsrichtlinie umgehen, indem Sie das Skript in eine PowerShell-Konsole einfügen oder Ihr Skript mit ECHO in die PowerShell-Standardeingabe eingeben. Dies ist nützlich, wenn Sie Skripts ausführen möchten, ohne die Ausführungsrichtlinie zu ändern.