Active Directory : « Enabled » manquant après les mises à jour de mars 2024 — comprendre, corriger et synchroniser avec Microsoft Entra ID

Après les Patch Tuesday du 12 mars 2024, la colonne ou propriété « Enabled » semble avoir disparu dans certains outils Active Directory. Voici pourquoi cela arrive, comment le diagnostiquer rapidement et comment corriger sans perturber la synchronisation avec Microsoft Entra ID.

Sommaire

Vue d’ensemble

Plusieurs équipes ont observé qu’après l’installation des mises à jour de mars 2024 sur des contrôleurs de domaine Windows Server 2016/2019 (et parfois sur des postes d’administration), l’attribut « Enabled » n’apparaissait plus dans leurs outils AD (ADUC, ADAC, PowerShell). Résultat : difficulté à vérifier l’état actif/inactif de comptes, et suspicion d’impact côté Microsoft Entra ID (ancien Azure AD) pour les comptes récemment réactivés.

Bonne nouvelle : il ne s’agit pas d’une modification du schéma AD. L’attribut LDAP « Enabled » n’a jamais existé. La valeur « Enabled » que vous voyez dans certains outils est une propriété calculée, dérivée du bit ACCOUNTDISABLE de l’attribut userAccountControl. Les mises à jour de mars n’ont supprimé aucun attribut ; elles ont, au pire, affecté l’affichage (colonnes) ou provoqué des effets collatéraux (fuite mémoire LSASS) documentés et corrigés par des mises à jour hors-bande.

Pourquoi « Enabled » semble « disparaître »

  • Confusion attribut vs propriété calculée. Enabled n’est pas un champ du schéma ; c’est un état déduit de userAccountControl. Certains modules/console l’exposent (ADAC, Get-ADUser), d’autres non (ADUC peut ne pas afficher de colonne « Enabled », il se contente d’une icône « désactivé »).
  • Vues/colonnes réinitialisées. Après certaines mises à jour, profils d’admin, RSAT ou la console ADAC/ADUC peuvent réinitialiser les colonnes. Il faut parfois réajouter la colonne « Enabled » dans ADAC, ou simplement faire confiance à l’icône d’ADUC.
  • Incohérence de versions RSAT / module ActiveDirectory. Des postes d’admin avec des versions différentes du module ActiveDirectory peuvent afficher ou non la propriété calculée par défaut. Une mise à jour RSAT corrige souvent le symptôme d’affichage.

Rappel technique : comment AD stocke l’état actif/inactif

Active Directory encode l’état d’un compte dans userAccountControl. Le bit ACCOUNTDISABLE (0x0002) indique qu’un compte est désactivé. L’état « Enabled » affiché par certains outils n’est qu’une interprétation :

Propriété / AttributEmplacementTypeRemarques
userAccountControlActive Directory (LDAP)Attribut entier (flags)Contient ACCOUNTDISABLE (0x0002) et d’autres bits (ex. DONT_EXPIRE_PASSWORD).
Enabled (AD PowerShell)Get-ADUserPropriété calculéeDérivée de userAccountControl. N’existe pas dans le schéma.
accountEnabledMicrosoft Entra IDBooléenAlimenté par Entra Connect à partir d’AD (ACCOUNTDISABLE).

Vérifications rapides (5 minutes)

  1. Contrôlez la valeur userAccountControl pour un compte impacté : Get-ADUser -Identity <SamAccountName> -Properties userAccountControl | Select-Object SamAccountName, userAccountControl, @{Name='EnabledFromUAC'; Expression={ -not(($_.userAccountControl -band 2) -eq 2) }} Le calcul -not( ... -band 2 ) indique l’état « Enabled » indépendamment de l’affichage de la console.
  2. Affichez la propriété calculée « Enabled » (si exposée par votre module) : Get-ADUser -Identity <SamAccountName> | Select-Object SamAccountName, Enabled
  3. Vérifiez vos outils :
    • ADAC (dsac.exe) : ajoutez la colonne « Enabled » via Ajouter/Supprimer des colonnes.
    • ADUC (dsa.msc) : la colonne « Enabled » n’existe pas nativement ; utilisez l’icône d’état ou passez par ADAC / PowerShell.
    • PowerShell RSAT : alignez la version du module ActiveDirectory sur vos postes d’admin. Get-Module ActiveDirectory -ListAvailable | Sort-Object Version -Descending | Select-Object -First 1

