Policy 101¶
PowerShell Skripte sind einfache Textdateien. Die Skriptausführung funktioniert nur in geeigneter Umgebung! Die richtigen und gewünschten Sicherheitlevel sind zu beachten (Restricted, RemoteSigned, Unrestricted, …)
Cmdlets:
Get-ExecutionPolicy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # für Standard-User
Set-ExecutionPolicy RemoteSigned # so nur für Admin Ebene LocalMachine
Empfehlung: hier schon auf Remotesigned setzen, da sonst das Autoloading von Modulen und Co nicht funktioniert! Das Ändern (Set-ExecutionPolicy ohne Angabe eines Scope/Bereichs) muss mit administrativer PowerShell geschehen!
Tipp: Übersicht über alle ExecutionPolicy Level mit
PS E:\_temp> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Mit der Möglichkeit -Scope CurrentUser
(s.o.) können sich User eine andere ExecutionPolicy konfigurieren.
Die Reihenfolge der Abarbeitung geht von unten nach oben: die höchste Wertigkeit hat also die ExecutionPolicy für die Maschine MachinePolicy und kann – wie der Name auch nahelegt – nur per Gruppenrichtlinie (Policy per GPO) festgelegt werden.
GPO Bearbeitungspfade für Maschine oder Benutzer:
Richtlinien\Administrative Vorlagen\Windows Komponenten\Windows PowerShell Policy: Skriptausführung aktivieren
Anm.: GPO - Group Policy Object