Wird in der PowerShell die ExecutionPolicy zurückgesetzt?
Kann mir zufällig jemand sagen, ob unter Windows in der PowerShell die ExecutionPolicy automatisch auf Restricted zurückgesetzt wird, sobald das Terminal geschlossen wurde?
3 Antworten
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.
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.
anhand dieser ausführung
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 ?
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.
Ja, kann ich dir sagen:
"Nein, wird sie nicht."
ich verstehe sein frage nicht wirklich , den weder das eine noch das andere ist irgendwie logisch wenn man sich die vorgehenseweise anguck
was meint er mit zurückgesetzt ? wer haqt sie dann gesezt oder meint er weil er das mit Administrator rechten ausgeführt hat ? dann bleibt es ja restricted - was deiner aussage wiederpsricht.