Commandes utiles : activer, lister, auditer

Ces commandes fonctionnent quels que soient les changements d’affichage des consoles :

# Lister les comptes désactivés (bitwise PowerShell)
Get-ADUser -Filter { (userAccountControl -band 2) -eq 2 } -Properties userAccountControl

# Lister les comptes actifs

Get-ADUser -Filter { (userAccountControl -band 2) -eq 0 } -Properties userAccountControl

# Réactiver un compte

Enable-ADAccount -Identity 

# Variante LDAP (filtre bitwise 1.2.840.113556.1.4.803)

Get-ADUser -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=2)" -Properties userAccountControl 

Valeurs fréquentes de userAccountControl

DécimalHexaCompositionInterprétationNotes
5120x0200NORMAL_ACCOUNTCompte utilisateur actif (valeur minimale « standard ») 
5140x0202NORMAL_ACCOUNT + ACCOUNTDISABLECompte désactivéLe bit 0x0002 est positionné
660480x10200NORMAL_ACCOUNT + DONT_EXPIRE_PASSWORDCompte actif, mot de passe n’expire pasTrès fréquent pour des comptes de service
660500x10202NORMAL_ACCOUNT + DONT_EXPIRE_PASSWORD + ACCOUNTDISABLECompte de service désactivé 

Synchronisation avec Microsoft Entra ID (ancien Azure AD)

Le booléen accountEnabled côté Microsoft Entra ID est alimenté par Entra Connect (AAD Connect). Lorsqu’un compte AD est réactivé, la mise à jour se propage lors du prochain cycle de synchronisation si le bit ACCOUNTDISABLE est correctement remis à 0.

  • Lancer un cycle delta après une réactivation : Start-ADSyncSyncCycle -PolicyType Delta
  • Vérifier les règles de synchronisation : surveillez l’export « In from AD – User AccountEnabled » dans Synchronization Service Manager. Toute règle de filtrage OU/Règle de portée basée sur userAccountControl, adminCount, OU/attributs personnalisés peut retarder la visibilité.
  • Ne forcez pas accountEnabled dans le Cloud quand AD est la source d’autorité. Laissez Entra Connect propager l’état.

Effets collatéraux connus des mises à jour de mars 2024

Indépendamment de l’affichage de « Enabled », deux points ont marqué la période :

  1. Fuite mémoire LSASS et redémarrages de DC sur certains environnements après l’installation des correctifs du 12 mars 2024 (KB5035855 pour Server 2016, KB5035857 pour Server 2019/2022). Microsoft a publié le 22 mars des mises à jour hors-bande (OOB) KB5037423 (Server 2016) et KB5037422 (Server 2019/2022) à installer à la place des KB de mars.
  2. Aucun changement de schéma AD : ces mises à jour n’ajoutent ni ne suppriment d’attributs. Elles n’expliquent pas la « disparition » d’un attribut — car « Enabled » n’existe pas en tant que tel.

Recommandations de mise à jour

ProduitCU du 12 mars 2024Symptôme potentielOOB recommandé (22 mars 2024)Action conseillée
Windows Server 2016KB5035855Fuite mémoire LSASS, redémarrages DCKB5037423Installer KB5037423 (SSU préalable requis), redémarrer
Windows Server 2019KB5035857Fuite mémoire LSASSKB5037422Installer KB5037422 (SSU préalable), redémarrer
Windows Server 2022KB5035857Fuite mémoire LSASSKB5037422Installer KB5037422 (SSU préalable), redémarrer

Procédure de remédiation de bout en bout

1) Confirmer l’état réel des comptes

# Tous les comptes avec leur état réel calculé
Get-ADUser -Filter * -SearchBase "OU=Users,DC=contoso,DC=com" -Properties userAccountControl |
  Select-Object SamAccountName,
                @{N='Enabled';E={ -not(($_.userAccountControl -band 2) -eq 2) }} |
  Sort-Object SamAccountName

2) Réactiver et déclencher la synchronisation

Enable-ADAccount -Identity <SamAccountName>
Start-ADSyncSyncCycle -PolicyType Delta

