Comment réparer «l’exécution des scripts est désactivée sur ce système» dans PowerShell sur Windows 10

Si vous savez écrire des scripts PowerShell ou Batch simples, vous pouvez automatiser pas mal de choses sur Windows 10. En fait, même si vous devez passer un peu de temps à écrire le script parfait pour quelque chose, le temps gagné une fois qu’il est prêt à partir vaudra le temps que vous avez passé à l’écrire. Cela dit, les scripts peuvent être dangereux, c’est-à-dire que lorsque vous essayez d’exécuter des scripts dans PowerShell, vous obtenez un message d’erreur assez long qui vous indique essentiellement que «l’exécution de scripts est désactivée sur ce système».

Il s’agit d’une mesure de sécurité dans PowerShell pour empêcher l’exécution de scripts malveillants et potentiellement nuire au système. Bien sûr, un script que vous avez écrit vous-même ne sera pas malveillant et devrait pouvoir s’exécuter. Pour résoudre ce problème, vous devez modifier la stratégie d’exécution dans PowerShell. Voici comment.

  Comment configurer le thème d'icônes Korla sur Linux

Le correctif des scripts en cours d’exécution est désactivé sur ce système

Ouvrez PowerShell avec des droits d’administrateur et exécutez la commande suivante.

Get-ExecutionPolicy -List

Cela vous montrera la politique d’exécution qui a été définie pour votre utilisateur et pour votre machine. Il est probable que les deux, ou au moins la stratégie CurrentUser soit définie sur Restreint.

Pour corriger l’erreur «l’exécution des scripts est désactivée sur ce système», vous devez modifier la stratégie de CurrentUser. Pour ce faire, exécutez la commande suivante.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Confirmez que vous souhaitez effectuer la modification et vous pourrez exécuter le script.

  ✨ Vous pouvez utiliser Emoji dans les noms de fichiers sous Windows 10

Cela devrait vous permettre d’exécuter la plupart des scripts, cependant, si vous obtenez toujours la même erreur, vous devrez probablement changer la politique d’exécution de la machine. Vous pouvez modifier la commande précédente pour ce faire, mais vous aurez besoin des droits d’administrateur pour ce faire.

Exécutez cette commande.

Set-ExecutionPolicy RemoteSigned -Scope LocalMachine

Confirmez que vous souhaitez apporter la modification, puis essayez d’exécuter le script.

Cela devrait faire l’affaire si vous avez écrit le script vous-même, cependant, si vous l’avez téléchargé en ligne et qu’il n’est pas signé, vous devez alors changer la politique d’exécution en Unrestricted. Pour ce faire, remplacez «RemoteSigned» dans toutes les commandes ci-dessus par «Unrestricted». Faites très attention aux scripts que vous exécutez si vous les téléchargez. Ils peuvent être dangereux.

  Le guide du débutant sur Google Slides

Set-ExecutionPolicy

Il s’agit d’une commande assez simple pour définir la stratégie d’exécution sur PowerShell. Cette commande peut avoir quatre paramètres ou états différents: Restreint, AllSigned, RemoteSigned et Unrestricted.

Le commutateur -Scope définit à quoi la modification de stratégie est appliquée. Lorsque vous entrez «CurrentUser», il est appliqué à l’utilisateur actuel uniquement, et lorsque vous entrez «LocalMachine», il est appliqué à l’ensemble du système