PowerShell vise à remplacer l’invite de commandes.
C’est un environnement beaucoup plus complet que ce dernier.
En effet, vous pouvez administrer entièrement Windows avec PowerShell.
Par défaut, beaucoup de commandes sont disponibles (que l’on nomme Cmdlets).
Il est même possible d’ajouter de nouveaux modules pour étendre encore plus les possibilités.
Toutefois, pour des raisons de sécurité, ces scripts sont interdits à l’exécution et vous pouvez rencontrer le message « l’exécution de scripts est désactivée sur ce système« .
Cet article vous explique comment autoriser l’exécution de scripts dans PowerShell.

Table des matières
Qu’est-ce que l’exécution de script désactivée sur Powershell
Powershell fonctionne avec des modules.
Pour étendre les fonctionnalités, vous pouvez télécharger des modules sur internet et les importer.
Par exemple, pour installer Chocolatey.
Pour cela, il faut
- copier le module dans le dossier %WINDIR%\System32\WindowsPowerShell\v1.0\Modules
- utiliser la commande Import-Module
Par défaut, l’import des modules est internet.
On obtient alors une erreur de sécurité :
Import-Module : Impossible de charger le fichier
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\PSWindowsUpdate\PSWindowsUpdate.psm1, car l’exécution de scripts est désactivée sur ce système.
Mais on peut autoriser l’exécution de scripts Powershell.
Quelles sont les politiques d’exécution de script de PowerShell
La stratégie d’exécution de PowerShell est une fonctionnalité de sécurité qui contrôle les conditions dans lesquelles PowerShell charge les fichiers de configuration et exécute les scripts.
Cette fonctionnalité permet d’empêcher l’exécution de scripts malveillants.
Voici les politiques de stratégies d’exécution de scripts possibles :
- AllSigned
- Les scripts peuvent s’exécuter.
- Nécessite que tous les scripts et fichiers de configuration soient signés par un éditeur approuvé, y compris les scripts que vous écrivez sur l’ordinateur local.
- Vous invite à exécuter des scripts d’éditeurs que vous n’avez pas encore classés comme fiables ou non fiables.
- Risques liés à l’exécution de scripts signés mais malveillants.
- Bypass
- Rien n’est bloqué et il n’y a ni avertissements ni invites.
- Cette stratégie d’exécution est conçue pour les configurations dans lesquelles un script PowerShell est intégré à une application plus grande ou pour les configurations dans lesquelles PowerShell est la base d’un programme qui possède son propre modèle de sécurité.
- Défaut
- Définit la stratégie d’exécution par défaut.
- Réservé aux clients Windows.
- RemoteSigned pour les serveurs Windows.
- RemoteSigned
- La stratégie d’exécution par défaut pour les ordinateurs serveurs Windows.
- Les scripts peuvent s’exécuter.
- Nécessite une signature numérique d’un éditeur de confiance sur les scripts et les fichiers de configuration téléchargés sur Internet, qui incluent des programmes de messagerie électronique et de messagerie instantanée.
- Ne nécessite pas de signatures numériques sur les scripts écrits sur l’ordinateur local et non téléchargés sur Internet.
- Exécute des scripts téléchargés sur Internet et non signés, si les scripts sont débloqués, par exemple en utilisant l’applet de commande Unblock-File.
- Risque d’exécuter des scripts non signés à partir de sources autres qu’Internet et des scripts signés qui pourraient être malveillants.
- Restricted
- La stratégie d’exécution par défaut pour les ordinateurs clients Windows.
- Autorise les commandes individuelles, mais n’autorise pas les scripts.
- Empêche l’exécution de tous les fichiers de script, y compris les fichiers de formatage et de configuration (.ps1xml), les fichiers de script de module (.psm1) et les profils PowerShell (.ps1).
- Undefined
- Aucune stratégie d’exécution n’est définie dans la portée actuelle.
- Si la politique d’exécution dans toutes les étendues n’est pas définie, la politique d’exécution effective est Restreint, qui est la politique d’exécution par défaut.
- Unrestricted
- La stratégie d’exécution par défaut pour les ordinateurs non Windows et ne peut pas être modifiée.
- Des scripts non signés peuvent s’exécuter. Il existe un risque d’exécuter des scripts malveillants.
- Avertit l’utilisateur avant d’exécuter des scripts et des fichiers de configuration qui ne proviennent pas de la zone intranet locale.
Exécution de script désactivée PowerShell : Comment autoriser l’exécution de scripts Powershell
Pour régler au mieux Powershell, Microsoft prévoit plusieurs niveaux de stratégies d’exécution.
Un malware sous la forme d’un script Powershell peut alors s’exécuter sur votre PC.
Comment changer la politique de stratégie d’exécution
La commande Powershell Set-ExecutionPolicy permet de définir la politique.
- Ouvrez Powershell en administrateur.
- Par exemple par un clic droit sur le menu Démarrer puis Windows Powershell (admin)
- Ensuite saisissez la commande suivante :
Set-ExecutionPolicy Unrestricted
Ci-dessous l’import d’un nouveau module retourne une erreur lorsque la politique est en Restricted.
La passer en Unrestricted permet d’importer le module.
Ici c’est le niveau de politique et de sécurité le plus faible.
Il n’est pas conseillé de laisser ce niveau de sécurité.
Choisissez le niveau de sécurité le plus fort.
A partir de là, le message l’exécution de scripts est désactivée sur ce système disparait.
Exécuter un script PowerShell spécifique
Vous pouvez aussi exécuter un script spécifique en indiquant la politique d’exécution à l’aide de l’option -ExecutionPolicy.
Cela évite de modifier la politique de sécurité globale de PowerShell tout en permettant d’exécuter un script spécifique.
Powershell -ExecutionPolicy UnRestricted -command "C:\Users\Mak\Desktop\MonScriptPowerShell.ps1"
Liens
- Qu’est-ce que PowerShell sur Windows 10, 11 : exemple de commandes
- PowerShell et CMD (invite de commandes) : les différences
- 14 commandes PowerShell de base pour apprendre et débuter
- La liste des commandes PowerShell
- Les virus ou trojan PowerShell
- Comment exécuter un script PowerShell
- PowerShell Get-Process : gestion des processus
- Exécution script désactivée PowerShell : Autoriser l’exécution de Scripts dans PowerShell
- Lancer PowerShell depuis CMD
- PowerShell : créer et écrire dans un fichier
- PowerShell : installer, désinstaller, lister les applications
- Comment utiliser Where-Object de PowerShell pour filtrer les éléments
- Créer, supprimer, formater des partitions de disque en PowerShell
- Ajouter, supprimer et modifier des comptes utilisateurs et des groupes locaux avec PowerShell
- Comment créer une tâche planifiée en PowerShell
- Configurer les tâches planifiées en PowerShell
- Comment gérer Windows Defender avec PowerShell
- Comment copier ou déplacer des fichiers avec PowerShell
- PowerShell : gérer les partages réseaux et de dossiers de Windows 10
- Les commandes réseaux PowerShell sur Windows 10, 11
- Gérer les services Windows en PowerShell
- PowerShell : supprimer un fichier avec 10 exemples
- PowerShell : tester l’existence fichier
- PowerShell : rechercher une chaîne de caractères avec Select-String
- Comment mettre à jour PowerShell sur Windows