Aller au contenu

Zero Trust et GPO : le futur de la configuration

Ce que couvre ce chapitre

  • Comprendre pourquoi Zero Trust ne remplace pas les GPO mais redéfinit leur rôle dans une stratégie de sécurité globale
  • Identifier les contrôles GPO qui contribuent directement aux trois principes ZT — Verify Explicitly, Use Least Privilege, Assume Breach
  • Configurer Credential Guard, WDAC, les règles ASR, BitLocker et LAPS dans une logique Zero Trust, avec les event IDs à surveiller
  • Construire une architecture hybride GPO + Intune qui atteint la vérification d'état de conformité au niveau du poste
  • Lire la roadmap de modernisation : ce que les GPO feront toujours mieux que MDM, et le chemin vers Settings Catalog

Si vous ne retenez qu'une chose

Zero Trust n'est pas une technologie — c'est un principe de vérification continue. Les GPO sont un outil de configuration, pas de vérification. Elles restent essentielles pour durcir l'OS. Mais atteindre le Zero Trust complet requiert d'ajouter une couche de vérification d'identité et d'état (Intune + Conditional Access) au-dessus des GPO, pas à leur place.


Zero Trust et GPO : deux logiques différentes

Le modèle château-fort des GPO

Les GPO ont été conçues dans un modèle périmétrique.

La machine est jointe au domaine — on lui fait confiance. Elle reçoit des politiques au démarrage et à l'ouverture de session. Une fois dans le périmètre, la confiance est implicite.

C'est la logique du château-fort : le pont-levis (l'authentification AD) filtre les entrées. Tout ce qui est à l'intérieur est considéré comme sûr.

Zero Trust remet en question cette logique

Le modèle Zero Trust part d'un postulat inverse : ne jamais faire confiance, toujours vérifier.

Peu importe si la machine est sur le réseau interne. Peu importe si elle est jointe au domaine. L'accès à une ressource doit être conditionné à une vérification explicite : qui est l'utilisateur, dans quel état est son poste, depuis quel contexte tente-t-il d'accéder.

Les trois principes fondateurs :

Principe ZT Signification concrète
Verify Explicitly Authentifier et autoriser toujours, en tenant compte de tous les signaux disponibles
Use Least Privilege Limiter l'accès utilisateur au strict nécessaire, avec JIT et JEA quand possible
Assume Breach Concevoir les contrôles en partant du principe que l'attaquant est déjà à l'intérieur

GPO restent pertinentes — mais leur rôle change

La distinction fondamentale

Zero Trust est une stratégie de vérification. La gestion de configuration OS est un prérequis de cette vérification. Durcir un poste via GPO n'est pas contraire au Zero Trust — c'est une condition nécessaire mais insuffisante.

Les GPO continuent d'avoir un rôle central pour :

  • La configuration de l'OS : Credential Guard, BitLocker, ASR, restrictions de démarrage
  • Le durcissement AD côté DC : Kerberos policy, NTLM restrictions, audit de sécurité
  • Les politiques core AD : ces politiques ne peuvent pas être déployées par MDM

Ce qui manque aux GPO seules : elles ne vérifient pas dynamiquement l'état du poste au moment d'une demande d'accès. Elles configurent, mais ne conditionnent pas.

En résumé

  • Les GPO opèrent dans une logique périmétrique — la confiance est accordée à la jonction de domaine
  • Zero Trust exige une vérification continue, indépendante de l'appartenance réseau
  • Les GPO restent le meilleur outil de configuration OS et de durcissement AD
  • Le Zero Trust complet requiert une couche de vérification supplémentaire (Intune + Conditional Access)

Contributions des GPO au Zero Trust

La carte de correspondance GPO → principe ZT

Chaque contrôle GPO peut être mappé sur l'un des trois principes Zero Trust. Le tableau ci-dessous est la colonne vertébrale de ce chapitre.

Principe ZT Contrôle GPO Ce qu'il prévient
Assume Breach Credential Guard Vol de credentials NTLM/Kerberos par dump LSASS
Assume Breach WDAC (Windows Defender Application Control) Exécution de code non autorisé, binaires malveillants
Assume Breach ASR Rules Vecteurs d'exploitation connus (macros, scripts, LSASS)
Verify Explicitly BitLocker + TPM Accès aux données sur machine physiquement compromise
Use Least Privilege LAPS v2 Mouvement latéral via compte administrateur local partagé
Verify Explicitly Windows Hello for Business Authentification forte sans mot de passe
Assume Breach Audit et Event Forwarding Détection post-incident, visibilité sur les indicateurs de compromission

Les sections suivantes détaillent chaque contrôle avec son chemin GPO, sa valeur de registre et l'event ID à surveiller.

En résumé

  • Chaque contrôle GPO peut être mappé sur l'un des trois principes Zero Trust.
  • Le tableau ci-dessous est la colonne vertébrale de ce chapitre.
  • Les sections suivantes détaillent chaque contrôle avec son chemin GPO, sa valeur de registre et l'event ID à surveiller.
  • Assume Breach : Vol de credentials NTLM/Kerberos par dump LSASS.
  • Assume Breach : Exécution de code non autorisé, binaires malveillants.

