Dopo gli aggiornamenti installati il 24 marzo 2024 su controller di dominio Windows Server 2016 e 2019, diversi amministratori hanno notato che l’attributo “Enabled” sembra sparire dagli oggetti utente e le ri‑attivazioni non arrivano a Entra ID. Ecco cosa sta realmente accadendo e come sistemarlo.
Panoramica del caso
- Ambiente: controller di dominio Windows Server 2016/2019.
 - Evento scatenante: aggiornamenti cumulativi installati il 24/03/2024 (ad es. KB di marzo 2024 per 2016 e 2019).
 - Sintomo: l’attributo “Enabled” sembra non comparire più sugli oggetti utente in Active Directory; gli account ri‑attivati non si sincronizzano correttamente verso Entra ID (ex Azure AD).
 - Richiesta: capire se si tratta di un comportamento diffuso e ottenere una soluzione pratica.
 
Prima verità scomoda: in Active Directory non esiste un attributo “Enabled”
Active Directory non ha un attributo nativo chiamato Enabled. Lo “stato” di un account (abilitato/disabilitato) è codificato come flag all’interno dell’attributo userAccountControl (UAC). In particolare, il bit ACCOUNTDISABLE (valore 2) indica che l’account è disabilitato. Quando i tool Microsoft mostrano una colonna o una proprietà booleana Enabled (per esempio in PowerShell o in ADUC), si tratta di una comodità di visualizzazione: un valore calcolato leggendo il flag ACCOUNTDISABLE di userAccountControl.
Questo significa che, se “Enabled” scompare da una vista o non è più valorizzato in uno script, non è stato rimosso nessun attributo dello schema. È più probabile che:
- ci sia un malinteso sul nome dell’attributo (si sta cercando “Enabled” nell’Editor Attributi di ADUC, dove non è presente per definizione), oppure
 - un componente a monte (es. modulo PowerShell AD, AD Web Services, tool terzo o connettore di sincronizzazione) abbia cambiato il modo di esporre quel valore calcolato dopo gli aggiornamenti.
 
Impatto su Entra ID (ex Azure AD)
Entra ID usa il campo accountEnabled (boolean) per determinare se l’utente cloud è attivo. In ambienti ibridi, Azure AD Connect / Entra ID Connect calcola accountEnabled dal userAccountControl dell’utente on‑premises. In termini logici:
accountEnabled = NOT (userAccountControl BITAND 2)
Se il motore di sincronizzazione non “vede” più userAccountControl (per permessi, caching, errori di import), il campo calcolato potrebbe non aggiornarsi: un utente ri‑abilitato in AD resta disabilitato in Entra ID, o viceversa. Il problema, quindi, non è l’assenza dell’attributo “Enabled”, ma l’assenza (o la lettura errata) di userAccountControl o la mancata esecuzione di un ciclo di sincronizzazione completo.
Cosa è stato detto nel thread originale
Nel thread di forum citato, la moderatrice Molly Lu ha chiarito che il canale non dispone di specialisti AAD/Entra ID e ha suggerito di ripubblicare la domanda nel portale Microsoft Q&A selezionando i tag pertinenti. Nel thread non è stata fornita una correzione tecnica.
Cause plausibili dopo gli update di marzo 2024
Gli aggiornamenti cumulativi possono influire su servizi e dipendenze che i tool di gestione utilizzano per esporre proprietà “calcolate” o per interrogare AD:
- AD Web Services (ADWS): cambiamenti nel comportamento, nella serializzazione o in requisiti di sicurezza possono incidere su come il modulo PowerShell “ActiveDirectory” e altri strumenti restituiscono proprietà derivate come 
Enabled. - Requisiti di sicurezza LDAP: enforcement di signing, sealing o channel binding può bloccare letture da host o servizi non conformi, facendo “sparire” attributi perché la query fallisce parzialmente.
 - Permessi sul service account di sincronizzazione: modifiche alle ACL, a GPO o all’appartenenza a gruppi che garantivano il diritto “Read all properties” possono impedire la lettura di 
