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