Credential Guard — principe ZT : Assume Breach

Ce que Credential Guard protège

Credential Guard isole les dérivés de credentials (hachages NTLM, tickets Kerberos) dans un conteneur VBS (Virtualization-Based Security) inaccessible au système d'exploitation principal.

Sans Credential Guard, un attaquant ayant obtenu les droits SYSTEM peut exécuter Mimikatz et extraire les credentials de tous les utilisateurs connectés depuis lsass.exe. C'est le vecteur de mouvement latéral le plus courant dans les compromissions AD.

Avec Credential Guard actif, lsass.exe ne contient plus les dérivés — ils sont dans le conteneur VBS. L'extraction échoue.

Prérequis matériels et OS

Prérequis Valeur requise
UEFI Secure Boot Activé
TPM 2.0 Présent et activé
Virtualisation CPU (Intel VT-x / AMD-V) Activée dans le BIOS
SLAT (Second Level Address Translation) Requis (Intel EPT / AMD RVI)
OS Windows 10 Enterprise/Education 1607+ ou Windows 11
Intégrité du code VBS Activée (HVCI recommandé)

Chemin GPO — Credential Guard

Computer Configuration → Policies → Administrative Templates
  → System → Device Guard
    → Turn On Virtualization Based Security

Paramètres à configurer dans cette GPO :

Paramètre Valeur recommandée
Select Platform Security Level Secure Boot and DMA Protection
Virtualization Based Protection of Code Integrity Enabled with UEFI lock
Credential Guard Configuration Enabled with UEFI lock
Secure Launch Configuration Enabled

UEFI lock — irréversible sans accès physique

Le mode "Enabled with UEFI lock" écrit la configuration dans les variables UEFI du firmware. Pour désactiver Credential Guard ensuite, il faut accès physique à la machine et passage dans le BIOS. En production, utilisez d'abord le mode "Enabled without lock" sur un groupe pilote, puis basculez en UEFI lock après validation.

Vérification post-déploiement

Verify-CredentialGuard.ps1
# Verify Credential Guard activation status on remote machines
param(
    [string[]]$Computers = @($env:COMPUTERNAME)
)

foreach ($computer in $Computers) {
    $result = Invoke-Command -ComputerName $computer -ScriptBlock {
        $vbs  = Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
        $cgRunning = $vbs.SecurityServicesRunning -contains 1   # 1 = Credential Guard
        $cgConfig  = $vbs.SecurityServicesConfigured -contains 1

        [PSCustomObject]@{
            Computer             = $env:COMPUTERNAME
            VBSEnabled           = $vbs.VirtualizationBasedSecurityStatus -eq 2  # 2 = Running
            CredGuardConfigured  = $cgConfig
            CredGuardRunning     = $cgRunning
            SecureBootState      = $vbs.RequiredSecurityProperties -contains 1
        }
    } -ErrorAction SilentlyContinue

    $result
}
Résultat attendu
Computer    VBSEnabled  CredGuardConfigured  CredGuardRunning  SecureBootState
--------    ----------  -------------------  ----------------  ---------------
WKS-001     True        True                 True              True
WKS-002     True        True                 False             True    # config OK mais pas encore actif — reboot requis
WKS-003     False       False                False             False   # matériel non compatible

Event IDs à surveiller

Event ID Source Signification
3065 Microsoft-Windows-Kernel-Boot VBS activé au démarrage
3066 Microsoft-Windows-Kernel-Boot VBS — service de sécurité démarré
3033 Microsoft-Windows-CodeIntegrity Pilote refusé par HVCI
3063 Microsoft-Windows-CodeIntegrity Tentative de chargement de pilote non signé

En résumé

  • Credential Guard isole les dérivés NTLM/Kerberos dans un conteneur VBS — Mimikatz ne peut plus les extraire
  • GPO : System → Device Guard → Turn On Virtualization Based Security — Credential Guard : Enabled with UEFI lock
  • Vérifiez avec Win32_DeviceGuard : SecurityServicesRunning doit contenir 1
  • Event IDs : 3065/3066 pour VBS, 3033/3063 pour HVCI

WDAC — principe ZT : Assume Breach

Application Control comme brique Zero Trust

WDAC (Windows Defender Application Control) est le successeur d'AppLocker pour le contrôle d'exécution.

Son principe Zero Trust : ne jamais exécuter ce qui n'est pas explicitement autorisé. C'est l'implémentation technique de "Assume Breach" — même si un attaquant obtient un foothold, il ne peut pas exécuter ses outils si ceux-ci ne sont pas dans la liste blanche.

WDAC opère en mode kernel via le service CI (Code Integrity). Il est plus robuste qu'AppLocker car il ne peut pas être contourné par un processus en espace utilisateur.

Architecture d'une politique WDAC