userAccountControl. - Customizzazione delle regole di Azure AD Connect: precedenze/override di regole possono risultare in un calcolo diverso o nella mancata proiezione di 
accountEnablednel metaverse. 
Diagnosi rapida: cosa verificare subito
| Passo | Dettaglio operativo | Perché aiuta | 
|---|---|---|
| Verifica attributi | Ricorda che lo stato “abilitato/disabilitato” è il flag ACCOUNTDISABLE in userAccountControl. In ADUC (Visualizzazione Avanzata → Editor attributi) verifica userAccountControl; in ADSI Edit controlla che l’attributo sia presente e valorizzato. | Esclude il malinteso: “Enabled” non è uno schema attribute. Si valida l’integrità del dato userAccountControl. | 
| Controllo aggiornamenti | Identifica le KB installate il 24/03/2024 (ad es. KB di marzo per 2016/2019). Se si ipotizza correlazione, valuta rollback temporaneo o applicazione di eventuali patch correttive successive. | Alcuni update di sicurezza AD/LDAP hanno già causato anomalie espositive in passato. | 
| Test sincronizzazione | Esegui un Full Synchronization in Entra ID Connect e controlla i log in MIISClient (Operations) per errori su userAccountControl/accountEnabled. | Capisci se il problema è nel dato AD o nel motore di sync. | 
| Convalida schema/ACL | Con la snap‑in Active Directory Schema o ldifde verifica che gli attributi standard non siano stati nascosti/negati da deleghe di sicurezza. Verifica permessi del service account di AAD Connect sulle OU interessate. | Scova corruzioni o permessi mancanti che impediscono la lettura dell’attributo. | 
| Escalation | Se persiste, apri ticket Microsoft o pubblica su Microsoft Q&A con: versione OS/patch complete dei DC, dump di userAccountControl prima/dopo, log AAD Connect, ID evento e tracce miisclient. | Accelera la diagnosi lato vendor. | 
Comandi utili per il controllo
Verificare lo stato di un utente da PowerShell
# Richiede RSAT ActiveDirectory
Get-ADUser <samAccountName> -Properties userAccountControl,'msDS-User-Account-Control-Computed',Enabled,whenChanged |
  Select-Object SamAccountName, Enabled, userAccountControl,
                'msDS-User-Account-Control-Computed', whenChanged
Note:
Enabledè una proprietà calcolata dal modulo; se non compare, focalizzati suuserAccountControle sul computedmsDS-User-Account-Control-Computed.- Per verificare il bit di disabilitazione direttamente: 
((UAC -band 2) -ne 0). 
$u = Get-ADUser <sam> -Properties userAccountControl
$disabled = (($u.userAccountControl -band 2) -ne 0)
"Account disabilitato: $disabled"
Ispezionare le KB installate il 24/03/2024
# Alcuni sistemi restituiscono InstalledOn come stringa: gestisci con [datetime]
Get-HotFix |
  Where-Object { $.InstalledOn -and ([datetime]$.InstalledOn).Date -eq (Get-Date '2024-03-24').Date } |
  Sort-Object InstalledOn -Descending |
  Format-Table -Auto HotFixID, InstalledOn, Description
Alternativa, indipendente da localizzazione:
wmic qfe get HotFixID,InstalledOn,Description | findstr /i "2024-03-24"
Forzare un ciclo di sincronizzazione completo
Import-Module ADSync
Start-ADSyncSyncCycle -PolicyType Initial
Attendi il completamento e verifica in miisclient.exe (Operations).
Se stai risolvendo problemi di regole o permessi, può essere utile disabilitare momentaneamente lo scheduler:
Set-ADSyncScheduler -SyncCycleEnabled $false
... interventi correttivi ...
Set-ADSyncScheduler -SyncCycleEnabled $true
Verificare lettura attributi dal connettore AD
- Apri Synchronization Service (
miisclient.exe). - Scheda Connectors → seleziona il connettore AD → Properties → Configure Attribute Flow.
 - Controlla che esista (e non sia stata sovrascritta) la regola “In from AD – User AccountEnabled”.
 - In Operations, dopo un Delta Import, filtra eventuali Errors su dn-attributes-failure o permission-issue relativi a 
userAccountControl. 
Perché “Enabled” può risultare assente in alcuni strumenti
Le viste e i provider che espongono “Enabled” lo fanno come synthetic attribute. Se un aggiornamento modifica:
- la versione del modulo ActiveDirectory o le librerie .NET usate per calcolare la proprietà,
 - le API di ADWS o del provider LDAP utilizzate dagli strumenti,
 - i prerequisiti di sicurezza (TLS/LDAPS, signing),
 
la proprietà calcolata può non essere restituita. Il dato autoritativo resta comunque in userAccountControl, che va usato nei controlli e nelle regole di sincronizzazione.
Controlli di integrità consigliati
- Replicazione AD: 
repadmin /replsummary&dcdiag /test:Advertising /test:Servicesper escludere inconsistenze. - Permessi service account AAD Connect: verifica che mantenga Read su 
userAccountControlnelle OU interessate. Evita GPO che rimuovono membership del gruppo “Pre‑Windows 2000 Compatible Access” se ti affidavi ad esso per la lettura ampia. - Event Viewer sui DC: controlla log Directory Service, Active Directory Web Services e Security per errori di negoziazione canale LDAP, firma richiesta non soddisfatta, rifiuti di accesso.
 - Delta vs Full Sync: se il Delta non vede variazioni (es. perché la modifica è stata “compressa” da operazioni ravvicinate), un Initial sincronizza lo stato reale.
 
