Anavem
Languageen
administrative templatesConfiguration ordinateurNon configuré

Turn Off Windows PowerShell 2.0

PowerShell 2.0 does not support logging or AMSI. Attackers use it to bypass PS5 security controls. Disable via Windows Features.

10 mai 20264 min
Chemin de la stratégie
Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Supporté sur
Windows 10, Windows 11, Windows Server 2016 and later

PowerShell 2.0 does not support logging or AMSI. Attackers use it to bypass PS5 security controls. Disable via Windows Features. Les référentiels de sécurité recommandent de le définir sur Disable via Windows Features.

Description

Turn Off Windows PowerShell 2.0 est un paramètre de stratégie de groupe Windows situé sous Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell. Il s'applique à la branche Configuration ordinateur et est classé comme une stratégie de niveau Critique dans la catégorie PowerShell.

PowerShell 2.0 does not support logging or AMSI. Attackers use it to bypass PS5 security controls. Disable via Windows Features.

La valeur par défaut Microsoft est Not configured tandis que les référentiels de sécurité (CIS, NIST, DISA STIG) recommandent Disable via Windows Features.

Techniquement, cette stratégie est appliquée via le registre Windows dans HKLM\Software\Policies\Microsoft\Windows\PowerShell via la valeur EnableScripts. Modifier directement la valeur avec regedit.exe ou PowerShell produit le même résultat que la configuration GPO, mais passer par les stratégies de groupe est préférable pour bénéficier d'une gestion centralisée et d'une persistance lors des redémarrages, reconstructions d'images et cycles de rafraîchissement.

Explication détaillée

Ce paramètre est un contrôle de sécurité critique. Une mauvaise configuration ouvre un chemin d'attaque exploité activement par les attaquants, et un seul endpoint oublié peut compromettre la totalité du parc. À traiter comme une exigence de base non négociable, pas comme un réglage optionnel.

Cette stratégie est regroupée dans la catégorie PowerShell, ce qui signifie qu'elle est généralement appliquée via une GPO de domaine liée au niveau d'une OU. Dans un contexte MSP multi-tenant, ciblez-la via des filtres WMI ou des groupes de sécurité plutôt qu'en l'attachant à la racine du domaine, pour pouvoir déployer progressivement (OU pilote → anneaux plus larges → production complète).

Le paramètre prend effet après le prochain rafraîchissement des stratégies de groupe (gpupdate /force pour un test immédiat, ou par défaut sous 90 minutes environ sur un poste et ~5 minutes sur un contrôleur de domaine). Pour une stratégie ordinateur, un redémarrage peut être nécessaire ; pour une stratégie utilisateur, une déconnexion/reconnexion suffit.

Cas d'usage

  • Durcir à l'échelle de l'organisation la catégorie powershell sur tous les postes Windows joints au domaine.
  • Déployer un baseline aligné CIS Benchmark visant 'Turn Off Windows PowerShell 2.0' via une GPO dédiée.
  • Réduire la surface d'attaque des comptes manipulant des identifiants privilégiés ou des données sensibles.
  • Standardiser la configuration sur plusieurs tenants clients dans un parc géré en MSP.

Implications sécurité

Ne pas appliquer cette stratégie crée un chemin d'attaque documenté que les attaquants sondent activement – Pass-the-Hash, Kerberoasting, NTLM relay, brute-force RDP, dump LSASS ou usurpation de token selon le contrôle concerné. Un seul endpoint mal configuré peut suffire à pivoter vers une compromission Domain Admin.

Si la valeur par défaut doit être conservée pour une raison de compatibilité légitime, compensez par une règle de détection forte dans l'EDR/SIEM, isolez l'endpoint dans son propre VLAN et documentez l'exception avec une date cible de remédiation.

Comment configurer

  1. Ouvrez la Console de gestion des stratégies de groupe (gpmc.msc) sur un contrôleur de domaine ou un poste disposant des outils RSAT.
  2. Créez ou éditez une GPO liée à l'OU contenant les configuration ordinateurs cibles. Nous recommandons une GPO de baseline dédiée (ex. SEC – PowerShell) plutôt que de modifier la Default Domain Policy.
  3. Naviguez vers Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell.
  4. Ouvrez Turn Off Windows PowerShell 2.0 et définissez-le sur Disable via Windows Features.
  5. Cliquez sur OK et fermez l'éditeur.
  6. Sur le poste cible, exécutez gpupdate /force (ou attendez le prochain cycle), puis vérifiez avec rsop.msc ou gpresult /h rapport.html.

Chemin direct registre : HKLM\Software\Policies\Microsoft\Windows\PowerShell\EnableScripts. Vous pouvez appliquer le même changement en PowerShell :

New-Item -Path 'HKLM\Software\Policies\Microsoft\Windows\PowerShell' -Force | Out-Null
Set-ItemProperty -Path 'HKLM\Software\Policies\Microsoft\Windows\PowerShell' -Name 'EnableScripts' -Value <valeur> -Type DWord

Correspondance registre

Chemin de registreHKLM\Software\Policies\Microsoft\Windows\PowerShell
Nom de la valeurEnableScripts
Type de valeurREG_DWORD
Valeur ActivéDisable via Windows Features
Valeur DésactivéNot configured

Questions fréquentes

Que fait la stratégie de groupe Turn Off Windows PowerShell 2.0 ?
PowerShell 2.0 does not support logging or AMSI. Attackers use it to bypass PS5 security controls. Disable via Windows Features.
Où trouver ce paramètre dans l'éditeur de GPO ?
Ouvrez <code>gpmc.msc</code>, naviguez vers <code>Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell</code> et cherchez <strong>Turn Off Windows PowerShell 2.0</strong>.
Quelle est la valeur par défaut Microsoft ?
<code>Not configured</code> sur une installation Windows neuve. Les machines jointes au domaine peuvent hériter d'une autre valeur si une GPO de baseline est déjà en place.
Quelle valeur les référentiels de sécurité recommandent-ils ?
<code>Disable via Windows Features</code> – aligné avec les guides CIS, NIST et DISA STIG pour les versions Windows actuelles.
Puis-je configurer ce paramètre sans GPO ?
Oui, en écrivant directement dans <code>HKLM\Software\Policies\Microsoft\Windows\PowerShell\EnableScripts</code> via <code>regedit</code>, PowerShell ou Intune. Une GPO reste préférable en environnement géré centralement car elle survit aux réinstallations et facilite l'audit.