Wird in der PowerShell die ExecutionPolicy zurückgesetzt?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das permanente ändern der EP mit Set-ExecutionPolicy ist mit Vorsicht zu genießen! Eine permanente Erteilung von Privilegen geht mit einem massiven Einschnitt in die Windowssicherheit einher.

Normalerweise setzt man beim Start einer Powershell-Consolsitzung die EP per Parameter -ExecutionPolicy Bypass temporär.

powershell -ExecutionPolicy Bypass  ...whatever...

Der Aufruf einer solchen Konsole mit temporären Privilegen kann in einer Batch oder einer Desktopverknüpfung erfolgen.

Es hat gute Gründe, weshalb dieses Sicherheitsfeature eingeführt wurde. Powershell ist ein sehr mächtiges Werkzeug.

Nutzer, welche Fragen wie die Deine überhaupt stellen müssen, sehen erstmal nur die Bequemlichkeit. Ihnen entgeht jedoch das ein potentieller Eindringling in einem Script mit einer kleinen Zeile beliebig Code (sogar aus dem Netz) nachladen und diesen String per Invoke-Expression als Code ausführen kann.

In dieser Hinsicht ist Powershell jedem compiliertem Programm überlegen.

Es gibt natürlich Techniken, um gänzlich die EP zu umgehen.

Kleine Scripte (bis ca 8000 Zeichen) kann man einfach in der Kommandozeile an Powershell übergeben. Dabei werden die EP komplett ausgehebelt.

zB. Maus Beschleunigung per Batch beim Starten deaktivieren? (Computer, Technik, PC) - gutefrage https://www.gutefrage.net/frage/maus-beschleunigung-per-batch-beim-starten-deaktivieren#answer-416920310

Zudem gibt es auch noch Batch-Poweshell-Hybrid Script.

https://www.gutefrage.net/frage/kann-ich-mit-einer-batch-datei-meine-maus-bewegen#answer-343025709

Damit "tarnt" man ein Powershellscript als Bach-Datei. Bei dieser Technik liest sich die Batch selbst als Text in Powershell ein und führt diesen per Invoke-Expression aus, da dieser Vorgang per Powershell Kommandozeile erfolgt, wird wiederum die EP "ausgehebelt".

Beide letztere Techniken haben den Vorteil Powershellscripte ohne Änderungen am System per Doppelklick direkt auszuführen.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
medmonk 
Fragesteller
 18.12.2021, 09:36
Nutzer, welche Fragen wie die Deine überhaupt stellen müssen, sehen erstmal nur die Bequemlichkeit.

Ich kann dich beruhigen, dem ist nicht so. Ganz im Gegenteil - mir sind die möglichen Gefahren durchaus bekannt. Genau deshalb frage ich ja auch nach, ob die Änderungen permanent oder bloß temporär gesetzt werden.

Ich passe u.a. über diverse PS-Scripte selbst deployte Abbilder zur Installation an, daher war es mir wichtig zu wissen, ob ich die ExecutionPolicy nach dem Ausführen meiner Scripte wieder auf Restricted zurücksetzen muss.

Mir ging es also nicht darum, dass es permanent gesetzt werden soll, sondern genau umgekehrt. Bypass samt Parameter kenne ich, nur wusste ich nicht, wie sich die PowerShell beim Wechsel in den Unrestricted-Mode verhält.

Danke für deine ausführliche Antwort.

1

anhand dieser ausführung

https://www.windowspro.de/script/ausfuehrungsrichtlinien-executionpolicy-fuer-powershell-scripts-ueber-gpo-setzen

wäre also meine frage, was du damit meinst ?

sobald das Terminal geschlossen wurde?

hast du sie mit administrations rechten geöffnet weil es halt local machine ausführen soll ?

medmonk 
Fragesteller
 18.12.2021, 03:22
hast du sie mit administrations rechten geöffnet weil es halt local machine ausführen soll ?

Ja, die PowerShell wurde als Administrator gestartet. Ich habe die "EP" auf Unrestricted umgestellt. Ich war mir bloß nicht sicher, ob die Einstellungen dauerhaft beibehalten werden oder nur für die Zeit gelten, in der auch dieses Terminal geöffnet bleibt. Fall ja, müsste ich dies wieder umstellen.

Daher meine Frage, ob die Einstellungen dauerhaft gesetzt bleiben.

0

Ja, kann ich dir sagen:

"Nein, wird sie nicht."