Vous exécutez des commandes sur PowerShell et vous voyez soudain apparaître un message d’erreur qui dit : « PowerShell ne peut pas être chargé car l’exécution de scripts est désactivée sur ce système. »
Vous vous demandez quelle est la cause de ce problème et comment le résoudre ? Nous allons vous présenter les méthodes simples qui peuvent vous aider à résoudre ce problème une fois pour toutes.
Plongeons dans le vif du sujet !
1. Exécuter PowerShell en mode administrateur
Exécutez-vous actuellement PowerShell sans disposer des droits d’administration appropriés ? Si c’est le cas, c’est peut-être là que se situe le problème.
Voyons donc les étapes à suivre pour exécuter l’outil en mode administrateur :
- Appuyez sur Win + X pour ouvrir le menu d’accès rapide.
- Sélectionnez l’option Windows PowerShell (Admin) option.
Si cela ne suffit pas, consultez les différentes façons d’ouvrir Windows PowerShell. Mais vous ne devez vous concentrer que sur les méthodes qui vous montrent comment exécuter l’outil avec des privilèges d’administration.
2. Modifier la politique d’exécution dans PowerShell
Dans certains cas, la modification de la politique d’exécution peut s’avérer utile. Mais avant d’explorer les solutions, voyons d’abord ce qu’est la politique d’exécution et comment elle fonctionne.
Qu’est-ce que la politique d’exécution et comment fonctionne-t-elle ?
La politique d’exécution est une fonctionnalité de sécurité qui contrôle la façon dont vous exécutez les scripts PowerShell sur votre appareil. Elle détermine simplement quels types de scripts peuvent être exécutés et lesquels doivent être évités. Le plus intéressant, c’est que vous pouvez configurer cette politique à votre guise.
Voici les options que vous pouvez choisir pour configurer la politique d’exécution :
- Restreint: Cette politique vous interdit d’exécuter un script PowerShell.
- Sans restriction: Permet d’exécuter n’importe quel script mais affiche un message d’avertissement lorsque vous exécutez des scripts suspects.
- RemoteSigned: Cette stratégie exige une signature numérique lorsque vous exécutez les scripts que vous avez téléchargés en ligne. Cependant, elle n’exige pas de signature pour les scripts locaux.
- ByPass: Cette politique vous permet d’exécuter n’importe quel script sans aucune restriction. Contrairement à la stratégie « Unrestricted », la stratégie « ByPass » n’affiche aucun message d’avertissement lorsque vous exécutez des scripts suspects. Par conséquent, n’appliquez toujours cette politique que lorsque vous exécutez des scripts légitimes.
- AllSigned: Cette politique n’exécute que les scripts signés par un éditeur de confiance.
Si vous utilisez PowerShell régulièrement, il se peut que vous souhaitiez modifier la stratégie d’exécution de temps à autre. Cependant, certaines stratégies d’exécution peuvent afficher des messages d’erreur lorsque vous exécutez vos scripts PowerShell.
Par exemple, l’activation des stratégies « Restricted », « AllSigned » ou « RemoteSigned » peut entraîner l’affichage de messages d’erreur tels que « Running scripts is disabled » (l’exécution des scripts est désactivée).
Pour résoudre le problème, il vous suffit de modifier la stratégie d’exécution et de la remplacer par « Unrestricted » (sans restriction) ou « ByPass » (contournement). Mais ce n’est pas tout : vous devez également décider de la manière dont la politique doit être mise en œuvre. Par exemple, voulez-vous appliquer la politique à tous les utilisateurs ou seulement à votre session PowerShell actuelle ?
Explorons toutes les commandes PowerShell supplémentaires que vous devrez ajouter lorsque vous modifierez la politique d’exécution :
- CurrentUser: Cette politique ne sera appliquée qu’à toutes les sessions PowerShell de la personne qui s’est connectée à l’appareil.
- LocalMachine: S’applique à tous les utilisateurs disposant d’un compte sur l’appareil. Cette politique ne peut être configurée que par des utilisateurs locaux disposant de privilèges administratifs.
- Processus: Ne s’applique qu’à la session PowerShell en cours. Cela signifie que vous devrez exécuter à nouveau la politique si vous démarrez une nouvelle session.
- MachinePolicy: Cette politique s’applique à tous les utilisateurs qui ont un compte sur votre appareil. Cependant, elle ne peut être configurée que par des administrateurs réseau disposant des autorisations appropriées. Mais il est souvent possible pour les administrateurs locaux de configurer cette politique d’exécution à l’aide de l’éditeur de stratégie de groupe local.
- UserPolicy: S’applique à toutes les sessions PowerShell et aux scripts exécutés par un utilisateur particulier.
Maintenant que tout est clair, voyons comment vous pouvez exécuter les stratégies appropriées pour résoudre le problème « PowerShell ne peut pas se charger ».
Comment changer la politique d’exécution en « Unrestricted » (sans restriction)
La meilleure façon de résoudre le problème est de modifier la politique d’exécution pour qu’elle soit « non restreinte ». Mais avant cela, vous devez vérifier comment chaque politique d’exécution est configurée.
Voici les étapes à suivre pour vérifier la configuration des politiques d’exécution :
- Appuyez sur Win + X pour ouvrir le menu d’accès rapide.
- Sélectionner Windows PowerShell (Admin) à partir des options.
- Tapez la commande suivante et appuyez sur Entrer:
Get-ExecutionPolicy -List
Cela devrait vous montrer comment les politiques d’exécution sont configurées pour les différents utilisateurs et systèmes.
Pour changer la politique d’exécution en « Unrestricted » pour l’utilisateur actif actuel, tapez la commande suivante et appuyez sur Entrer:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Pour changer la politique d’exécution en « Unrestricted » pour tous les utilisateurs, tapez la commande suivante et appuyez sur Entrée:
Set-ExecutionPolicy Unrestricted -Scope LocalMachine
Une fois la commande exécutée, fermez PowerShell et redémarrez votre PC pour enregistrer les modifications.
Comment modifier la politique d’exécution en « ByPass » ?
La politique d’exécution « ByPass » vous permettra d’exécuter n’importe quel script PowerShell sans problème. Mais n’oubliez pas qu’elle peut également vous permettre d’exécuter des fichiers bogués. Par conséquent, ne configurez toujours cette politique d’exécution que lorsque vous exécutez des fichiers PowerShell dignes de confiance.
Pour changer la politique d’exécution en « ByPass » pour l’utilisateur actif actuel, tapez la commande suivante et appuyez sur Entrée:
Set-ExecutionPolicy ByPass -Scope CurrentUser
Et pour changer la politique d’exécution en « ByPass » pour tous les utilisateurs, tapez la commande suivante et appuyez sur Entrée:
Set-ExecutionPolicy ByPass -Scope LocalMachine
Lorsque vous avez terminé, fermez PowerShell et redémarrez votre appareil.
3. Modifier la stratégie d’exécution via l’éditeur de stratégie de groupe local
L’éditeur de stratégie de groupe local (LGPE) vous permet également de modifier facilement la stratégie d’exécution. En fait, cet outil peut aussi vous aider à configurer divers paramètres du système ou à résoudre des tas de problèmes sur votre PC.
N’oubliez pas que l’objectif principal est de modifier la politique d’exécution afin que vous puissiez exécuter vos scripts PowerShell sans problème. Ce faisant, vous vous débarrasserez de l’erreur « l’exécution des scripts est désactivée » sur PowerShell.
Voici comment modifier la politique d’exécution dans le LGPE :
- Type Modifier la stratégie de groupe dans la barre de recherche du menu Démarrer et sélectionner l’option Meilleure correspondance. Vous pouvez également consulter les différentes façons d’ouvrir le LGPE.
- Naviguez vers Configuration de l’ordinateur > ; Modèles d’administration > ; Composants Windows > ; Windows PowerShell.
- Double-cliquez sur l’icône Activer l’exécution des scripts option.
Vérifier l’option Activé . À partir de là, cliquez sur le bouton Politique d’exécution et sélectionnez Autoriser les scripts locaux et les scripts signés à distance. Cette option est similaire à l’option « RemoteSigned » que nous avons découverte précédemment.
Si vous souhaitez exécuter tous les scripts sans restrictions, choisissez l’option Autoriser tous les scripts dans le menu déroulant « Politique d’exécution ».
De là, cliquez sur Postuler puis cliquez sur OK pour enregistrer ces modifications.
4. Modifier la politique d’exécution à l’aide de l’éditeur du registre
Si les autres méthodes n’ont pas fonctionné, essayez de modifier la politique d’exécution à l’aide de l’éditeur du registre. Cependant, vous devez être prudent lorsque vous modifiez les clés du Registre. Si vous modifiez les mauvaises clés, vous risquez d’endommager votre PC.
Voici maintenant comment modifier la politique d’exécution via l’éditeur de registre :
- Appuyez sur Win + R pour ouvrir la boîte de dialogue Exécuter.
- Tapez Regedit et appuyez sur Entrer pour ouvrir l’éditeur du registre.
- Copiez-collez la commande suivante dans la barre d’adresse et appuyez sur Entrer:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Localiser le Politique d’exécution dans la partie droite.
Si la valeur est manquante, créez-la en suivant ces étapes :
- Cliquez avec le bouton droit de la souris sur un espace vide dans la partie droite.
- Sélectionner Nouveau > ; Valeur DWORD (32 bits).
- Nommez la valeur comme Politique d’exécution et appuyez sur Entrer.
Double-cliquez sur l’icône Politique d’exécution valeur. Ensuite, tapez RemoteSigned dans la section « Value data ». Cela permettra à PowerShell d’exécuter des scripts locaux et signés.
Vous pouvez également taper ByPass dans la section « Value data ». Cela permettra à PowerShell d’exécuter n’importe quel script sans limitations.
Après avoir saisi la valeur de votre choix dans la section « Données de la valeur », appuyez sur OK pour enregistrer les modifications. Enfin, fermez l’éditeur du registre et redémarrez votre appareil.
Exécutez vos scripts PowerShell sans aucune restriction
Il peut être assez frustrant de ne pas pouvoir exécuter certaines commandes sur Windows PowerShell. Mais si vous rencontrez l’erreur « scripts est désactivé », les solutions que nous avons présentées devraient vous aider.
PowerShell vous pose-t-il souvent d’autres problèmes ? Il existe d’autres solutions qui peuvent vous aider.