3) Réparer l’affichage côté outils

  • ADAC : ouvrez la vue, Ajouter/Supprimer des colonnes, cochez « Enabled ».
  • ADUC : pas de colonne « Enabled », mais l’icône « compte désactivé » est fiable. Sinon, utilisez un Saved Query avec filtre LDAP bitwise : (userAccountControl:1.2.840.113556.1.4.803:=2)
  • RSAT / PowerShell : mettez à niveau RSAT si le module ActiveDirectory n’expose pas la propriété calculée par défaut.

4) Mettre à niveau les DC impactés (si applicable)

# Vérifier les correctifs installés
Get-HotFix -Id KB5035855, KB5035857, KB5037422, KB5037423 -ErrorAction SilentlyContinue |
  Select-Object HotFixID, InstalledOn, Description

# Exemple : installer l’OOB (fichier MSU) puis redémarrer

# wusa.exe  /quiet /norestart

Conseil : installez d’abord la SSU appropriée, appliquez l’OOB, redémarrez, puis relancez un cycle Entra Connect.

Bonnes pratiques pour des scripts robustes

  • Ne requêtez jamais un attribut « Enabled » LDAP (il n’existe pas). Utilisez la propriété calculée de Get-ADUser ou le test bitwise sur userAccountControl.
  • Isoler la logique dans une fonction pour éviter les régressions.
function Get-AdEnabledState {
  [CmdletBinding()]
  param([Parameter(Mandatory)][string]$Identity)

  $u = Get-ADUser -Identity $Identity -Properties userAccountControl
  [pscustomobject]@{
    SamAccountName   = $u.SamAccountName
    Enabled          = -not(($u.userAccountControl -band 2) -eq 2)
    UserAccountControl = $u.userAccountControl
  }
}

Exemples de tâches courantes

# Désactiver un lot de comptes inactifs depuis N jours
$limit = (Get-Date).AddDays(-90)
Get-ADUser -Filter * -Properties lastLogonTimestamp |
  Where-Object { ([DateTime]::FromFileTime($_.lastLogonTimestamp)) -lt $limit } |
  Disable-ADAccount

# Exporter un inventaire « Enabled / Disabled »

Get-ADUser -Filter * -Properties userAccountControl |
Select-Object Name, SamAccountName,
@{N='Enabled';E={ -not(($_.userAccountControl -band 2) -eq 2) }} |
Export-Csv .\inventory-enabled.csv -NoTypeInformation

Audit et supervision

  • Journaux sécurité (DC) : événement 4722 (compte activé) et 4725 (compte désactivé). Surveillez-les pour corréler réactivation et export Entra.
  • Synchronization Service Manager : vérifiez l’export « In from AD – User AccountEnabled » et la valeur accountEnabled dans le métavers.
  • Alertes proactives : déclenchez une alerte si un DC dépasse un seuil de mémoire LSASS, ou si le cycle Entra Connect échoue.

Dépannage : questions fréquentes

« Je ne vois vraiment plus “Enabled” nulle part. Comment être sûr ? »

Utilisez le test bitwise sur userAccountControl. C’est la source de vérité dans AD :

Get-ADUser -Filter * -Properties userAccountControl |
  Where-Object { ( $_.userAccountControl -band 2 ) -eq 2 } |
  Select-Object SamAccountName   # => comptes désactivés

« La réactivation AD ne se voit pas dans Entra ID. »

  • Assurez-vous que le DC a répliqué (latence intra‑site/inter‑site).
  • Lancez un cycle Delta ; si la modification ne passe toujours pas, lancez un Initial (plus long) hors heures de pointe.
  • Vérifiez les règles de filtrage Entra Connect (OU, attributs, scoping filters) et les erreurs d’export.

« Dois‑je forcer accountEnabled côté Cloud ? »

Non, si AD est votre source d’autorité. Toute modification directe côté Cloud sera écrasée par le prochain cycle.

« Les mises à jour de mars 2024 ont‑elles modifié le schéma AD ? »

Non. Elles n’affectent pas le schéma. L’absence de « Enabled » est un problème d’affichage/compréhension, pas de schéma.