Une politique WDAC définit :

  • Les fichiers autorisés : par signature, par chemin, par hash, par attribut de fichier
  • Les éditeurs de confiance : Microsoft, éditeurs tiers signés
  • Les modes d'opération : Audit (journalise), Enforce (bloque)

La politique est compilée en fichier binaire (.cip) et déployée via GPO ou MDM.

Chemin GPO — déploiement WDAC

Computer Configuration → Policies → Administrative Templates
  → System → Device Guard
    → Deploy Windows Defender Application Control

Paramètre : Deploy Windows Defender Application Control → chemin UNC vers le fichier .cip.

\\domain.local\NETLOGON\WDAC\{PolicyId}.cip

Créer la politique de base

Microsoft fournit des politiques de base dans C:\Windows\schemas\CodeIntegrity\ExamplePolicies\. La politique DefaultWindows_Audit.xml est le point de départ recommandé — elle autorise tout ce qui est signé Microsoft. Compilez-la avec ConvertFrom-CIPolicy, déployez en mode Audit, analysez les événements 3076 pendant deux semaines, puis passez en Enforce.

Générer et déployer une politique WDAC de base

Deploy-WDACBaselinePolicy.ps1
# Generate a WDAC policy based on Microsoft's DefaultWindows baseline (Audit mode first)
# Requires: Windows 10 1903+ or Windows 11 — run on a reference machine

param(
    [string]$PolicyDir      = "C:\WDAC\Policies",
    [string]$SharePath      = "\\domain.local\NETLOGON\WDAC",
    [switch]$EnforceMode    = $false  # Start in Audit mode — set to $true only after audit validation
)

if (-not (Test-Path $PolicyDir)) { New-Item -ItemType Directory -Path $PolicyDir | Out-Null }

$baselineXml  = "C:\Windows\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml"
$workingXml   = "$PolicyDir\WDAC-Baseline.xml"
$compiledCip  = "$PolicyDir\WDAC-Baseline.cip"

# Copy baseline policy
Copy-Item $baselineXml $workingXml -Force

if ($EnforceMode) {
    # Switch to Enforce mode — use only after audit validation
    Set-RuleOption -FilePath $workingXml -Option 3 -Delete  # Remove Audit Mode option
    Write-Host "Policy set to ENFORCE mode."
} else {
    Set-RuleOption -FilePath $workingXml -Option 3           # Ensure Audit Mode is set
    Write-Host "Policy set to AUDIT mode."
}

# Retrieve Policy ID from XML
$policyId = ([xml](Get-Content $workingXml)).SiPolicy.PolicyID -replace '[{}]'

# Compile policy
ConvertFrom-CIPolicy -XmlFilePath $workingXml -BinaryFilePath $compiledCip

# Deploy to NETLOGON share
if (-not (Test-Path $SharePath)) { New-Item -ItemType Directory -Path $SharePath | Out-Null }
Copy-Item $compiledCip "$SharePath\$policyId.cip" -Force

Write-Host "WDAC policy deployed: $SharePath\$policyId.cip"
Write-Host "Now configure GPO: Computer Config > Administrative Templates > System > Device Guard"
Write-Host "  -> 'Deploy Windows Defender Application Control' = $SharePath\$policyId.cip"

Event IDs à surveiller

Event ID Source Mode Signification
3076 Microsoft-Windows-CodeIntegrity/Operational Audit Fichier qui aurait été bloqué en Enforce
3077 Microsoft-Windows-CodeIntegrity/Operational Enforce Fichier bloqué par la politique
3089 Microsoft-Windows-CodeIntegrity/Operational Audit/Enforce Fichier autorisé par la politique
3099 Microsoft-Windows-CodeIntegrity/Operational Politique WDAC chargée au démarrage

En résumé

  • WDAC bloque l'exécution de tout binaire non autorisé — implémentation technique de "Assume Breach"
  • GPO : System → Device Guard → Deploy Windows Defender Application Control → chemin UNC vers .cip
  • Toujours démarrer en mode Audit (event 3076) — analyser deux semaines avant Enforce
  • Microsoft fournit des politiques de base dans C:\Windows\schemas\CodeIntegrity\ExamplePolicies\

ASR Rules — principe ZT : Assume Breach

ASR comme filet de sécurité comportemental

Les règles ASR (Attack Surface Reduction) sont détaillées dans le chapitre 14. Dans un contexte Zero Trust, leur rôle est précis : bloquer les vecteurs d'exploitation les plus courants avant qu'un code malveillant puisse s'exécuter.

ASR opère sur des comportements — une macro Office qui tente de lancer cmd.exe, un script PowerShell obfusqué, une tentative de dump de LSASS. Ces comportements sont des indicateurs de compromission en cours.

Les règles ASR à priorité ZT

Dans un projet Zero Trust, certaines règles ASR ont une priorité immédiate :

