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.
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 deuserAccountControl
. 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é / Attribut | Emplacement | Type | Remarques |
---|---|---|---|
userAccountControl | Active Directory (LDAP) | Attribut entier (flags) | Contient ACCOUNTDISABLE (0x0002 ) et d’autres bits (ex. DONT_EXPIRE_PASSWORD ). |
Enabled (AD PowerShell) | Get-ADUser | Propriété calculée | Dérivée de userAccountControl . N’existe pas dans le schéma. |
accountEnabled | Microsoft Entra ID | Booléen | Alimenté par Entra Connect à partir d’AD (ACCOUNTDISABLE ). |
Vérifications rapides (5 minutes)
- 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. - Affichez la propriété calculée « Enabled » (si exposée par votre module) :
Get-ADUser -Identity <SamAccountName> | Select-Object SamAccountName, Enabled
- 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
- ADAC (
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écimal | Hexa | Composition | Interprétation | Notes |
---|---|---|---|---|
512 | 0x0200 | NORMAL_ACCOUNT | Compte utilisateur actif (valeur minimale « standard ») | |
514 | 0x0202 | NORMAL_ACCOUNT + ACCOUNTDISABLE | Compte désactivé | Le bit 0x0002 est positionné |
66048 | 0x10200 | NORMAL_ACCOUNT + DONT_EXPIRE_PASSWORD | Compte actif, mot de passe n’expire pas | Très fréquent pour des comptes de service |
66050 | 0x10202 | NORMAL_ACCOUNT + DONT_EXPIRE_PASSWORD + ACCOUNTDISABLE | Compte 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 :
- 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.
- 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
Produit | CU du 12 mars 2024 | Symptôme potentiel | OOB recommandé (22 mars 2024) | Action conseillée |
---|---|---|---|---|
Windows Server 2016 | KB5035855 | Fuite mémoire LSASS, redémarrages DC | KB5037423 | Installer KB5037423 (SSU préalable requis), redémarrer |
Windows Server 2019 | KB5035857 | Fuite mémoire LSASS | KB5037422 | Installer KB5037422 (SSU préalable), redémarrer |
Windows Server 2022 | KB5035857 | Fuite mémoire LSASS | KB5037422 | Installer 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 suruserAccountControl
. - 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 unInitial
(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 AD | Transformation | Cible Entra ID | Où 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
- Comprendre : « Enabled » n’est pas un attribut LDAP. La vérité est dans
userAccountControl
. - Diagnostiquer : utilisez le test bitwise ou la propriété calculée de
Get-ADUser
. - Corriger : réactivez via
Enable-ADAccount
, lancezStart-ADSyncSyncCycle -PolicyType Delta
. - 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.
- 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
, puisStart-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.