Bonnes pratiques supplémentaires

  • Uniformiser vos postes d’admin : même version RSAT/module AD, mêmes colonnes configurées dans ADAC.
  • Standardiser vos scripts : encapsuler la logique Enabled pour éviter les régressions si un outil n’expose pas la propriété calculée.
  • Documenter les filtres Entra Connect : toute logique fondée sur userAccountControl doit être revue lors des changements de politique d’activation.
  • Processus de réactivation : réactiver dans AD, valider la réplication, lancer Delta, contrôler l’export, informer le support.

Annexe : filtres et correspondances utiles

Filtres LDAP (bitwise)

# Comptes désactivés
(userAccountControl:1.2.840.113556.1.4.803:=2)

# Comptes actifs (négation du bit)

(!(userAccountControl:1.2.840.113556.1.4.803:=2))

Correspondance AD → Entra

Source ADTransformationCible Entra IDOù vérifier
userAccountControl (ACCOUNTDISABLE)Vrai → accountEnabled = False
Faux → accountEnabled = True
accountEnabled (utilisateur)Synchronization Service Manager → Export « In from AD – User AccountEnabled »

Résumé exécutable

  1. Comprendre : « Enabled » n’est pas un attribut LDAP. La vérité est dans userAccountControl.
  2. Diagnostiquer : utilisez le test bitwise ou la propriété calculée de Get-ADUser.
  3. Corriger : réactivez via Enable-ADAccount, lancez Start-ADSyncSyncCycle -PolicyType Delta.
  4. Sécuriser : mettez vos DC à jour avec les OOB (KB5037423/KB5037422) si vous aviez installé les patchs du 12 mars 2024 et que vous observez des symptômes LSASS.
  5. Durable : uniformisez RSAT/ADAC, standardisez vos scripts et surveillez vos journaux 4722/4725.

Conclusion

La « disparition » de l’attribut « Enabled » après les mises à jour de mars 2024 relève d’un malentendu et, parfois, d’un simple reset d’affichage. Rien dans ces correctifs ne supprime un attribut du schéma AD. En s’appuyant sur userAccountControl, en rétablissant les colonnes d’ADAC/ADUC et en déclenchant un cycle Entra Connect, vous rétablissez une visibilité fidèle de l’état des comptes, tout en garantissant une synchronisation fiable vers Microsoft Entra ID.


Annexe – Foire aux cas réels

Cas 1 : « ADUC ne montre rien, mais ADAC oui »

Normal. ADUC n’a pas de colonne « Enabled ». Basculer vers ADAC ou script PowerShell.

Cas 2 : « Poste d’admin A voit “Enabled”, poste B non »

  • Le poste A a un module ActiveDirectory plus récent.
  • Le poste B a des colonnes ADAC réinitialisées ou une RSAT plus ancienne.
  • Action : alignez RSAT, réimportez les vues ADAC, validez par script.

Cas 3 : « Comptes réactivés non visibles dans Entra ID »

  • Attendre la réplication AD (intra-site < 15 min typique, inter-site selon votre planning).
  • Lancer un Delta, puis vérifier la règle « In from AD – User AccountEnabled ».
  • Examiner les erreurs d’export (quota, verrouillage d’objet, conflits).

Cas 4 : « LSASS monte en mémoire depuis mars 2024 »

  • Si les KB du 12 mars sont présents, installez l’OOB correspondant (KB5037423 ou KB5037422) avec la SSU adéquate, puis redémarrez.
  • Surveillez la mémoire des DC et la stabilité des services ADDS/KDC/Netlogon.

Checklist prête à l’emploi

  • ✔ Comprendre que Enabled est une propriété calculée.
  • ✔ Utiliser userAccountControl pour tout test/filtre.
  • ✔ Réactiver via Enable-ADAccount, puis Start-ADSyncSyncCycle -PolicyType Delta.
  • ✔ Mettre à jour RSAT/ADAC si l’affichage est incohérent.
  • ✔ Installer les OOB KB5037423/KB5037422 si vous étiez sur les KB du 12 mars 2024 et que vous rencontrez des symptômes LSASS.
  • ✔ Journaliser 4722/4725 et monitorer l’export « AccountEnabled ».

En appliquant ces étapes, vous restaurez la visibilité de l’état « Enabled » dans vos outils et assurez une synchronisation stable avec Microsoft Entra ID.

Sommaire