GUID Règle Principe ZT Event Block / Audit
9E6C4E1F-7D60-472F-BA1A-A39EF669E4B0 Block credential stealing from LSASS Assume Breach 1121 / 1122
D1E49AAC-8F56-4280-B9BA-993A6D77406C Block process creations from PSExec and WMI Assume Breach 1121 / 1122
C1DB55AB-C21A-4637-BB3F-A12568109D35 Advanced protection against ransomware Assume Breach 1121 / 1122
56A863A9-875E-4185-98A7-B882C64B5CE5 Block abuse of exploited vulnerable signed drivers Assume Breach 1121 / 1122
D4F940AB-401B-4EFC-AADC-AD5F3C50688A Block all Office apps from creating child processes Assume Breach 1121 / 1122

Voir le chapitre 14 pour le déploiement complet

Les 16 règles ASR, leurs GUIDs, et la méthodologie de déploiement progressif (Audit puis Block) sont documentés dans le chapitre 14 — Sécurité endpoint via GPO. Ce chapitre se concentre sur leur positionnement dans une stratégie Zero Trust.

En résumé

  • ASR bloque les comportements d'exploitation les plus courants — indépendamment des signatures antivirus
  • Les règles LSASS (9E6C...) et PSExec (D1E4...) sont les priorités ZT pour prévenir le mouvement latéral
  • Déploiement : toujours Audit (mode 2) en premier, Block (mode 1) après validation — voir chapitre 14
  • Event 1121 = bloc effectif, event 1122 = détection en audit

BitLocker — principe ZT : Verify Explicitly

BitLocker et la confiance au niveau du hardware

Dans un modèle Zero Trust, la confiance ne peut pas reposer uniquement sur l'identité réseau. Si une machine est volée ou son disque extrait, les données doivent rester inaccessibles.

BitLocker avec TPM implémente le principe "Verify Explicitly" au niveau matériel : le déchiffrement du volume n'est possible que si la chaîne de démarrage est intacte (UEFI, Secure Boot, bootloader, noyau).

Un attaquant qui extrait le disque et le monte sur une autre machine ne peut pas lire les données — le TPM de la machine source est absent.

Le lien BitLocker → Conditional Access

BitLocker est également un signal de conformité exploitable par Intune et Conditional Access.

Une politique Conditional Access peut conditionner l'accès à une ressource cloud (Exchange Online, SharePoint) à l'état de chiffrement du poste. Si BitLocker est désactivé, l'accès est bloqué — ou redirigé vers un flux de remédiation.

Ce signal ne remonte que si la machine est co-managée par Intune. La GPO BitLocker chiffre le poste. Intune vérifie l'état et l'expose à Conditional Access.

Déploiement BitLocker complet

Le déploiement complet de BitLocker via GPO — paramètres, script de remédiation au démarrage, vérification de l'escrow AD — est documenté dans le chapitre 17 — BitLocker et LAPS via GPO.

Event IDs BitLocker à surveiller en contexte ZT

Event ID Source Signification ZT
24594 Microsoft-Windows-BitLocker-API/Management Volume chiffré avec succès
24621 Microsoft-Windows-BitLocker-API/Management Clé de récupération sauvegardée dans AD
24620 Microsoft-Windows-BitLocker-API/Management Échec de sauvegarde de la clé — à investiguer immédiatement
853 Microsoft-Windows-BitLocker-Driver Tentative d'accès sans clé valide — tentative d'intrusion physique

En résumé

  • BitLocker + TPM protège les données sur machine physiquement compromise — "Verify Explicitly" au niveau hardware
  • La chaîne TPM garantit que le déchiffrement ne fonctionne que sur la machine d'origine avec la chaîne de démarrage intacte
  • Signal de conformité : Intune peut exposer l'état BitLocker à Conditional Access pour bloquer les postes non chiffrés
  • Event 24620 = clé non sauvegardée dans AD — priorité opérationnelle immédiate

LAPS — principe ZT : Use Least Privilege

Le mouvement latéral par compte administrateur partagé

Dans la majorité des compromissions AD documentées par Microsoft DART, l'un des vecteurs initiaux est le compte administrateur local partagé.

Scénario classique : le compte .\Administrator a le même mot de passe sur 500 postes. L'attaquant compromet un poste, extrait le hash, et peut s'authentifier sur tous les autres avec Pass-the-Hash. Le mouvement latéral est trivial.

LAPS résout ce problème en générant un mot de passe unique par machine, stocké dans AD et accessible uniquement aux opérateurs autorisés.

LAPS v2 — Use Least Privilege natif

