PowerShell est un outil incontournable pour automatiser et gérer efficacement les environnements Windows et Microsoft 365. Pourtant, la lecture et l’exécution de scripts ne sont pas activées par défaut, une mesure de sécurité visant à éviter les manipulations malveillantes. Comment alors jongler entre facilité d’usage et contrôle d’accès pour sécuriser l’exécution des scripts ? Cet article décrypte les différentes politiques d’exécution disponibles, leur impact réel, ainsi que les bonnes pratiques pour une configuration sécurisée et maîtrisée de PowerShell, indispensable en 2026 pour toute administration sérieuse.
L’article en bref
Comprendre comment activer l’exécution des scripts PowerShell sans compromettre la sécurité est essentiel pour une gestion fiable des environnements modernes.
- Choix de la politique adaptée : comprendre les niveaux Restricted, RemoteSigned, et Unrestricted
- Contrôle précis des risques : utilisation des niveaux d’impact et variable $ConfirmPreference
- Sécurisation par signature : créer et gérer des scripts signés pour renforcer la confiance
- Intégration en contexte Microsoft 365 : adapter la configuration aux exigences cloud et sécurité renforcée
Une exécution contrôlée des scripts PowerShell est la clé pour allier efficacité et sécurité dans la gestion IT.
Comprendre les politiques d’exécution PowerShell pour une activation sécurisée
Par défaut, Windows sécurise l’environnement PowerShell en bloquant toute exécution de script via la politique Restricted. Cette précaution empêche les scripts malveillants de s’exécuter sans consentement, mais limite les usages pratiques. Pour passer outre, plusieurs options permettent d’ajuster ce contrôle selon ses besoins et son environnement professionnel.
Voici un panorama des principales politiques d’exécution PowerShell :
- Restricted : blocage total des scripts ; seule la console interactive fonctionne.
- AllSigned : tous les scripts, même locaux, doivent être signés par un éditeur reconnu.
- RemoteSigned : les scripts locaux s’exécutent librement, mais ceux téléchargés sur Internet doivent être signés.
- Unrestricted : tous les scripts s’exécutent, mais ceux téléchargés déclenchent un avertissement.
- Bypass : aucune restriction, aucun avertissement — réservé aux environnements très contrôlés.
- Undefined : supprime la politique locale, laissant place à celle définie par la stratégie de groupe.
En milieu professionnel, notamment avec l’essor des menaces en 2026, il est conseillé de privilégier RemoteSigned ou AllSigned. Cela évite une activation trop laxiste comme avec Unrestricted, qui peut être un terrain propice aux attaques, surtout si les scripts sont acquis en ligne.

