{{tag>sysadmin windows powershell sécurité script}} ====== PowerShell : Définir la stratégie d’exécution des scripts ====== Lors du lancement de PowerShell l'option **''-ExecutionPolicy''** permet de définir la stratégie d'exécution des scripts pour le processus PowerShell et les processus fils. # Démarrage de PowerShell sans autoriser l’exécution de scrips # pour le processus courant powershell -ExecutionPolicy Restricted Get-ExecutionPolicy Restricted Get-ExecutionPolicy -Scope Process Restricted # Affiche les portées par priorité et la stratégie associée Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Restricted CurrentUser Bypass LocalMachine Bypass Dans l'exemple ci-dessus on peut lire que la stratégie associée à la portée (ou étendue) ''Process'' est ''Restricted'', elle est prioritaire sur les étendues ''CurrentUser'' et ''LocalMachine'' c'est donc sa stratégie qui s'applique : l'exécution des scripts est refusée : .\HelloWorld.ps1 .\HelloWorld.ps1 : Impossible de charger le fichier C:\Users\yoann\dev\HelloWorld.ps1, car l’exécution de scripts est désactivée sur ce système. Pour plus d’informations, consultez about_Execution_Policies à l’adresse https://go.microsoft.com/fwlink/?LinkID=135170. Au caractère Ligne:1 : 1 + .\HelloWorld.ps1 + ~~~~~~~~~~~~~~~~ + CategoryInfo : Erreur de sécurité : (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess La cmdlet **Set-ExecutionPolicy** permet de modifier la stratégie associée à la portée Process : Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope Process # Affiche les portées et leur stratégie Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Bypass LocalMachine Bypass La stratégie Bypass est associée à l'utilisateur courant, elle s'applique à présent. Le script peut être exécuté : .\HelloWorld.ps1 Hello World !