Windows LAPS (LAPS v2, intégré depuis Windows 11 22H2 et KB5025175) ajoute par rapport à LAPS v1 :

  • Chiffrement du mot de passe dans AD (attribut msLAPS-EncryptedPassword)
  • Historique des mots de passe (jusqu'à 12 entrées)
  • Rotation automatique post-utilisation
  • Intégration native avec Intune pour les postes AAD-joined

Les paramètres GPO LAPS v2 sont dans :

Computer Configuration → Policies → Administrative Templates
  → System → LAPS
Paramètre LAPS v2 Recommandation ZT
Password Settings → Password Complexity Large letters + small letters + numbers + specials
Password Settings → Password Length 20+ caractères
Password Settings → Password Age (Days) 30 jours maximum
Do not allow password expiration time longer than required by policy Activé
Post-authentication actions Reset password AND log off the managed account (mode 3)
Enable password encryption Activé (LAPS v2 uniquement)

Vérification de la couverture LAPS sur le parc

Get-LAPSCoverage.ps1
# Audit LAPS v2 deployment coverage across the domain
# Reports machines without a LAPS password (either not deployed or attribute empty)
param(
    [string]$SearchBase = (Get-ADDomain).DistinguishedName,
    [int]$MaxPasswordAgeDays = 30
)

$cutoff = (Get-Date).AddDays(-$MaxPasswordAgeDays)

$computers = Get-ADComputer -Filter { OperatingSystem -like "*Windows*" } `
    -SearchBase $SearchBase `
    -Properties msLAPS-PasswordExpirationTime, msLAPS-EncryptedPassword, `
                ms-Mcs-AdmPwdExpirationTime, ms-Mcs-AdmPwd

foreach ($computer in $computers) {
    # Detect LAPS version in use
    $hasLAPSv2  = $null -ne $computer.'msLAPS-EncryptedPassword'
    $hasLAPSv1  = $null -ne $computer.'ms-Mcs-AdmPwd' -and $computer.'ms-Mcs-AdmPwd' -ne ''
    $lapsVersion = if ($hasLAPSv2) { "v2" } elseif ($hasLAPSv1) { "v1" } else { "None" }

    # Check expiration
    $expiration  = if ($hasLAPSv2) {
        $computer.'msLAPS-PasswordExpirationTime'
    } elseif ($hasLAPSv1) {
        $computer.'ms-Mcs-AdmPwdExpirationTime'
    } else { $null }

    $isExpired = $expiration -and ([datetime]::FromFileTime($expiration) -lt $cutoff)

    [PSCustomObject]@{
        Computer    = $computer.Name
        LAPSVersion = $lapsVersion
        HasPassword = ($hasLAPSv2 -or $hasLAPSv1)
        Expired     = $isExpired
        ExpiresAt   = if ($expiration) { [datetime]::FromFileTime($expiration) } else { $null }
    }
} | Sort-Object LAPSVersion, Computer
Résultat attendu
Computer   LAPSVersion  HasPassword  Expired  ExpiresAt
--------   -----------  -----------  -------  ---------
WKS-001    v2           True         False    2026-05-01 07:00:00
WKS-002    v2           True         True     2026-03-01 07:00:00   # rotation en retard
WKS-003    v1           True         False    2026-04-20 08:00:00   # migrer vers v2
WKS-004    None         False        False                          # LAPS non déployé

En résumé

  • LAPS élimine le vecteur Pass-the-Hash en donnant un mot de passe unique par machine — "Use Least Privilege" appliqué au compte local
  • LAPS v2 ajoute le chiffrement AD, l'historique et la rotation post-utilisation — priorité sur v1
  • Paramètre critique : Post-authentication actions = Reset password AND log off — rotation immédiate après toute utilisation
  • Vérifiez la couverture : toute machine LAPSVersion = None est un risque de mouvement latéral actif

Verify Explicitly — le maillon manquant des GPO seules

Ce que les GPO ne font pas

Les GPO configurent le poste. Elles ne vérifient pas l'identité de l'utilisateur au moment d'une demande d'accès.

Une GPO s'applique au démarrage et toutes les 90 minutes. Elle ne sait pas si, entre deux cycles, le poste a été compromis, si l'utilisateur tente d'accéder depuis un réseau non conforme, ou si la session en cours présente des signaux d'anomalie.

"Verify Explicitly" requiert une évaluation dynamique et contextuelle. Les GPO opèrent en batch périodique.

Ce qu'Intune + Conditional Access apportent

Intune ajoute la couche manquante :

  • Conformité continue : Intune évalue l'état du poste (BitLocker, Defender, OS version, WDAC) et génère un signal de conformité en temps réel
  • Conditional Access : Azure AD conditionne l'accès à chaque ressource cloud au signal de conformité Intune
  • Hybrid Join : la machine est à la fois dans AD (GPO s'appliquent) et dans AAD (Intune évalue la conformité)

Le flux complet pour un accès à Exchange Online dans une architecture ZT hybride :

Utilisateur → Demande accès Exchange Online
Azure AD évalue Conditional Access
  Vérifie : identité MFA confirmée ?
  Vérifie : appareil conforme Intune ?
    → BitLocker actif ?
    → Defender actif et à jour ?
    → OS version dans la fenêtre de support ?
    → Aucune app non-conforme ?
  Si tout OK → Accès accordé (token)
  Si non-conforme → Blocage ou redirection remédiation

Architecture hybride GPO + Intune

La coexistence GPO + Intune (co-management) est documentée dans le chapitre 18 — Azure AD Hybrid Join. L'élément clé : la GPO qui bloque MDM doit être absente.

HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\MDM
  DisableMDMEnrollment = 0   (ou clé absente)

Si DisableMDMEnrollment = 1 est présent dans une GPO, le co-management est silencieusement impossible. Intune ne peut pas évaluer la conformité. Conditional Access ne reçoit pas le signal. La boucle ZT est brisée.

Vérifiez cette clé avant tout projet Conditional Access

Check-MDMEnrollmentBlock.ps1
# Check whether a GPO is blocking MDM enrollment across the domain
Get-ADComputer -Filter { OperatingSystem -like "*Windows*" } |
    Select-Object -ExpandProperty Name |
    ForEach-Object {
        $val = Invoke-Command -ComputerName $_ -ScriptBlock {
            (Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\MDM" `
                -Name DisableMDMEnrollment -ErrorAction SilentlyContinue).DisableMDMEnrollment
        } -ErrorAction SilentlyContinue
        [PSCustomObject]@{ Computer = $_; MDMBlocked = ($val -eq 1) }
    } | Where-Object MDMBlocked