Contrôler l’exécution des scripts sans freiner la productivité
La gestion des scripts ne s’arrête pas à l’activation via les politiques. PowerShell propose également un système de niveaux d’impact qui catégorise les actions selon leur potentiel de risque :
| Niveau d’impact | Description | Exemple | Comportement par défaut |
|---|---|---|---|
| Low | Actions à faible risque, sans impact critique | Modification de description de service, rapports | Pas de confirmation requise |
| Medium | Actions pouvant impacter temporairement les services | Arrêt ou redémarrage d’un service | Confirmation possible selon configuration |
| High | Actions critiques pouvant affecter la stabilité ou la sécurité | Redémarrage de la machine, suppression d’utilisateur | Demande systématique de confirmation |
La variable PowerShell $ConfirmPreference permet d’ajuster la granularité des demandes de confirmation avant l’exécution de commandes à fort impact. Par exemple, en positionnant la valeur à « Medium », on force un contrôle sur les actions sensibles sans ralentir toutes les opérations triviales.
Signatures numériques : renforcer la confiance lors de l’exécution de scripts
La signature des scripts, bien souvent négligée dans les petites structures, devient un garde-fou essentiel à l’échelle d’une entreprise. La création d’un certificat auto-signé via PowerShell permet de garantir l’intégrité et l’authenticité des scripts avant de leur permettre de s’exécuter.
Le processus typique consiste à :
- Créer un certificat auto-signé dédié à la signature de scripts, avec
New-SelfSignedCertificate. - Exporter ce certificat pour une distribution sécurisée.
- Signer les scripts à l’aide de
Set-AuthenticodeSignatureet le certificat généré. - Vérifier la signature avant l’exécution, et résigner les scripts après toute modification.
Au-delà de l’intégrité, cette approche facilite la gestion centralisée des scripts approuvés et réduit la fenêtre d’attaque liée à l’exécution de scripts inconnus ou modifiés, particulièrement dans des contextes critiques comme la gestion de Microsoft 365. Pour savoir comment gérer efficacement vos variables dans PowerShell lors de ces processus, n’hésitez pas à consulter ce guide complet sur la gestion des variables PowerShell.
Adapter la politique d’exécution au contexte Microsoft 365
Dans l’écosystème Microsoft 365, l’utilisation de PowerShell passe souvent par des modules spécifiques et l’exécution de scripts nécessitant une configuration sécurisée stricte. Avec des actions touchant aux données utilisateur ou aux disponibilités des services, la politique RemoteSigned apparaît comme un compromis équilibré.
Les administrateurs doivent impérativement :
- S’assurer que les scripts d’administration soient signés ou exécutés dans des environnements contrôlés.
- Configurer les politiques de groupe ou Active Directory pour imposer les paramètres de sécurité.
- Utiliser la variable
$ConfirmPreferencepour maximiser la vigilance sur les actions à fort impact. - Recourir au paramètre
-Confirm:$falseuniquement dans des scénarios d’automatisation sécurisés.
Activation sécurisée des scripts PowerShell : guidage pas à pas
L’activation de l’exécution des scripts PowerShell s’effectue généralement via la console avec les droits administrateur. Cette étape essentielle garantit que la machine n’exécute que les scripts selon la politique définie :
- Lancer PowerShell en mode Administrateur via le menu Démarrer pour disposer des droits nécessaires.
- Vérifier la politique actuelle avec :
Get-ExecutionPolicy. - Modifier la politique avec la commande :
Set-ExecutionPolicy RemoteSigned(ou un autre paramètre en fonction du besoin). - Confirmer la modification lorsque demandé.
Ce contrôle évite l’activation globale non réfléchie, vectorisant souvent les incidents. Sur la console 64 bits, les politiques s’appliquent indépendamment sur les deux versions, attention à bien configurer les deux si nécessaire.
Les précautions à ne pas négliger pour un PowerShell sécurisé
La puissance de PowerShell impose des contraintes de sécurité rigoureuses. Quelques conseils pratiques :
- Éviter l’activation Unrestricted en production sans surveillance.
- Privilégier les scripts signés avec des certificats valides.
- Configurer les niveaux d’impact et la variable $ConfirmPreference pour limiter les erreurs humaines.
- Audit régulier des scripts exécutés, notamment par rapport aux dernières vulnérabilités (cf. CVE 2025).
Pourquoi PowerShell bloque-t-il par défaut l’exécution des scripts ?
Par défaut, PowerShell bloque l’exécution des scripts pour limiter les risques liés aux scripts malveillants, protégeant ainsi le système contre des exécutions non désirées.
Quelle policy choisir pour un usage professionnel sûr ?
RemoteSigned est souvent recommandé car il offre un bon compromis entre sécurité et praticité, en nécessitant une signature pour les scripts téléchargés uniquement.
Comment créer un certificat pour signer mes scripts ?
Utilisez la commande New-SelfSignedCertificate dans PowerShell pour créer un certificat auto-signé dédié à la signature des scripts.
Que fait la variable $ConfirmPreference ?
Elle contrôle quand PowerShell demande une confirmation avant une action, selon le niveau d’impact de cette action (Low, Medium, High).




