Autoriser l’exécution de Scripts dans Powershell

Bloqueur de pub détectée - Vous bloquez l'affichage des publicités.
Pour soutenir le site, merci de bien vouloir laisser les publicités s'afficher.

Plus d'informations : Comment désactiver les bloqueurs de publicité sur un site internet.

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.

Cet article vous explique comment autoriser l'exécution de scripts dans Powershell.

Autoriser l'exécution de Scripts dans Powershell
Autoriser l'exécution de Scripts dans Powershell

Erreur import-Module

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 l'erreur :

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.

Autoriser l'exécution de scripts Powershell

Pour régler au mieux Powershell, Microsoft prévoit plusieurs niveaux de stratégies d’exécution.

Autoriser les scripts abaissent votre niveau de sécurité car vous autoriser l'exécution de scripts non sûr.
Un malware sous la forme d'un script Powershell peut alors s'exécuter sur votre PC.

Les stratégies d'exécution de scripts

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.

Comment changer la politique de stratégie d'exécution

La commande Powershell Set-ExecutionPolicy permet de définir la politique.

Set-ExecutionPolicy Unrestricted
Bravo ! vous avez réussi à autoriser l'exécution de scripts.

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.

Liens

source : About Execution Policies

Vous avez trouvé cet article utile et interressant, n'hésitez pas à le partager...

Trouver la solution sur le forum d'aide

Vous êtes arrivé au terme de l'article Autoriser l’exécution de Scripts dans Powershell mais vous n'avez pas trouvé la solution à votre problème...
Suivez ces articles du forum pour trouver une réponse ou demandez à votre tour de l'aide sur le forum