En résumé

  • Les GPO ne peuvent pas implémenter "Verify Explicitly" seules — elles configurent mais ne vérifient pas dynamiquement
  • Intune + Conditional Access ajoutent la vérification continue de conformité postes et identités
  • Prérequis absolu : DisableMDMEnrollment doit être absent ou à 0 sur tous les postes cibles
  • Le Hybrid Join est le point d'entrée — voir chapitre 18 pour l'implémentation

:material-table-split: Architecture hybride : matrice de responsabilité

Qui gère quoi dans une architecture GPO + Intune + AAD

Dans une architecture Zero Trust hybride mature, les trois outils ont des responsabilités distinctes et non redondantes.

Catégorie de contrôle Outil Méthode Vérification
Configuration OS core (Credential Guard, WDAC) GPO ADMX via GPMC gpresult /r, event logs
Durcissement DC et Kerberos policy GPO Politiques Default Domain / DC Policy Get-ADDefaultDomainPasswordPolicy
BitLocker — chiffrement du volume GPO BitLocker Drive Encryption.admx Get-BitLockerVolume + escrow AD
LAPS — mot de passe local unique GPO LAPS.admx Get-LapsADPassword
ASR Rules — blocage comportemental GPO ou Intune ADMX ou Settings Catalog Event 1121/1122
Conformité postes (état temps réel) Intune Compliance Policy Portail Intune / Graph API
Conditional Access — contrôle d'accès Azure AD Policies CA dans le portail AAD Sign-in logs AAD
Gestion identités et MFA Azure AD Authentication Methods AAD Audit logs
SYSVOL scripts, logon scripts GPO Scripts PowerShell déployés via GPO gpresult, logs applicatifs
Applications legacy (MSI, MSP) GPO (SWI) ou SCCM Software Installation SCCM reporting

Les quatre règles de répartition

Règle 1 : Les GPO gèrent tout ce qui touche à l'infrastructure AD core (DC, Kerberos, NTLM, SYSVOL). Intune ne peut pas toucher aux contrôleurs de domaine.

Règle 2 : Intune gère la conformité et la remédiation des postes cloud-attached. Les GPO gèrent la configuration initiale et les politiques qui doivent s'appliquer hors connexion Internet.

Règle 3 : Évitez la redondance GPO + Intune sur le même paramètre. Le "last writer wins" s'applique au registre — une GPO et une policy Intune qui configurent le même paramètre génèrent des conflits silencieux.

Règle 4 : La source de vérité pour l'état de conformité est Intune. La source de vérité pour la configuration AD est la GPO. Ne les inversez pas.

Pour aller plus loin sur la migration GPO → Intune

La stratégie de migration progressive, l'outil Group Policy Analytics de Microsoft et la gestion des conflits GPO/MDM sont documentés dans le chapitre 19 — Migration GPO vers Intune.

En résumé

  • GPO : configuration OS, durcissement DC, politiques offline — ce qu'Intune ne peut pas faire
  • Intune : conformité temps réel, signal Conditional Access, postes AAD-joined uniquement
  • Azure AD : identité, MFA, Conditional Access — la boucle de vérification dynamique
  • Évitez la double configuration GPO + Intune sur le même paramètre — conflit silencieux garanti

Roadmap de modernisation : GPO → Settings Catalog

La trajectoire Microsoft

Microsoft ne déprécie pas les GPO pour les environnements Active Directory on-premises. Ce point est clair dans la documentation officielle et dans les communications des équipes produit.

La trajectoire réelle est différente : Microsoft investit dans le Settings Catalog d'Intune comme interface de convergence. Les paramètres ADMX sont progressivement répliqués dans le Settings Catalog pour permettre aux environnements cloud-first de gérer les mêmes politiques via MDM.

Ce que cela signifie en pratique : les GPO restent le meilleur outil pour les machines on-prem AD-joined. Le Settings Catalog devient le meilleur outil pour les machines AAD-joined (Intune-only). Pour les environnements hybrides, les deux coexistent.

