PowerShell : « Exécution de scripts est désactivée », comment l’activer

Vous devez exécuter un script PowerShell sur un poste de travail ou un serveur mais celui-ci refuse de dérouler comme prévu ? Le message d’erreur n’est pas forcément explicite, en tout cas pas du tout pour une personne qui n’est pas administrateur système et réseau ou technicien informatique. Dans le message d’erreur indiqué, on peut trouver l’information « Exécution de scripts est désactivée » mais sans avoir une solution simple à mettre en oeuvre.

Ce tutoriel explique comment résoudre l’erreur « Exécution de scripts est désactivée » au lancement d’un script PowerShell, sur un ordinateur Windows de n’importe quelle version (Windows 11, 10, 8.1, 8, 7 et Windows Server). En effet, si le message d’erreur PowerShell est légèrement différent selon la version de l’OS, la résolution sera la même, telle que décrite ci-dessous.


 

Le message d’erreur PowerShell

Sur Windows 10 et Windows 11

.\script.ps1 : Impossible de charger le fichier C:\Users\WindowsFacile\Desktop\script.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
+ .\script.ps1
+ ~~~~~~~~~~~~~~
+ CategoryInfo : Erreur de sécurité : (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

Sur Windows 7

PS C:\Users\WindowsFacile\Desktop> .\script.ps1
Impossible de charger le fichier C:\Users\WindowsFacile\Desktop\script.ps1, car l’exécution de scripts est désactivée sur ce système. Pour plus d’informations, consultez « get-help about_signing ».
Au niveau de ligne : 1 Caractère : 13
+ .\script.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException


 

Autoriser l’exécution de scripts PowerShell

Cette méthode fonctionne sur toutes les versions de Windows : 11, 10, 8.1, 8 et 7.

1. Démarrer Windows Powershell, en tant qu’Administrateur.

2. Taper la commande suivante :

set-executionpolicy unrestricted

3. Valider par « O » (le o de oui).

Soit le résultat suivant :

PS C:\> set-executionpolicy unrestricted

Modification de la stratégie d’exécution
La stratégie d’exécution permet de vous prémunir contre les scripts que vous jugez non fiables. En modifiant la
stratégie d’exécution, vous vous exposez aux risques de sécurité décrits dans la rubrique d’aide
about_Execution_Policies. Voulez-vous modifier la stratégie d’exécution ?
[O] Oui [N] Non [S] Suspendre [?] Aide (la valeur par défaut est « O ») : o

 

Relancer le script

Vous pouvez maintenant exécuter à nouveau le script qui posait problème.

Si besoin, ce tutoriel montre comment lancer PowerShell en administrateur.

 

Bonus sur l’autorisation de scripts PS

Remettre en place la restriction

Set-ExecutionPolicy RemoteSigned

Autoriser pour l’utilisateur Windows courant

Cela va donc autoriser l’exécution de scripts PowerShell pour la session courante et pas pour les autres utilisateurs du poste de travail. Cela pourra être utile pour qu’un administrateur informatique applique un patch, sans compromettre la sécurité de l’ordinateur.

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

Remettre en place la restriction pour l’utilisateur courant

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

Quitter la version mobile