Active Directory è un servizio multi-master: la maggior parte delle modifiche può essere replicata partendo da un qualsiasi Domain Controller. Esistono però alcune operazioni che, per evitare conflitti, devono avere un unico proprietario alla volta: sono i cinque ruoli FSMO (Flexible Single Master Operations). Sapere quale Domain Controller detiene ciascun ruolo è fondamentale prima di uno spegnimento pianificato, una migrazione o un trasferimento di ruolo, oltre che in fase di troubleshooting quando qualcosa smette di funzionare (autenticazioni, blocco account, creazione di nuovi oggetti).
Schema Master
Lo Schema Master è l’unico Domain Controller della foresta autorizzato a modificare lo schema di Active Directory, cioè la definizione delle classi di oggetti e degli attributi disponibili (ad esempio durante l’installazione di Exchange o di altri prodotti che estendono lo schema). Se questo DC non è raggiungibile, le normali operazioni di dominio proseguono senza problemi: l’unico effetto è che non è possibile eseguire estensioni di schema fino al ripristino o al trasferimento del ruolo.
Domain Naming Master
Il Domain Naming Master è l’unico DC che può aggiungere o rimuovere domini e partizioni di directory dalla foresta, oltre a gestire le relazioni di trust esterne a livello di foresta. Come per lo Schema Master, la sua indisponibilità non impatta l’attività quotidiana: blocca solo le operazioni di aggiunta/rimozione domini, un’attività comunque rara.
PDC Emulator
Il PDC Emulator è probabilmente il ruolo più “sentito” dagli utenti: gestisce la sincronizzazione oraria dell’intero dominio, elabora con priorità i blocchi account e le modifiche password ed è il riferimento per la compatibilità con i vecchi controller NT4 e con alcune applicazioni legacy. Se il PDC Emulator è offline, gli effetti sono visibili quasi subito: possono comparire disallineamenti dell’orario tra i client (con conseguenti problemi Kerberos) e ritardi nella propagazione dei cambi password appena effettuati.
RID Master
Il RID Master distribuisce ai vari DC del dominio i pool di RID (Relative ID) usati per generare i SID di nuovi oggetti come utenti, gruppi e computer. Ogni DC riceve un blocco di RID e lo consuma localmente; se il RID Master non è raggiungibile a lungo, i DC continuano a creare nuovi oggetti finché hanno RID disponibili nel proprio pool, ma prima o poi esauriscono la scorta e la creazione di nuovi oggetti si blocca.
Infrastructure Master
L’Infrastructure Master mantiene aggiornati i riferimenti (SID e Distinguished Name) tra oggetti di domini diversi della stessa foresta, ad esempio quando un utente di un altro dominio viene aggiunto a un gruppo locale. Se questo ruolo non è disponibile, i riferimenti cross-dominio possono restare non aggiornati e mostrare informazioni obsolete (come nomi non risolti) fino al ripristino del ruolo. In ambienti con un solo dominio, o dove ogni DC è anche Global Catalog, questo ruolo non ha praticamente effetto visibile.
Metodo 1: PowerShell
I ruoli di dominio (PDC Emulator, RID Master, Infrastructure Master) si ottengono da Get-ADDomain
Get-ADDomain | Select-Object -Property PDCEmulator, InfrastructureMaster, RIDMaster
# Output di esempio
PDCEmulator InfrastructureMaster RIDMaster
----------- -------------------- ---------
DC01.dominio.local DC01.dominio.local DC01.dominio.localI ruoli di foresta (Schema Master, Domain Naming Master) si ottengono invece da Get-ADForest, perché non sono proprietà del dominio ma della foresta
Get-ADForest | Select-Object -Property SchemaMaster, DomainNamingMaster
# Output di esempio
SchemaMaster DomainNamingMaster
------------ ------------------
DC01.dominio.local DC01.dominio.localEntrambi i comandi richiedono il modulo ActiveDirectory di RSAT caricato nella sessione.
Metodo 2: Prompt dei comandi (netdom)
Quando non si ha a disposizione il modulo PowerShell di Active Directory è possibile usare il comando netdom, disponibile nativamente su Windows Server e installabile separatamente su client tramite RSAT
netdom query fsmo
# Output di esempio
Schema master DC01.dominio.local
Domain naming master DC01.dominio.local
PDC DC01.dominio.local
RID pool manager DC01.dominio.local
Infrastructure master DC01.dominio.local
The command completed successfully.A differenza dei due cmdlet PowerShell, questo singolo comando restituisce tutti e cinque i ruoli in un’unica volta, senza bisogno di interrogare sia il dominio sia la foresta separatamente.
Nota: In una foresta con un solo dominio e un solo Domain Controller, come negli esempi sopra, è normale che tutti e cinque i ruoli risiedano sulla stessa macchina. In infrastrutture più grandi, con più domini o più DC per motivi di ridondanza, i ruoli sono spesso distribuiti su server diversi: per questo è buona norma verificarne la collocazione prima di interventi di manutenzione, così da sapere in anticipo se lo spegnimento di un DC comporta anche l’indisponibilità temporanea di un ruolo FSMO.