Ce que les GPO feront toujours mieux que MDM

Ce périmètre ne sera pas remplacé par MDM — horizon 2030+

Certaines fonctionnalités sont structurellement liées à Active Directory et ne peuvent pas être remplacées par MDM :

  • Configuration des contrôleurs de domaine : les DC ne sont pas gérés par Intune
  • Kerberos policy : Computer Configuration → Windows Settings → Security Settings → Account Policies → Kerberos Policy — pas d'équivalent MDM
  • NTLM restrictions : LAN Manager Authentication Level, restrictions NTLM — spécifiques à l'infrastructure AD
  • Fine-Grained Password Policies : gérées via PSO (Password Settings Objects), pas via MDM
  • SYSVOL scripts et logon scripts : les scripts de connexion déployés via GPO n'ont pas d'équivalent Intune complet
  • Filtrage par sécurité et WMI filtering : la granularité de ciblage des GPO n'est pas reproduite dans Intune

Roadmap de migration en cinq étapes

Étape État actuel État cible Outil de migration Horizon
1 — Inventaire GPO existantes non documentées Cartographie complète avec Group Policy Analytics Group Policy Analytics (Intune portal) 1-3 mois
2 — Audit de conformité Paramètres non suivis, no baseline Security Baseline Microsoft déployée Microsoft Security Baseline (GPO + Intune) 1-2 mois
3 — Hybrid Join Machines AD-only Co-management GPO + Intune Azure AD Connect + GPO MDM enrollment 3-6 mois
4 — Migration Settings Catalog GPO ADMX pour paramètres supportés MDM Settings Catalog Intune (postes AAD-joined) Group Policy Analytics + Migration report 6-18 mois
5 — Cloud-first Nouveaux postes GPO + Intune Nouveaux postes Intune-only (AAD-joined) Autopilot + Settings Catalog En continu

Group Policy Analytics — export pour la migration

Export-GPOForMigrationAnalysis.ps1
# Export all GPOs to XML for import into Intune Group Policy Analytics
# Group Policy Analytics identifies which settings are MDM-supported
param(
    [string]$ExportDir = "C:\GPO-Migration-Export",
    [string]$Domain    = (Get-ADDomain).DNSRoot
)

if (-not (Test-Path $ExportDir)) { New-Item -ItemType Directory -Path $ExportDir | Out-Null }

$gpos = Get-GPO -All -Domain $Domain

$report = foreach ($gpo in $gpos) {
    $xmlFile = "$ExportDir\$($gpo.DisplayName -replace '[\\/:*?"<>|]', '_').xml"
    try {
        # Export GPO settings as XML (importable into Group Policy Analytics)
        Get-GPOReport -Guid $gpo.Id -ReportType Xml -Path $xmlFile
        [PSCustomObject]@{
            GPOName  = $gpo.DisplayName
            Status   = "Exported"
            XmlPath  = $xmlFile
            LastMod  = $gpo.ModificationTime
            Linked   = ($gpo.GpoStatus -ne 'AllSettingsDisabled')
        }
    } catch {
        [PSCustomObject]@{
            GPOName  = $gpo.DisplayName
            Status   = "ERROR: $_"
            XmlPath  = $null
            LastMod  = $gpo.ModificationTime
            Linked   = $null
        }
    }
}

$report | Format-Table -AutoSize
Write-Host ""
Write-Host "Total GPOs exported: $(($report | Where-Object Status -eq 'Exported').Count)"
Write-Host "Upload XML files to: Intune portal > Devices > Group Policy Analytics > Import"

Le Settings Catalog comme interface de convergence

Le Settings Catalog d'Intune regroupe aujourd'hui plus de 5 000 paramètres. Microsoft continue d'y ajouter les paramètres ADMX les plus utilisés.

La convergence est réelle, mais partielle. En 2026, le Settings Catalog couvre environ 70% des paramètres GPO courants pour les postes Windows 10/11. Les 30% restants incluent les paramètres DC, les politiques AD core, et les paramètres applicatifs moins courants.

Voir aussi

La convergence MDM/GPO au niveau des standards ADMX est analysée dans La Bible des GPO — Chapitre 25 : MDM et convergence.

En résumé

  • Microsoft ne déprécie pas les GPO pour l'AD on-prem — horizon 2030+ et au-delà
  • Le Settings Catalog est l'interface de convergence pour les postes cloud-first — 70% de couverture en 2026
  • Ce que MDM ne remplacera jamais : configuration DC, Kerberos policy, NTLM restrictions, SYSVOL scripts
  • Roadmap en 5 étapes : inventaire → baseline → Hybrid Join → Settings Catalog → cloud-first

Vision 2026+ et conclusion

Un bilan honnête

Ce livre a été construit autour d'un postulat opérationnel : les GPO ne disparaissent pas, et les maîtriser est une compétence stratégique durable.

