L’automatisation de tâches sous Windows 10 devient accessible grâce à des scripts PowerShell ou Batch, même basiques. Bien que la création d’un script optimisé puisse demander un investissement initial en temps, le gain d’efficacité qu’il procure par la suite est indéniable. Cependant, il est important de souligner que l’exécution de scripts peut comporter des risques. Lors de la tentative d’exécution d’un script dans PowerShell, un message d’erreur conséquent signale que « l’exécution de scripts est désactivée sur ce système ».
Cette mesure de sécurité, intégrée à PowerShell, vise à prévenir l’exécution de scripts malveillants et à protéger votre système contre d’éventuels dommages. Un script que vous avez développé vous-même est a priori inoffensif et devrait pouvoir être exécuté sans encombre. Pour contourner ce blocage, il est nécessaire de modifier la politique d’exécution dans PowerShell. Voici les étapes à suivre.
Correction de l’erreur « L’exécution des scripts est désactivée sur ce système »
Démarrez PowerShell en tant qu’administrateur et entrez la commande ci-dessous :
Get-ExecutionPolicy -List
Cette commande affichera la politique d’exécution configurée pour votre utilisateur et pour la machine. Il est probable que les deux, ou à minima la politique CurrentUser, soient définies sur Restreint.
Pour résoudre l’erreur « l’exécution des scripts est désactivée sur ce système », il est impératif de modifier la politique de CurrentUser. Pour ce faire, utilisez la commande suivante :
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Validez la modification, et vous devriez pouvoir lancer votre script.
Cette manipulation devrait vous permettre d’exécuter la plupart des scripts. Cependant, si l’erreur persiste, il faudra probablement modifier la politique d’exécution de la machine. Il est possible d’adapter la commande précédente à cet effet, mais des droits d’administrateur seront requis.
Utilisez cette commande :
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
Confirmez que vous souhaitez apporter les changements, puis essayez de lancer le script.
Cette approche est généralement suffisante pour les scripts que vous avez vous-même créés. Toutefois, si le script a été téléchargé en ligne et qu’il n’est pas signé, il sera nécessaire de modifier la politique d’exécution vers Unrestricted. Pour cela, remplacez « RemoteSigned » par « Unrestricted » dans les commandes ci-dessus. Soyez extrêmement vigilant quant à l’origine des scripts que vous téléchargez, car ils peuvent présenter un risque.
Fonctionnement de la commande Set-ExecutionPolicy
La commande Set-ExecutionPolicy est un outil simple permettant de configurer la politique d’exécution dans PowerShell. Elle offre quatre paramètres ou états distincts : Restreint, AllSigned, RemoteSigned et Unrestricted.
Le paramètre -Scope détermine l’étendue de la modification de la politique. En utilisant « CurrentUser », la modification est appliquée uniquement à l’utilisateur actuel, tandis que « LocalMachine » l’applique à l’ensemble du système.