Wissen

PowerShell – ExecutionPolicy – GPO + Registry Fix

Wenn man über die Windows PowerShell Skripte ausführen möchte, so kann es passieren – dass die Ausführungsrichtlinie für Windows PowerShell diese Scripte nicht ausführt, da diese einfach nicht erlaubt sind. Im Grunde gibt es vier unterschiedliche Sicherheitsstufen, welche die Ausführbarkeit von Power Shell Skripten regeln. Diese sind wie folgt eingeteilt:

  • Restricted –> Eingeschränkt
    Keine Skripte können ausgeführt werden, Powershell Nutzung nur im interaktiven Modus möglich
  • AllSigned –> Vollständig signiert
    Nur von einem vertrauenswürdigen Autor können Skripte ausgeführt werden.
  • RemoteSigned –> Remote signiert
    diese Skripte müssen zuvor von einem vertrauenswürdigen Autor signiert werden
  • Unrestricted –> uneingeschränkt
    Möchte man eigene Skripte laufen lassen, muss dieser Parameter hinterlegt sein. Alle PowerShell Scripte können ausgeführt werden.

Doch wie ändert man diese Einstellung oder sieht, welche Einstellung hinterlegt ist?

Hierzu startet man am einfachsten die PowerShell als Administrator und nutzt folgende Befehle:

Alle Einstellungen anzeigen lassen:

Get-ExecutionPolicy -List

In einen Modus wechseln:

Set-ExecutionPolicy RemoteSigned
oder 
Set-ExecutionPolicy Unretricted

Doch was macht man, wenn dieser Vorgang auf einen Fehler läuft?
Häufig kann man folgende Zeilen lesen:

Die Ausführungsrichtlinien wurden von Windows PowerShell erfolgreich aktualisiert, die Einstellung wird jedoch von einer in einem spezielleren Bereich definierten Richtlinie überschrieben. Aufgrund der Überschreibung wird die aktuelle geltende Ausführungsrichtlinie "RemoteSigned" für die Shell beibehalten. Geben Sie "Get-ExecutionPolicy -List" ein, um die Ausführungsrichtlinieneinstellungen anzuzeigen. Weitere Informationen erhalten Sie mit "Get-Help Set-ExecutionPolicy".

Oder auch der umgekehrte Weg:

Set-ExecutionPolicy : Die Ausführungsrichtlinien wurden von Windows PowerShell erfolgreich aktualisiert, die Einstellung wird jedoch von einer in einem spezifischeren Bereich definierten Richtlinie überschrieben. Aufgrund der Überschreibung wird die aktuelle geltende Ausführungsrichtlinie „Unrestricted“ für die Shell beibehalten. Geben Sie „Get-ExecutionPolicy -List“ ein, um die Ausführungsrichtlinieneinstellungen anzuzeigen.
Weitere Informationen erhalten Sie mit „Get-Help Set-ExecutionPolicy“.

D.h. ein Umschreiben der Richtlinien ist nicht möglich / erlaubt.
Doch was kann man nun tun?

Hier habe ich zwei Lösungansätze für Euch:

Variante 1: Gruppenrichtlinien ändern
Hierzu starten wir den Gruppenrichtlinien-Editor mittels

gpedit.msc

Dann navigieren wir an folgende Stelle:
Benutzerkonfiguration (Computerkonfiguration) –> Administrative Vorlagen –> Windows Komponenten –> Windows PowerShell: Skriptausführung aktivieren

Dieses GPO editieren wir nun und stellen es auf „Aktiviert“.
In den Optionen unter Ausführungsrichtlinie setzen wir nun den Punkt „Lokale Skripte und remote signierte Skriptes zulassen“ oder mehr noch mehr Freiraum benötigt „Alle Skripte zulassen“.

Fertig!
Diese Einstellungen speichern und mittels „gpupdate“ direkt anwenden.

Solltet ihr dann immer noch keinen Wechsel vollziehen können habe ich noch eine weitere Stelle, welche ihr überprüfen könnt, bzw. anpassen müsst.

Hierzu öffnet ihr den Registrierungseditor:

regedit

…und navigiert an folgende Stelle:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell

Dort entfernt ihr nun den Schlüssel:

ExecutionPolicy

Dort ist nun gerade die Einstellung hinterlegt, welche ihr löschen, bzw. ändern wollt.

(hier schon entfernt – zu spät an den Screenshot gedacht!)

Ist dies erledigt, könnt ihr die Skripte auf jeden Fall starten. Das Problem, dass die PowerShell Skripten nicht starten ist damit gelöst.


Tags

Ähnliche Artikel

Kommentar verfassen

Close

Adblock Entdeckt

Bitte unterstütze uns in dem Du AdBlock deaktivierst.

Send this to a friend