Comment autoriser l'exécution de scripts PowerShell sous Windows 7
Lorsque vous téléchargez un script sur Internet et essayez de l'exécuter, si vous n'avez pas encore configuré PowerShell, une mauvaise erreur apparaît en rouge. C'est suffisant pour effrayer la plupart des utilisateurs, mais il existe une solution simple.
PowerShell dispose d'un certain nombre de modes d'exécution qui définissent le type de code qu'il est autorisé à exécuter. Ce type de code est régi par une clé de registre située dans la ruche HKLM. Il y a 4 modes d'exécution différents, ils sont:
- Limité: Stratégie d'exécution par défaut, ne pas exécuter de scripts, commandes interactives uniquement.
- Tous signé: Exécute des scripts; tous les scripts et les fichiers de configuration doivent être signés par un éditeur de confiance; vous expose au risque d'exécuter des scripts signés (mais malveillants), après avoir confirmé que vous faites confiance à l'éditeur.
- Signé à distance: Les scripts locaux fonctionnent sans signature. Tous les scripts téléchargés nécessitent une signature numérique, même un chemin UNC.
- Libre: Exécute des scripts; tous les scripts et fichiers de configuration téléchargés à partir d'applications de communication telles que Microsoft Outlook, Internet Explorer, Outlook Express et Windows Messenger sont exécutés après confirmation que vous comprenez bien que le fichier provient d'Internet; aucune signature numérique n'est requise; vous expose au risque d'exécuter des scripts non signés et malveillants téléchargés à partir de ces applications
La stratégie d'exécution par défaut de PowerShell s'appelle Restricted. Dans ce mode, PowerShell fonctionne uniquement en tant que shell interactif. Il n'exécute pas de scripts et ne charge que les fichiers de configuration signés par un éditeur de confiance. Si vous obtenez une mauvaise erreur rouge, la cause la plus probable est que vous essayez d'exécuter un script non signé. La solution la plus sûre consiste à modifier la stratégie d’exécution en stratégie illimitée, à exécuter votre script, puis revenir à restreint.
Pour le modifier en mode illimité, exécutez la commande suivante à partir d'un PowerShell administratif:
Set-ExecutionPolicy Unrestricted
On vous demandera si vous êtes sûr de vouloir modifier la stratégie d'exécution et cliquez à nouveau sur le bouton Entrée..
Vous pouvez maintenant exécuter vos scripts téléchargés sans problème. Cependant, si vous oubliez de remettre la stratégie d'exécution en mode restreint, le risque en matière de sécurité est sérieux. Vous pouvez probablement deviner comment le redéfinir sur Restricted, mais dans le cas contraire:
Set-ExecutionPolicy Restricted
De nouveau, il vous sera demandé si vous êtes sûr de vouloir changer le mode d’exécution, continuez et appuyez sur Entrée.