Best practice per gli amministratori
- Usa sempre 
userAccountControlcome riferimento di verità nello scripting. Esempio per controllare in massa gli utenti modificati nel giorno X:$date = Get-Date '2024-03-24' Get-ADUser -Filter "whenChanged -ge '$($date.ToString("yyyy-MM-dd"))'" ` -Properties userAccountControl,whenChanged | Select-Object SamAccountName, whenChanged, @{N='Disabled';E={($_.userAccountControl -band 2) -ne 0}} | Sort-Object whenChanged -Descending - Documenta la mappatura verso Entra ID: verifica che la regola “In from AD – User AccountEnabled” non sia stata sovrascritta da regole personalizzate con precedenza più alta.
 - Controlla periodicamente i requisiti di sicurezza LDAP (signing, channel binding, TLS) per evitare regressioni su strumenti che leggono attributi.
 - Evita dipendenze da proprietà “comode” dei tool (come 
Enabled) nelle pipeline critiche: calcola tu lo stato a partire dauserAccountControl. 
Procedure di mitigazione e ripristino
Opzione A – Il problema è solo “visuale”
Se il tuo unico sintomo è che non vedi “Enabled” nell’Editor attributi di ADUC, non c’è nulla da riparare: è comportamento previsto. Verifica lo stato dal tab Account (casella “Account è disabilitato”) oppure usa PowerShell come sopra.
Opzione B – La sincronizzazione non riflette le ri‑attivazioni
- Esegui Initial sync (full) e controlla che 
accountEnabledcambi in portale. - In MIISClient verifica che 
userAccountControlsia importato. In caso contrario, permessi mancanti: rivedi ACL dell’OU e del dominio per il service account. - Se usi regole custom, verifica espressioni e precedenze: l’equivalente atteso è 
NOT (BitAnd(userAccountControl, 2)). 
Opzione C – Regressione dopo la KB di marzo
Se il problema è comparso subito dopo gli update del 24/03/2024 e hai confermato che permessi e regole sono corretti, valuta in laboratorio:
- Rollback temporaneo della KB interessata sul DC non‑autoritative di test.
 - Applicazione di update cumulativi successivi (se disponibili) che risolvono la regressione.
 
Comandi di riferimento:
# Disinstallazione (esempio): ESEGUI SOLO dopo test e change approvato
wusa /uninstall /kb:<KBID> /quiet /norestart
Verifica elenco pacchetti installati
dism /online /get-packages | more 
Avvertenze: rimuovere patch di sicurezza espone il sistema; adottare rollback solo in ambienti controllati e con compensazioni (segmentazione, ridondanza, finestra di manutenzione) e ripristinare quanto prima i livelli di patch.
Check esteso: attributi e mapping coinvolti
| Ambito | Attributo/Proprietà | Note | 
|---|---|---|
| Active Directory (LDAP) | userAccountControl | Contiene ACCOUNTDISABLE (2) e altri flag. È l’unica fonte autorevole per lo stato “abilitato/disabilitato”. | 
| AD (computed) | msDS-User-Account-Control-Computed | Proprietà calcolata lato DC; può includere stati come lockout/password scaduta. Non sostituisce userAccountControl. | 
| PowerShell (RSAT) | Enabled | Proprietà di comodo calcolata dal cmdlet Get-ADUser. Può non essere presente se il provider non la espone, ma lo stato è comunque ricostruibile. | 
| Entra ID (cloud) | accountEnabled | Boolean del profilo utente cloud. In ibrido è mappato da userAccountControl via regole AAD Connect. | 
Domande frequenti
Posso “ripristinare” l’attributo Enabled in AD?
No, perché non è uno schema attribute. Se un tool non lo mostra più, usa direttamente userAccountControl o aggiorna/riconfigura il tool.
Gli update di marzo 2024 hanno rimosso attributi dallo schema?
No. Non risultano modifiche che eliminino attributi standard dello schema utenti. Se manca “Enabled” nella tua interfaccia, ricorda che è una proprietà calcolata dal client.
Perché Entra ID non riflette una ri‑attivazione fatta in AD?
Perché la sincronizzazione non ha importato/calzato correttamente userAccountControl. Verifica permessi del service account, regole e avvia un Initial sync.
Come preparo una buona segnalazione al supporto?
Includi: elenco completo delle KB installate sui DC la settimana del 24/03/2024; sample di 3–5 utenti con userAccountControl prima/dopo; screenshot/estratti di MIISClient “Operations”; versione di Azure AD Connect/Entra Connect e storico degli aggiornamenti; outcome di repadmin /replsummary e dcdiag.
Playbook operativo passo‑passo
- Conferma lo stato su AD: leggi 
userAccountControldegli utenti interessati e calcola il bit 2. - Verifica le KB installate il 24/03/2024 sui DC coinvolti.
 - Controlla i permessi del service account di AAD Connect sulle OU dove risiedono gli utenti.
 - Ispeziona le regole in Synchronization Rules Editor: “In from AD – User AccountEnabled” deve essere presente e con precedenza corretta.
 - Esegui un Initial sync e controlla in MIISClient l’assenza di errori su 
userAccountControl. - Valuta rollback/patch in laboratorio se identifichi una regressione legata alla KB (con change formalizzato).
 - Escala a Microsoft o riposta su Q&A con dati tecnici completi se il problema non si risolve.
 
Appendice: esempi di espressioni e filtri
Filtro LDAP per utenti disabilitati
(userAccountControl:1.2.840.113556.1.4.803:=2)
Il matching rule OID applica un bitwise AND sull’attributo; se il bit 2 è presente, l’utente è disabilitato.
Espressione tipica (logica) in AAD Connect
# accountEnabled (metaverse) = NOT (UAC bit 2)
IIF(BitAnd([userAccountControl], 2), False, True)
Report veloce dei ri‑abilitati nelle ultime 24 ore
$since = (Get-Date).AddDays(-1)
Get-ADUser -Filter * -Properties userAccountControl,whenChanged |
  Where-Object { $_.whenChanged -ge $since } |
  Select-Object SamAccountName, whenChanged,
    @{N='Disabled';E={($_.userAccountControl -band 2) -ne 0}} |
  Where-Object { $_.Disabled -eq $false } |
  Sort-Object whenChanged -Descending
Conclusioni
Il caso “Enabled mancante dopo gli update di marzo 2024” nasce in gran parte da una ambiguità terminologica: “Enabled” non è un attributo LDAP, ma una proprietà calcolata dai tool. Per garantire che le ri‑attivazioni si propaghino a Entra ID:
- fai riferimento diretto a 
userAccountControle al bitACCOUNTDISABLE, - assicura permessi di lettura adeguati per il service account di sincronizzazione,
 - verifica e, se necessario, ripristina le regole standard di mapping (
accountEnabled←userAccountControl), - usa un Initial sync per riallineare lo stato,
 - valuta rollback/patch correttivi solo in modo controllato e supportato.
 
Se la tua evidenza indica un comportamento anomalo introdotto specificamente dalla KB di marzo 2024, prepara i dati tecnici e coinvolgi il supporto Microsoft o la community Q&A: è il percorso più rapido per un fix ufficiale.
Riepilogo operativo
- Non cercare “Enabled” nello schema: guarda 
userAccountControl. - Conferma i permessi di lettura per il service account AAD Connect.
 - Controlla le KB del 24/03/2024 e i log di ADWS/LDAP.
 - Full sync e revisione regole “AccountEnabled”.
 - Se necessario: rollback/patch in laboratorio ed escalation.
 
Nota finale (per chi arriva dal thread originale)
Nel thread citato non è presente una soluzione tecnica; la raccomandazione ufficiale è spostare la discussione su Microsoft Q&A. Prima di farlo, verifica localmente che userAccountControl sia corretto, prova un full sync e raccogli log e versioni: sono gli elementi che accelerano la diagnosi.
Checklist pronta all’uso (da allegare all’escalation):
- Versione di Windows Server dei DC e lista completa delle KB installate la settimana del 24/03/2024.
 - Dump di 
userAccountControlper 3–5 utenti ri‑attivati (prima/dopo). - Output 
repadmin /replsummaryedcdiagsintetico. - Versione di Azure AD Connect/Entra Connect e stato dello scheduler.
 - Screenshot/log MIISClient (Operations) con import da AD e projection in metaverse.
 
In definitiva: nessun attributo è “sparito” dallo schema. Concentrati su userAccountControl, sui permessi del connettore e sui cicli di sincronizzazione. Con questi controlli e un paio di accorgimenti operativi, la propagazione dello stato degli account verso Entra ID torna a funzionare in modo affidabile.
