Si vous avez essayé d’exécuter un script PowerShell qui n’est pas signé, vous êtes probablement tombé sur l’erreur suivante .
Windows PowerShell est un shell initialement développé par Microsoft à des fins d’automatisation des tâches et de gestion de la configuration. Il n’est pas étonnant que sa politique d’exécution soit définie sur Restreint, ce qui protège contre l’exécution de scripts malveillants.
Toutefois, cette erreur de sécurité peut se produire lorsque la stratégie d’exécution PowerShell est définie sur AllSigned ou RemoteSigned et que le script n’est pas signé. Si vous souhaitez signer le script et résoudre ce problème, voici quelques méthodes qui peuvent vous aider.
Que puis-je faire si PowerShell n’est pas signé numériquement?
1. Vérifier et modifier la politique d’exécution
Jetons un coup d’œil à la façon de vérifier la politique d’exécution, ainsi qu’à la façon dont cela peut être utilisé pour se débarrasser de votre erreur. Tout d’abord, vous pouvez exécuter Applet de commande Get-ExecutionPolicy pour obtenir votre politique d’exécution. Le paramètre de liste dans la cmdlet Get-ExecutionPolicy vous indique la stratégie pour chaque étendue.
À ce stade, une méthode pratique consiste à 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 restreint: PS C: → Set-ExecutionPolicy sans restriction. presse Oui pour confirmer la modification lorsque vous y êtes invité.
Le changement de stratégie est mis à jour dans le Registre et reste ainsi, au moins jusqu’à ce que vous le changiez à nouveau. Notez qu’Unrestricted signifie charger absolument tous les fichiers de configuration et exécuter tous les scripts. Si vous exécutez un script non signé qui a été téléchargé à partir d’Internet, vous êtes toutefois invité à demander l’autorisation avant de s’exécuter.
FAQ sur le système d'exploitation Windows et la signature de scripts PowerShell
1. Quelle est l’importance de signer numériquement un script PowerShell ?
La signature numérique d'un script PowerShell garantit son intégrité et son authenticité, garantissant ainsi que le script n'a pas été modifié depuis sa signature. Cela améliore la sécurité en permettant aux utilisateurs de vérifier l'identité de l'auteur et de faire confiance à la source du script.
2. Comment puis-je corriger l'erreur « Le script PowerShell n'est pas signé numériquement » ?
Pour résoudre cette erreur, vous devez modifier la stratégie d'exécution dans PowerShell. Ouvrez PowerShell en tant qu'administrateur et définissez la stratégie d'exécution sur « Sans restriction ». Suivez ces étapes:
- Vérifiez la politique d'exécution actuelle à l'aide de la commande
Get-ExecutionPolicy -List
. - Définissez la politique d'exécution sur "Unrestricted" avec
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
.
En suivant ces étapes, vous pouvez autoriser l'exécution de scripts qui ne sont pas signés numériquement, résolvant ainsi l'erreur.
3. Quelle est la différence entre un script PowerShell signé numériquement et un script non signé ?
La principale différence réside dans le niveau de sécurité et de confiance. Un script signé numériquement a été signé avec un certificat de signature de code, vérifiant l'identité de l'auteur et garantissant l'intégrité du script. D'un autre côté, un script non signé ne dispose pas de cette vérification et peut présenter des risques potentiels pour la sécurité.
4. Comment signer un script PowerShell ?
Pour signer un script PowerShell, vous devez obtenir un certificat de signature de code et utiliser la commande Set-AuthenticodeSignature
. Voici un aperçu du processus :
- Obtenez un certificat de signature de code.
- Signez le script en utilisant
Set-AuthenticodeSignature -FilePath SCRIPT_PATH -Certificate $cert
. - Vous pouvez éventuellement utiliser un horodatage pour une période de validité étendue.
En suivant ces étapes, vous pouvez ajouter une signature numérique à votre script PowerShell, améliorant ainsi sa sécurité et sa fiabilité.
5. Qu'est-ce qu'un script PowerShell signé numériquement et pourquoi est-il important ?
Un script PowerShell signé numériquement a été signé avec un certificat de signature de code, vérifiant l'identité de l'auteur et garantissant que le script n'a pas été falsifié depuis sa signature. Ceci est crucial pour maintenir l'intégrité et la sécurité du script, en particulier dans les environnements où les politiques d'exécution imposent l'utilisation de scripts signés.
6. Comment la signature de scripts PowerShell peut-elle améliorer la sécurité ?
En appliquant la politique d'exécution de PowerShell pour autoriser uniquement l'exécution de scripts signés, les organisations peuvent atténuer les risques associés à l'exécution de code potentiellement malveillant ou non autorisé. Cela permet d'empêcher les modifications non autorisées et garantit que seuls les scripts fiables sont exécutés sur le système.
7. Puis-je signer des scripts PowerShell avec un certificat auto-signé ?
Oui, bien que cela ne soit pas recommandé pour les environnements de production, vous pouvez utiliser un certificat auto-signé à des fins de test. Cependant, il est conseillé d'utiliser un certificat de signature de code fiable provenant d'une autorité de certification réputée pour garantir l'authenticité et l'intégrité de vos scripts.
8. Où puis-je obtenir un certificat de signature de code ?
Les certificats de signature de code peuvent être obtenus auprès d'autorités de certification de confiance ou créés sous forme de certificats auto-signés à des fins de test. Il est essentiel de choisir une autorité de certification réputée pour garantir la fiabilité de vos certificats.
9. Quels sont les avantages de l'utilisation d'un certificat de signature de code de confiance ?
L'utilisation d'un certificat de signature de code fiable garantit l'origine et l'intégrité du script, améliorant ainsi la confiance et la sécurité lors de l'exécution de scripts PowerShell. Il permet d'établir l'authenticité du script et garantit qu'il n'a pas été altéré depuis sa signature.
dix. Existe-t-il des méthodes alternatives pour corriger l'erreur « Le script PowerShell n'est pas signé numériquement » ?
Bien que la modification de la politique d'exécution soit une solution courante, vous pouvez également signer vos scripts PowerShell avec un certificat de signature de code fiable. Cela offre une approche plus sécurisée en garantissant l'authenticité et l'intégrité des scripts, atténuant ainsi le risque d'exécution de code malveillant ou non autorisé.
11. Les scripts PowerShell signés numériquement peuvent-ils s'exécuter sous n'importe quelle politique d'exécution ?
Oui, les scripts signés numériquement peuvent s'exécuter selon des politiques d'exécution spécifiques telles que « AllSigned » ou « RemoteSigned ». Ces politiques exigent que tous les scripts, y compris les scripts distants, soient signés par un éditeur de confiance avant de pouvoir être exécutés. Cela garantit un niveau plus élevé de sécurité et de confiance dans l’exécution des scripts.
12. La signature des scripts PowerShell est-elle obligatoire pour tous les utilisateurs ?
Bien que la signature des scripts PowerShell ne soit pas obligatoire, elle est fortement recommandée pour améliorer la sécurité, en particulier dans les environnements où les politiques d'exécution imposent l'utilisation de scripts signés. La signature des scripts permet de vérifier leur authenticité et leur intégrité, garantissant ainsi qu'ils n'ont pas été falsifiés depuis leur signature.