Voici comment tirer le meilleur parti de Windows PowerShell en activant la stratégie d'exécution de script.

iPowerShell, par défaut, vous permet d'exécuter des commandes (applet de commande) via sa console. Pour exécuter un script, vous pouvez créer un fichier bloc-notes avec le code du script, l'enregistrer avec une extension de fichier .ps1 et l'exécuter via la console PowerShell. Vous pouvez également coller directement le script sur la console pour l'exécution.

Cependant, si c'est la première fois que vous exécutez un script via PowerShell, vous rencontrerez l'erreur "le script en cours d'exécution est désactivé". Par défaut, l'exécution de scripts sur PowerShell est désactivée par mesure de sécurité pour empêcher l'exécution de scripts malveillants sur votre système. Ici, nous vous montrons les deux façons d'activer la stratégie d'exécution des scripts sur Windows PowerShell.

Comment vérifier votre politique d'exécution existante

Vous pouvez utiliser une applet de commande PowerShell pour obtenir votre stratégie d'exécution actuelle. Connaître votre politique d'exécution actuelle est nécessaire pour savoir si vous avez besoin d'un changement de politique ou non.

instagram viewer

Pour obtenir votre stratégie d'exécution actuelle pour l'utilisateur actuel :

  1. Ouvrez Windows PowerShell en tant qu'administrateur.
  2. Tapez la commande suivante dans la console PowerShell et appuyez sur Entrée :
    obtenir-politique d'exécution
  3. Étant donné que vous avez rencontré une erreur lors de l'exécution du script, le retour affichera probablement Limité comme stratégie d'exécution actuelle.
  4. Si vous avez besoin d'afficher la stratégie d'exécution pour tous les champs d'application pris en charge :
    obtenir-liste des politiques d'exécution

Vous devrez changer la politique d'exécution en RemoteSigned pour exécuter des scripts locaux sans l'erreur. Vous pouvez modifier la politique d'exécution à partir de l'application Paramètres et de PowerShell.

Comment activer la politique d'exécution PowerShell à l'aide de l'application Paramètres

Vous pouvez modifier et définir la stratégie d'exécution PowerShell sur RemoteSigned à l'aide de l'application Paramètres. Tout ce que vous avez à faire est de modifier les paramètres PowerShell dans la section des développeurs pour modifier la politique d'exécution afin d'activer l'exécution des scripts PowerShell.

Pour modifier la stratégie d'exécution à l'aide des paramètres :

  1. Presse Gagner + je ouvrir Setchoses.
  2. Ouvrez le Confidentialité et sécurité onglet dans le volet de gauche.
  3. Cliquez ensuite sur Pour les développeurs.
  4. Cliquez pour développer le PowerShell section.
  5. Basculez le commutateur sur modifier la politique d'exécution pour permettre aux scripts PowerShell locaux de s'exécuter sans signature - Exiger la signature pour les scripts distants.
  6. Une fois cela fait, ouvrez PowerShell, tapez get politique d'exécution, et appuyez sur Entrer. La politique d'exécution pour l'utilisateur actuel est maintenant définie sur Signé à distance.
  7. Si vous devez désactiver la stratégie d'exécution, basculez le commutateur PowerShell et réglez-le sur Désactivé.

Comment autoriser l'exécution de scripts dans PowerShell à l'aide de PowerShell

Vous pouvez utiliser un Applet de commande PowerShell pour définir la stratégie d'exécution sur RemoteSigned. L'interface de ligne de commande facilite la modification rapide de la stratégie d'exécution sans utiliser l'application Paramètres.

De plus, l'application Paramètres peut uniquement activer ou désactiver la politique d'exécution RemoteSigned. Alors que PowerShell vous permet également de définir d'autres politiques et étendues.

Pour modifier la stratégie d'exécution à l'aide de PowerShell :

  1. Ouvrez PowerShell en tant qu'administrateur.
  2. Dans la fenêtre PowerShell, tapez la commande suivante et appuyez sur Entrer:
    Ensemble-ExecutionPolicy RemoteSigned
  3. Si vous y êtes invité, appuyez sur UN pour confirmer l'action. Cela définira le Signé à distance politique d'exécution pour tous les utilisateurs. Si vous souhaitez définir la politique d'exécution pour le Utilisateur actuel uniquement, utilisez le paramètre Scope suivi du nom d'utilisateur.
  4. Par exemple, pour définir le Signé à distance politique d'exécution pour Utilisateur actuel, utilisez la commande suivante :
    Ensemble-ExecutionPolicy RemoteSgined -Portée Utilisateur actuel
  5. Remplacer Utilisateur actuel dans la commande ci-dessus avec d'autres utilisateurs (Scope) selon vos besoins.