Le paysage de 2026 confirme ce postulat.

La majorité des organisations disposent d'un Active Directory actif. Les migrations Intune-only sont encore minoritaires. Et même dans les environnements cloud-first, les GPO restent nécessaires dès qu'un contrôleur de domaine est présent — ne serait-ce que pour Kerberos policy et la configuration des DC eux-mêmes.

La question n'est pas "GPO ou Intune". La question est "quel outil pour quel périmètre".

Ce que ce livre vous a donné

En parcourant ces 25 chapitres, vous avez acquis les outils pour :

  • Concevoir une architecture GPO d'entreprise qui résiste à la croissance et aux audits (chapitres 1 à 7)
  • Déployer les applications métier critiques — Office, navigateurs, Windows Update, RDS, PKI (chapitres 8 à 16)
  • Sécuriser le parc avec BitLocker, LAPS, Credential Guard, ASR, WDAC (chapitres 14, 15, 17)
  • Migrer progressivement vers le cloud sans interruption de service (chapitres 18, 19, 20)
  • Opérer en autonomie : dépannage de terrain, CI/CD, sécurité des GPO elles-mêmes (chapitres 22, 23, 24)

Ce que Zero Trust change pour votre pratique

Zero Trust n'invalide pas ces compétences — il les contextualise.

Les GPO que vous configurez deviennent des briques de conformité dans une évaluation continue. Credential Guard ne vaut que si vous avez une stratégie de détection des tentatives de dump LSASS. BitLocker ne vaut que si l'état de chiffrement remonte à Intune et déclenche le bon Conditional Access. LAPS ne vaut que si la rotation post-utilisation est activée.

La maîtrise technique est le prérequis. L'architecture de vérification continue est ce qui transforme cette maîtrise en posture de sécurité réelle.

Continuer à progresser

La sécurité Windows et les GPO évoluent rapidement. Quelques ressources pour rester à niveau :

Ressource Contenu URL
Microsoft Security Baselines Référence GPO officielle mise à jour à chaque version Windows aka.ms/baselines
Microsoft Security Blog Annonces ASR, WDAC, nouvelles menaces microsoft.com/security/blog
MSRC (Security Response Center) Vulnérabilités actives et mitigations GPO msrc.microsoft.com
CIS Benchmarks Windows Références de durcissement tierces comparables aux baselines Microsoft cisecurity.org
GitHub microsoft/securitybaselines Scripts d'application des baselines GitHub
Active Directory Security (adsecurity.org) Sean Metcalf — référence AD attack paths adsecurity.org

Les Microsoft Security Baselines — votre point de départ pour chaque nouveau build

Microsoft publie des Security Baselines pour chaque version majeure de Windows et Windows Server. Ces baselines sont des GPO exportées, prêtes à importer dans GPMC. Elles intègrent les recommandations de l'équipe sécurité Microsoft et couvrent des centaines de paramètres. Avant tout déploiement sur un nouveau build OS, importez la baseline correspondante et comparez-la à votre configuration existante.

Un dernier mot sur l'outillage

Les GPO resteront l'outil de référence pour la configuration AD on-prem dans toute votre carrière d'administrateur.

Ce qui changera, c'est la surface qu'elles couvrent — progressivement réduite au périmètre AD core tandis que le cloud absorbe la gestion des postes modernes. Ce qui ne changera pas, c'est la rigueur nécessaire pour les concevoir, les documenter et les opérer.

Un parc mal gouverné par GPO accumule de la dette de configuration. Cette dette devient de la surface d'attaque. La différence entre un administrateur compétent et un administrateur expert tient souvent à la discipline qu'il applique à ce qui est invisible — les GPO qui s'appliquent silencieusement, toutes les 90 minutes, sur chaque machine du domaine.

Maîtriser ce mécanisme, c'est maîtriser l'infrastructure.

En résumé

  • Le paysage de 2026 confirme ce postulat.
  • La majorité des organisations disposent d'un Active Directory actif.
  • Les migrations Intune-only sont encore minoritaires.
  • Concevoir une architecture GPO d'entreprise qui résiste à la croissance et aux audits (chapitres 1 à 7).
  • Déployer les applications métier critiques — Office, navigateurs, Windows Update, RDS, PKI (chapitres 8 à 16).

En résumé — chapitre final

  • Zero Trust + GPO : les GPO durcissent l'OS (Assume Breach), Intune + AAD vérifient la conformité (Verify Explicitly), LAPS minimise les privilèges (Use Least Privilege)
  • Les GPO ne disparaissent pas : configuration DC, Kerberos policy, NTLM, SYSVOL — périmètre permanent
  • La roadmap réaliste : Hybrid Join → Settings Catalog pour les nouvelles machines → cloud-first progressif
  • Ce livre vous a équipé pour opérer, sécuriser et faire évoluer une infrastructure GPO d'entreprise dans un monde hybride
  • La compétence GPO reste stratégique — elle évolue vers une brique de conformité dans une architecture Zero Trust, pas vers l'obsolescence