Private/Wissen/C_Scripting/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 (Richtlinienname: Skriptausführung aktivieren). # ! 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 s. auch Unblock-File Set-ExecutionPolicy -ExecutionPolicy Default Set-ExecutionPolicy -ExecutionPolicy Unrestricted Set-ExecutionPolicy -ExecutionPolicy Bypass Set-ExecutionPolicy -ExecutionPolicy Undefined # ! Set-ExecutionPolicy steuert folgende Registry-Properties: Get-ItemPropertyValue -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name ExecutionPolicy Get-ItemPropertyValue -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics -Name ExecutionPolicy Get-ItemPropertyValue -Path Registry::HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name ExecutionPolicy # ? Empfohlene 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 # ? Empfohlene 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 Command oder *.PS1-Datei in eine .EXE-Datei umwandeln (s. C11_Sicherheit.ps1 bzw. X11_Technology_Hacking.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" # . = Aktueller Context & "c:\temp\Mach Was.ps1" # & = 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! |