Comment supprimer la stratégie d'exécution de script à l'aide de PowerShell

Si vous souhaitez désactiver l'exécution du script, définissez la stratégie d'exécution sur Indéfini en utilisant ee Set_ExecutionPolicy applet de commande. Il s'agit d'un état par défaut qui empêche PowerShell d'exécuter des scripts.

Pour désactiver l'exécution du script à l'aide de PowerShell :

  1. Ouvrez PowerShell avec une autorisation élevée.
  2. Ensuite, tapez la commande suivante et appuyez sur Entrée pour désactiver l'exécution du script pour tous les utilisateurs :
    Ensemble-ExecutionPolicy indéfini
  3. La commande ci-dessus définira la politique d'exécution par défaut (non définie) pour tous les utilisateurs. Si vous souhaitez désactiver l'exécution du script pour une portée spécifique, utilisez la commande suivante :
    Ensemble-ExecutionPolicy indéfini -Scope CurrentUser
  4. La commande ci-dessus désactivera l'exécution du script pour Utilisateur actuel.

Comprendre les politiques d'exécution et les portées

En termes simples, la politique d'exécution de PowerShell est une politique qui contrôle la façon dont PowerShell exécute les fichiers de configuration et les scripts. L'objectif visé est d'empêcher les utilisateurs d'exécuter accidentellement des scripts malveillants. Les sept politiques d'exécution de PowerShell sont Par défaut, Restreint, RemoteSigned, AllSigned, Unrestricted, Bypass et Undefined.

Le tableau ci-dessous explique brièvement toutes les politiques d'exécution de PowerShell :

Politique d'exécution

Mise en vigueur

Défaut

Définit la stratégie d'exécution par défaut sur Restreint sur le client Windows et Signé à distance sur Windows Server.

TousSigné

Autorise l'exécution de scripts signés par l'éditeur.

Contourne

Exécution illimitée de scripts pour des applications plus importantes.

Signé à distance

Autorise l'exécution de scripts écrits localement. Nécessite des signatures numériques pour les scripts téléchargés depuis Internet.

Limité

N'autorise pas l'exécution de script, mais uniquement des commandes PowerShell individuelles.

Indéfini

Définit la stratégie d'exécution sur Restreint pour les clients Windows et RemoteSigned pour Windows Server.

Libre

Autoriser l'exécution de scripts non signés avec un avertissement pour les scripts téléchargés depuis Internet.

Portée de la politique d'exécution

Vous pouvez définir une stratégie d'exécution pour une étendue particulière dans PowerShell. Les cinq portées de la politique d'exécution sont MachinePolicy, UserPolicy, Processus, CurrentUser, et Machine locale.

Le tableau ci-dessous explique brièvement toutes les portées de la politique d'exécution :

Portée de la politique d'exécution

Mise en vigueur

UserPolicy

Configuré par une stratégie de groupe pour l'utilisateur actuel.

Politique de l'ordinateur

Configuré par une stratégie de groupe pour tous les utilisateurs.

Utilisateur actuel

Configuré pour l'utilisateur actuel et stocké dans la sous-clé de registre HKEY_CURRENT_MACHINE.

Machine locale

Configuré pour tous les utilisateurs et stocké dans la sous-clé de registre HKEY_CURRENT_MACHINE.

Processus

Affecte la session PowerShell actuelle et est automatiquement supprimé lorsque la session est fermée.

Ajouter ou supprimer une stratégie d'exécution de script PowerShell sous Windows

L'exécution de script sur PowerShell est désactivée par défaut pour les clients Windows et définie sur RemoteSigned pour le serveur Windows. Cependant, les utilisateurs expérimentés peuvent modifier les stratégies d'exécution pour exécuter des scripts PowerShell locaux, signés et non signés.

Vous pouvez également contourner la stratégie d'exécution PowerShell en collant le script dans une console PowerShell ou ECHO votre script dans l'entrée standard PowerShell. Ceci est utile si vous souhaitez exécuter des scripts sans modifier la politique d'exécution.