Accueil
» WINDOWS
»
Comment résoudre le problème « L’exécution de scripts est désactivée sur ce système » dans PowerShell sous Windows 10 ?
Comment résoudre le problème « L’exécution de scripts est désactivée sur ce système » dans PowerShell sous Windows 10 ?
Pour corriger l’erreur « L’exécution de scripts est désactivée sur ce système » sur un PC Windows 10 personnel, configurez PowerShell en mode RemoteSigned pour votre compte utilisateur , puis exécutez le script depuis son dossier. Ouvrez Windows PowerShell et saisissez :
Confirmez la modification lorsque vous y êtes invité. Ceci s'applique uniquement à votre compte Windows et ne nécessite pas d'interface d'administration. Si vous n'avez besoin d'exécuter un script de confiance qu'une seule fois, utilisez plutôt l'option de session temporaire ci-dessous.
1. Vérifiez quelle stratégie d'exécution bloque le script.
Dans la même application PowerShell où vous avez constaté l'erreur, exécutez :
Get-ExecutionPolicy -List
La commande liste les stratégies de stratégie de groupe, de session en cours, de votre compte et de l'ordinateur. RestrictedElle autorise les commandes individuelles mais bloque les fichiers de script ; il s'agit de la stratégie par défaut pour les ordinateurs clients Windows lorsqu'aucune autre stratégie n'est définie. PowerShell utilise le paramètre le plus spécifique applicable, les paramètres de stratégie de groupe étant prioritaires.
Vérifiez les étendues répertoriées avant de modifier une politique.
La stratégie d'exécution est une mesure de sécurité qui empêche l'exécution involontaire de scripts. Microsoft la décrit toutefois comme une défense en profondeur plutôt que comme un périmètre de sécurité. Un script peut néanmoins être malveillant ; il est donc important d'examiner son code et de vérifier sa source avant de l'exécuter. Consultez le guide de Microsoft sur la stratégie d'exécution de Windows PowerShell 5.1 .
2. Autorisez les scripts locaux pour votre compte
Pour les scripts que vous créez ou auxquels vous faites confiance, définissez la stratégie au niveau utilisateur surRemoteSigned :
Lorsque PowerShell vous demande si vous souhaitez modifier la stratégie d'exécution, saisissez la commande Yet appuyez sur Entrée pour continuer. La modification est prise en compte immédiatement ; il n'est pas nécessaire de redémarrer PowerShell. Cette modification CurrentUseraffecte uniquement votre compte et évite de modifier la portée par défaut LocalMachine, qui s'applique à tous les utilisateurs et nécessite une fenêtre PowerShell avec élévation de privilèges.
Confirmez la modification RemoteSigned (compte uniquement) lorsque vous y êtes invité.
RemoteSignedAutorise les scripts locaux non marqués comme téléchargements Internet. Exige que les scripts téléchargés possèdent une signature numérique de confiance, sauf si vous débloquez délibérément un fichier spécifique. Évitez de modifier cette politique de Unrestrictedmanière Bypassgénérale : ces paramètres permettent l’exécution d’un plus grand nombre de scripts avec moins d’avertissements.
3. Exécutez le script depuis son dossier
Accédez au dossier contenant le .ps1fichier, puis ajoutez ./`\` (ou le symbole `\` de style Windows .\) avant son nom. Par exemple :
Set-Location 'C:\Scripts'
.\MyScript.ps1
PowerShell n'exécute pas automatiquement un fichier du répertoire courant lorsque vous saisissez uniquement son nom. Si le chemin contient des espaces ou si vous l'exécutez depuis un autre dossier, utilisez l'opérateur d'appel et placez le chemin complet entre guillemets :
& 'C:\Scripts\My Script.ps1'
Vérifiez la politique en vigueur, puis appelez le script en utilisant son chemin d'accès.
4. Si un script téléchargé est toujours bloqué
Avec cette RemoteSignedpolitique, un script non signé téléchargé depuis Internet peut rester bloqué même après modification de la politique. Commencez par examiner le script et vérifiez que vous faites confiance à sa source. Si c'est le cas, débloquez uniquement ce fichier.
Utilisez le chemin d'accès correct si le fichier se trouve ailleurs. Unblock-FileCette commande supprime l'indicateur de téléchargement Internet du fichier ; elle n'inspecte pas le code et ne sécurise pas un script non sécurisé. Microsoft documente ce comportement dans la documentation de référence de la commande Unblock-File pour Windows PowerShell 5.1 .
Débloquez uniquement un fichier vérifié dont vous faites confiance à la source.
Utilisez une politique temporaire pour une session.
Si vous ne souhaitez pas appliquer un paramètre permanent par utilisateur, fermez la fenêtre PowerShell actuelle et ouvrez-en une nouvelle. Exécutez ensuite la commande suivante avant le script :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Cette Processétendue s'applique uniquement à la session PowerShell en cours et à ses processus enfants ; la fermeture de la fenêtre la supprime. RemoteSignedDes règles restent toutefois en vigueur : un fichier téléchargé non signé peut nécessiter une vérification et un déblocage individuel. La documentation de Set-ExecutionPolicy explique les étendues et les valeurs de stratégie disponibles.
Si l'erreur persiste
Exécutez cette commande Get-ExecutionPolicypour consulter la stratégie en vigueur et Get-ExecutionPolicy -Listidentifier les éléments qui la régissent. Si MachinePolicyune valeur UserPolicyest définie, l'exécution des scripts est contrôlée par la stratégie de groupe de l'organisation. Ne tentez pas de la modifier ; contactez votre administrateur.
Assurez-vous d'avoir modifié la stratégie dans la même édition de PowerShell que celle utilisée pour exécuter le script. Windows PowerShell 5.1 powershell.exeet PowerShell 7 pwsh.exestockent les paramètres de stratégie séparément.
Si vous souhaitez supprimer ultérieurement la modification par utilisateur, exécutez la commande suivante Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser. Cela efface uniquement le CurrentUserparamètre ; la stratégie effective est rétablie à une autre étendue configurée ou, si aucune n’existe sous Windows 10, à l’étendue par défaut Restricted.
Pour la plupart des systèmes personnels Windows 10, RemoteSignedil CurrentUsersuffit d'exécuter des scripts locaux tout en conservant une vérification des scripts marqués comme téléchargés. Limitez le périmètre d'exécution, vérifiez le code inconnu et laissez la gestion centralisée des paramètres à votre administrateur informatique.