456 votes

Comment activer l'exécution des scripts PowerShell ?

Lorsque j'essaie d'exécuter mon script PowerShell, j'obtiens cette erreur :

Fichier C:\Common\<strkeep>scripts<strkeep>\hello.ps1 ne peut être chargé car l'exécution de scripts est désactivée sur ce système. Veuillez consulter "get-help about_signing" pour plus de détails.
A la ligne:1 char:13
+ . \hello.ps1 <<<<
+ CategoryInfo : NotSpecified : ( :) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException

1 votes

Je sais que ce fil de discussion date, mais deux personnes de la communauté ont écrit deux messages qui traitent de cette réponse en profondeur ici. adamtheautomator.com/run-powershell-script

0voto

colin lamarre Points 240

Si vous avez téléchargé le .ps1 sur Internet, cliquez sur Propriétés avec le bouton droit de la souris, il y a peut-être un bouton de déblocage, cliquez dessus.

0voto

Starnuto di topo Points 502

Sur ma machine locale, j'ai résolu le problème en réglant la politique d'exécution sur Bypass.

  1. Lancez Windows PowerShell avec l'option "Exécuter en tant qu'administrateur". Seuls les membres du groupe Administrateurs sur l'ordinateur peuvent modifier la politique d'exécution.

  2. Activer l'exécution de scripts non signés en entrant :

    set-executionpolicy Bypass

    (tapez A et appuyez sur Enter pour accepter toutes les questions).

1 votes

Quelle est la différence entre Bypass y Unrestricted ?

2 votes

@NobleUplift Ils permettent tous deux l'exécution de tous les scripts, mais unrestricted vous enverra des avertissements pour les scripts non signés provenant de l'extérieur de votre réseau.

0voto

Vicky Dev Points 412

Je ne sais pas si quelqu'un a soigneusement essayé et testé ceci ou non, mais même dans les dernières mises à jour de Windows 10 (11 pourrait être aussi, mais pas essayé), si vous exécutez ces lignes dans l'ordre exact donné, alors vous pouvez facilement régler le paramètre ExecutionPolicy à votre convenance.

Ouvrir Powershell avec l'élévation Admin( Run As Administrator ) et exécuter ces lignes une par une, mais les 3 dans l'ordre exact donné est nécessaire :

powershell "Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force"
powershell "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force"
powershell "Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force"

Et après cela, non seulement la fenêtre Powershell actuelle, mais même les fenêtres Powershell nouvellement ouvertes par n'importe quel utilisateur seraient en mesure d'exécuter des .ps1 scripts.

Faites-moi savoir dans les commentaires si vous avez des problèmes.

-2voto

keith Points 1

La raison pour laquelle la clé reg fonctionne est qu'elle fait exactement ce que font les commandes PS. Les commandes écrivent les changements dans les clés de registre. Les commandes sont beaucoup plus rapides et faciles à utiliser que la création d'une clé de registre ou la recherche dans le registre.

3 votes

C'est tout simplement faux : les clés qui ont été mentionnées dans d'autres réponses changent la politique d'exécution de powershells, qui permet ensuite au script de s'exécuter.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X