Wissen/C02_Ausführungsrichtlinien.ps1
# ? TITEL PowerShell-Dateien-Ausführungsrichtlinien # ? DESCRIPTION Schutz vor das automatische Ausführen von .ps1- und psm1-Dateien # ? TAGS Execution_Policy # ? VERSION 2019.10.18.0800 # ! Legt die Ausführungsrichtlinien für .ps1- uns .psm1-Dateien fest # ! Die Standardeinstellung für das Ausführen liegt bei Restricted # ! d.h. diese Dateien werden NIE ausgeführt. # ! Einstellung bleiben dauerhaft erhalten. # ! Einstellung kann auch per GPO vorgenommen werden. # ! Einstellung kann nur mit Admin-Rechten vorgenommen werden # TODO Weiterführende und Nachschlage-Informationen Get-Help -Name about_Execution_Policy -ShowWindow # ? Was ist eingestellt Get-ExecutionPolicy -List # ? Was gilt für den aktuellen Scripthost $env:PSExecutionPolicyPreference # ? Mögliche Einstellungen sind Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser # ! 1. Ausführbare Dateien müssen signiert; 2. Signierer-Zertifikat speichern in Root und 3. speichern in TrustedPublisher Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process # ! Wie AllSigned für Remote/Download-Datei; Lokale Dateien = Unrestricted Set-ExecutionPolicy -ExecutionPolicy Default Set-ExecutionPolicy -ExecutionPolicy Unrestricted Set-ExecutionPolicy -ExecutionPolicy Bypass Set-ExecutionPolicy -ExecutionPolicy Undefined # ? Empfohlen Einstellung für Client und Server # ? d.h. alle ausführbare Dateien müssen signiert (x.509-Zertifikat) sein Set-ExecutionPolicy -ExecutionPolicy AllSigned Get-Help -Name about_Signing -ShowWindow # ? Empfohlen Einstellung für Test-/Entwicklungszwecke (Remote-Scripte müssen signiert sein) Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # ! Bzgl. RemoteSign werden Dateien an einem Download-Marker identifiziert! # ! s.a. Unblock-File # ? Möglichkeiten *.ps1-Datei auszuführen sind ... # ... per Rechtsklick / Mit PowerShell ausführen # ... per MyPSScript.exe => z.B. über das Tool PowerGui oder VisualStudio und C# (s. C08_ScriptAutostart.ps1) # ... per Autostart-Datei profile.ps1 # ... per Aufgabenplanung, RUN-Schlüssel, etc. # ... per GPO # ... per Aufruf in der Console c:\temp\MachWas.ps1 . "c:\temp\Mach Was.ps1" # oder & (. = Aktueller Context; & = Neuer Context) # ... per Datei-Verknüpfung auf: powershell.exe -WindowStyle Hidden -File "c:\temp\MachWas.ps1" powershell.exe -NoExit -File "c:\temp\MachWas.ps1" # ! ACHTUNG: Copy & Paste von .PS1-Code geht IMMER! |