Lorsque vous téléchargez un script sur Internet et essayez de l’exécuter, si vous n’avez pas précédemment configuré PowerShell, cela générera une erreur désagréable en police rouge. Cela suffit à effrayer la plupart des utilisateurs, mais il existe une solution simple.
PowerShell a un certain nombre de modes d’exécution qui définissent le type de code qu’il est autorisé à exécuter, ceci est régi par une clé de registre qui réside dans la ruche HKLM. Il existe 4 modes d’exécution différents, ils sont:
- Limité: Politique d’exécution par défaut, n’exécute pas de scripts, commandes interactives uniquement.
- Tous signés: Exécute des scripts; tous les scripts et fichiers de configuration doivent être signés par un éditeur en qui vous avez 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 s’exécutent 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 s’exécutent après avoir confirmé que vous comprenez le fichier provenant d’Internet; aucune signature numérique n’est requise; vous expose au risque d’exécuter des scripts malveillants non signés téléchargés à partir de ces applications
La stratégie d’exécution par défaut de PowerShell est appelée Restreint. Dans ce mode, PowerShell fonctionne uniquement comme un shell interactif. Il n’exécute pas de scripts et ne charge que les fichiers de configuration signés par un éditeur en qui vous avez confiance. Si vous obtenez l’erreur rouge désagréable, la cause la plus probable est que vous essayez d’exécuter un script non signé. La chose la plus sûre à faire est de changer la politique d’exécution sur sans restriction, d’exécuter votre script puis .
Pour le modifier en mode illimité, exécutez la commande suivante à partir d’un PowerShell d’administration:
Set-ExecutionPolicy sans restriction
Il vous sera demandé si vous êtes sûr de vouloir modifier la politique d’exécution, appuyez à nouveau sur le bouton Entrée.
Vous pouvez maintenant exécuter vos scripts téléchargés sans problème. Cependant, c’est un risque sérieux pour la sécurité si vous oubliez de remettre la stratégie d’exécution en mode restreint. Vous pourriez probablement deviner comment le redéfinir sur Restreint, mais au cas où vous ne le feriez pas:
Set-ExecutionPolicy restreint
Encore une fois, il vous sera demandé si vous êtes sûr de vouloir changer le mode d’exécution, continuez et appuyez sur Entrée.