Le PowerShell n’est pas une erreur signée numériquement se déclenche souvent lorsque les utilisateurs exécutent des scripts PowerShell. Cela se produit généralement en raison des valeurs définies pour la stratégie d’exécution PowerShell.
Dans le cadre de nos Services de gestion de serveur, nous aidons nos clients à corriger régulièrement les erreurs liées à Windows.
Discutons aujourd’hui des causes possibles et des correctifs de cette erreur.
Qu’est-ce que PowerShell n’est pas une erreur signée numériquement?
En essayant d’exécuter un script PowerShell qui n’a pas été signé par un éditeur de confiance, les utilisateurs voient souvent une erreur de sécurité » PowerShell n’est pas signé numériquement” comme indiqué ci-dessous :
Cette erreur de sécurité peut se produire lorsque nous avons une stratégie d’exécution PowerShell AllSigned ou RemoteSigned.
Maintenant, discutons maintenant de quelques méthodes possibles pour corriger cette erreur.
Comment réparer PowerShell n’est pas une erreur signée numériquement?
Il existe quelques méthodes possibles pour corriger cette erreur. Jetons un coup d’œil à chacun d’eux un par un.
Vérifier et modifier la Stratégie d’exécution
La première étape ici consiste à vérifier la Stratégie d’exécution. Nous pouvons exécuter l’applet de commande Get-ExecutionPolicy pour obtenir la stratégie d’exécution. Le paramètre list de l’applet de commande Get-ExecutionPolicy nous indique la stratégie pour chaque étendue.
PS C:\> Get-ExecutionPolicy -list
Une fois que nous avons une idée des stratégies d’exécution, la méthode la plus simple mais non sécurisée pour se débarrasser de ce message d’erreur consiste à changer la ExecutionPolicy en unrestricted.
De plus, nous pouvons modifier la stratégie d’exécution à l’aide de l’applet de commande SetExecutionPolicy. La commande suivante définit la stratégie d’exécution sur Non restreinte :
PS C:> Set-ExecutionPolicy unrestricted.
Appuyez sur Y pour confirmer la modification lorsque vous y êtes invité.
Il met ensuite à jour le changement de stratégie dans le registre et le reste jusqu’à ce que nous le changions à nouveau
Contournez la session PowerShell actuelle
Pour modifier temporairement la stratégie d’exécution, nous pouvons utiliser l’applet de commande Set-ExecutionPolicy avec le paramètre ByPass.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy ByPass
Cette commande simple ci-dessus définira la stratégie d’exécution pour contourner la session PowerShell en cours. Une fois que nous fermons cette session PowerShell, elle perd ces paramètres.
Valeurs acceptables pour le paramètre ExecutionPolicy
Voici le détail des valeurs acceptables pour le paramètre -ExecutionPolicy :
- Restricted. Ne charge pas les fichiers de configuration et n’exécute pas de scripts. Restricted est la stratégie d’exécution par défaut.
- Tous signés. Nécessite qu’un éditeur de confiance signe tous les scripts et fichiers de configuration, y compris les scripts que nous écrivons sur l’ordinateur local.
- Conçu à distance. Nécessite qu’un éditeur de confiance signe tous les scripts et fichiers de configuration téléchargés depuis Internet.
- Sans restriction. Charge tous les fichiers de configuration et exécute tous les scripts. Demande la permission si nous exécutons un script non signé téléchargé sur Internet.
- Dérivation. Ne bloquera rien et il n’y a pas d’avertissements ou d’invites.
- Non défini. Supprime la stratégie d’exécution actuellement affectée de la portée actuelle. Ce paramètre ne supprime pas une stratégie d’exécution définie dans une portée de stratégie de groupe.
La portée par défaut de la commande Set-ExecutionPolicy est LocalMachine. Nous pouvons également spécifier la portée de la stratégie en ajoutant le paramètre -Scope. Par exemple, certaines des étendues que nous pouvons définir incluent :
- Processus : La stratégie d’exécution n’affecte que le processus PowerShell actuel.
- CurrentUser : La stratégie d’exécution n’affecte que l’utilisateur actuel.
- LocalMachine : La stratégie d’exécution affecte tous les utilisateurs de l’ordinateur.
De plus, pour supprimer une stratégie d’exécution d’une portée particulière, définissez la stratégie d’exécution de cette portée sur Undefined.
Débloquez le fichier téléchargé
Pour la stratégie RemoteSignedExecution, signez tous les scripts et fichiers de configuration téléchargés depuis Internet ou depuis des e-mails par un éditeur de confiance.
Si nous croyons que le contenu du script est sûr, nous pouvons le débloquer pour l’exécuter sur la session à l’aide de l’applet de commande Unblock-File :
PS C:> Unblock-File -Path C:Downloadsscript1.ps1
Conclusion
En bref, PowerShell n’est pas signé numériquement une erreur de sécurité peut se produire lorsque la stratégie d’exécution de PowerShell est définie sur AllSigned ou RemoteSigned. Aujourd’hui, nous avons vu comment nos ingénieurs de support corrigeaient cette erreur.