Lorsque vous essayez d’exécuter un script PowerShell qui n’a pas été signé par Trusted Publisher, vous pouvez obtenir l’erreur de sécurité suivante.
<Le fichier de script PowerShell> n’est pas signé numériquement. Vous ne pouvez pas exécuter
ce script sur le système actuel. Pour plus d’informations sur l’exécution de scripts et la définition de la politique d’exécution, voir
about_Execution_Policies à http://go.microsoft.com/fwlink/?LinkID=135170.
Comment résoudre l’erreur Le script PowerShell n’est pas signé numériquement ?
Il existe quelques résolutions pour ce problème. Vous pouvez signer le script PowerShell que vous voulez exécuter, modifier la politique d’exécution, contourner la politique ou débloquer le fichier afin qu’il puisse s’exécuter une fois sur cette session.
Vérifier la politique d’exécution
Vous pouvez exécuter la cmdlet Get-ExecutionPolicy pour obtenir votre politique d’exécution.
Vous pouvez également ajouter le paramètre -list pour obtenir la politique d’exécution pour chaque portée.
Changer la politique d’exécution de façon permanente
La méthode la plus simple mais non sécurisée pour se débarrasser de ce message d’erreur est de changer la politique d’exécution en utilisant la cmdlet Set-ExecutionPolicy et de définir la politique d’exécution sur non restreinte.
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Changer la politique d’exécution temporairement
Pour changer la politique d’exécution temporairement, vous pouvez utiliser la cmdlet Set-ExecutionPolicy avec le paramètre ByPass.
Set-ExecutionPolicy -ExecutionPolicy ByPass
Voici le détail des valeurs acceptables pour le paramètre -ExecutionPolicy:
- Restreint. Ne charge pas les fichiers de configuration et n’exécute pas les scripts. Restreint est la politique d’exécution par défaut.
- AllSigned. Exige que tous les scripts et fichiers de configuration soient signés par un éditeur de confiance, y compris les scripts que vous écrivez sur l’ordinateur local.
- RemoteSigned. Exige que tous les scripts et fichiers de configuration téléchargés depuis Internet soient signés par un éditeur de confiance.
- Unrestricted. Charge tous les fichiers de configuration et exécute tous les scripts. Si vous exécutez un script non signé qui a été téléchargé à partir d’Internet, vous êtes invité à demander la permission avant son exécution.
- Contournement. Rien n’est bloqué et il n’y a pas d’avertissements ou d’invites.
- Indéfini. Supprime la politique d’exécution actuellement assignée de la portée actuelle. Ce paramètre ne supprimera pas une politique d’exécution définie dans une portée de politique de groupe.
La portée par défaut de la commande Set-ExecutionPolicy est LocalMachine. Vous pouvez également spécifier sur quelle portée la politique sera définie en ajoutant le paramètre -Scope. Voici le détail des scopes que vous pouvez définir :
- Processus : La politique d’exécution affecte uniquement le processus PowerShell actuel.
- CurrentUser : La politique d’exécution affecte uniquement l’utilisateur actuel.
- LocalMachine : La politique d’exécution affecte tous les utilisateurs de l’ordinateur.
Pour supprimer une politique d’exécution d’une portée particulière, définissez la politique d’exécution de cette portée sur Undefined.