Home > Microsoft > Funzionamento e Diagnostica di Active Directory

Funzionamento e Diagnostica di Active Directory

Una copia di questo articolo la puoi trovare anche su Microsoft Technet. qui

Introduzione
Il seguente articolo analizza l’architettura di Active Directory per comprenderne il funzionamento e descrive una serie di tools che consentono di controllarne il buon funzionamento.

Le utility DCDIAG (Domain Controller Diagnostics Tool), NETDOM (Windows Domain Manager), PORTQRY (Port Query), NTDSUTIL e ADSIEdit (ADSI Edit) fanno parte dei support tools che sono contenuti nella cartella support/tools del CD di Windows Server 2003 oppure sul primo CD di Windows Server 2003 R2, in alternativa è possibile scaricarli al seguente link Windows Server 2003 Service Pack 1 32-bit Support Tools.

Sommario
Diagnostica funzionalità rete
Condivisioni Netlogon e Sysvol
Verifica delle condivisioni Netlogon e Sysvol
Global Catalog
Verificare se il DC è stato eletto come Global Catalog
Replica di Active Directory e Ruoli FSMO
Verifica funzionalità Active Directory
Verifica funzionalità replica con altri Domain Controller
Verifica detenzione ruoli master
Verifica della disponibilità dei ruoli master operazioni
Servizio DNS
Verifica funzionalità DNS del Domain Controller
Struttura fisica di Active Directory
Verifica dell’integrità del database di Active Directory

DIAGNOSTICA FUNZIONALITA’ DI RETE
Un dominio Windows 2000/2003 è sempre identificato da due nomi:

– Nome DNS. E’ il nome completo DNS o FQDN (Fully Qualified Domain Name) ed è limitato a 255 caratteri, 63 per ogni etichetta (label) e rappresenta il nome nativo del dominio.
– Nome NetBIOS. E’ utilizzato per compatibilità con i sistemi pre-Windows 2000 ed è limitato a 15 caratteri. Coincide per default con i primi 15 caratteri della prima label del FQDN DNS del dominio.
Per verificare che la funzionalità dei servizi di rete su cui si basa Active Directory è possibile utilizzare l’utility NETDIAG (Network Connectivity Tester):

* Test del servizio DNS: NETDIAG /test:dns
* Test dell’elenco dei controller di dominio: NETDIAG /test:dclist
* Test del rilevamento dei controller di dominio: NETDIAG /test:dsgetdc
* Test di LDAP (Microsoft Lightweight Directory Access Protocol): NETDIAG /test:ldap
* Test dell’appartenenza al dominio: NETDIAG /test:member
* Per verificare la registrazione di NetBIOS, del servizio DNS e dei servizi utilizzare il seguente comando:

NETDIAG /debug

L’ utility NETDIAG registra automaticamente l’output sul file NetDiag.log che viene creato nella directory di esecuzione consentendo di esaminare il risultato del test diagnostico in modo più agevole.

Per maggiori informazioni sull’utilizzo di NETDIAG si veda al seguente articolo della Knowledge Base Microsoft HOW TO: Utilizzare lo strumento Diagnostica di rete (Netdiag.exe) in Windows 2000.

CONDIVISIONI NETLOGON e SYSVOL
Nei Domain Controller (DC) Windows NT gli script di logon venivano memorizzati nella condivisione amministrativa NETLOGON (che corrisponde alla directory %SystemRoot%\System32\Repl\Import\Scripts), mentre nei DC Windows 2000/2003 risiedono in SYSVOL (che corrisponde alla directory %SystemRoot%\Sysvol). Dcpromo modifica il valore di registro che definisce il path della condivisione NETLOGON facendola puntare a %SystemRoot%\Sysvol\Sysvol\NomeDominio\Scripts per consentire l’operatività ai client Windows 9x e Windows NT.

Ogni modifica alla directory %systemroot%\SYSVOL su un qualunque DC viene replicata agli altri DC utilizzando il servizio Replica file (FRS) basato su RPC (Remote Procedure Call).

La struttura della condivisione SYSVOL è la seguente:

* Sysvol\Sysvol\NomeDominio\Policies (corrispondente alla directory %SystemRoot%\Sysvol\NomeDominio\Policies) che contiene i Group Policy Template (ADM templates)
* Sysvol\Sysvol\NomeDominio\Scripts (corrispondente alla directory %SystemRoot%\Sysvol\NomeDominio\Scripts) che contiene gli scripts

VERIFICA DELLE CONDIVISIONI NETLOGON E SYSVOL
Per verificare se il Domain Controller condivide Netlogon e Sysvol e che i privilegi di logon necessari alla replica siano impostati è possibile utilizzare l’utility DCDIAG:

DCDIAG /test:frssysvol

DCDIAG /test:netlogons

Per maggiori informazioni sulla condivione SYSVOL si veda il seguente articolo della Knowledge Base Microsoft: How to rebuild the SYSVOL tree and its content in a domain.

GLOBAL CATALOG
In ogni domino è necessario avere un Global Catalog (GC) server e per impostazione predefinita al primo DC del dominio è assegnato automaticamente tale ruolo. Il GC contiene una replica completa di tutti gli oggetti di directory nel dominio host e una parziale di tutti gli oggetti di directory in tutti i domini della struttura. Il compito principale del GC consiste nel fornire autenticazione per gli accessi. Inoltre, poiché contiene informazioni su tutti gli oggetti in tutti i domini dell’insieme di strutture, consente la ricerca di oggetti a livello generale indipendentemente dal dominio di appartenenza di ciascun utente e/o computer fornendo informazioni sulle ubicazioni in cui è possibile trovare l’oggetto evitando query inutili nei domini. E’ possibile configurare un DC come GC e aggiungere GC ad un dominio per accelerare i tempi di risposta per le richieste di accesso e di ricerca.

VERIFICARE SE IL DC E’ STATO ELETTO COME GLOBAL CATALOG
Per verificare se un DC è stato eletto come Global Catalog e se, una volta inserito il flag Global Catalog, sia i grado di accettare richieste sulla porta TCP 3268 è possibile utilizzare l’utility PORTQRY e controllare il valore di isGlobalCatalogReady sia TRUE.

portqry -n -e 3268 -p tcp

Per maggiori informazioni sull’utilizzo di PORTQRY si veda al seguente articolo della Knowledge Base Microsoft HOW TO: Use Portqry to Troubleshoot Active Directory Connectivity Issues.

REPLICA DI ACTIVE DIRECTORY E RUOLI FSMO
Il database di Active Directory non ha una struttura monolitica ma è organizzato in partizioni o naming context che identificano strutture gerarchiche di oggetti, ciascuna delle quali costituisce un’unità di replicazione indipendente. Le partizioni Active Directory possono essere di tipo generale oppure di tipo applicativo (Active Directory Partition ADP).

Le partizioni generali possono essere di tre specie:

* Schema Partition. Contiene la definizioni degli oggetti (attributi e classi) utilizzabili in Active Directory (user, group, computer, organizational unit, etc…) e delle regole di utilizzo. Esiste una sola Schema Partition per ogni ciascuna foresta.
* Configuration Partition. Contiene informazioni generali sulla struttura e la composizione di una foresta (site, subnet, partizioni che compongono la foresta, dc, etc…). Esiste una sola Configuration Partition per ogni ciascuna foresta.
* Domain Partition. Contiene informazioni sugli oggetti creati in ogni dominio (user, group, computer, organizational unit, etc…). Esiste una sola Domain Partition per ogni dominio appartenente alla stessa foresta.

Le informazioni della Schema Partition e della Configuration Partition sono comuni a tutti i domini della foresta e quindi verranno replicate a tutti i DC della foresta, mentre le informazioni della Domain Partition sono private del dominio e quindi verranno replicate solo ai DC dello stesso dominio.

Le partizioni applicative possono essere di due specie:

* ADP builtin. Sono quelle dedicate al DNS (DomainDnsZones e ForestDnsZones) create automaticamente all’atto della creazione del dominio, nel caso si scelga di installare e configurare il servizioDNS dal wizard Dcpromo.
* ADP custom o personalizzate. Possono essere create manualmente per ospitare informazioni riguardanti applicazioni integrate in Active Directory (AD-aware)

Il processo di replica di Active Directory mantiene allineate le Directory Partition dei DC tramite una tipologia multimaster incrementale che consente di effettuare modifiche su qualsiasi DC e far sì che questo fornisca agli altri DC soltanto le differenze rispetto all’ultima sincronizzazione avvenuta. Per minimizzare i conflitti dovuti a modifiche dello stesso oggetto su DC diversi Active Directory implementa la replica a livello di singolo attributo, I DC, infatti, a seguito di una modifica aggiornano lo stamp associato all’attributo che è compostato da un Version Number (incrementato ad ogni modifica), un Timestamp (data e ora della modifica) e da un Server GUID (contenente il GUID del DC su cui è avvenuta la modifica). Nella comparazione degli stamp si considera il Version Number maggiore, nel caso ugualianza si considera il Timestamp maggiore e se anche il Timestamp è uguale si valuta il Server GUID.

Allo scopo di evitare conflitti di replica non risolvibilit tramite la comparazione degli stamp, Active Directory introduce l’amministrazione centralizzata di alcune operazioni, in altre parole alcune attività possono essere eseguite esclusivamente a seguito dell’autorizzazione data dal DC in possesso del ruolo associato alla specifica tipologia di operazione. Tali ruoli sono definiti flexible o Floating Single Master Operations (FSMO) in quanto è possibile spostare un ruolo assegnandolo ad un altro DC.

I ruoli FSMO sono cinque:

* Schema Master. Lo Schema Master è l’unico DC della foresta che possiede una copia i scrittura della Schema Partition (ciò significa che la modifica dello schema può essere seguita da un qualunque DC, ma prevede la connessione diretta con lo Schema Master).
* Domain Naming Master. Il Domain Naming Master è unico nella foresta e viene contattato quando è necessario creare un dominio per verificare che non sia già stato definito e ottenere un identificatore GUID univoco. Il Domain Naming Master è responsabile anche dell’autorizzazione alla cancellazione di un dominio, della validazione durante le operazioni di modifica dei nomi di dominio tramite il tool RENDOM.EXE e della creazione e cancellazione di una Application Directory Partition.
* Relative Identifier Master. Il Relative Identifier Master è unico nel dominio ed è responsabile della distribuzione dei pool contenenti le sequenze univoche dei Relative ID (RID) ai DC del dominio. I RID sono utilizzati dai DC durante la creazione degli oggetti Security Principal (User, Group o Computer) per attribuirgli identificativi Security ID (SID) univoci.
Il Relative Identifier Master si occupa anche di autorizzare lo spostamento di un oggetto in un altro dominio, tramite ad esempio l’Active Directory Migration Tool, per evitare che lo stesso oggetto possa essere spostato in due domini diversi.
I DC del dominio ricevono un pool di 500 RID dal Relative Identifier Master e quando la quantità disponibile raggiunge circa le 100 unità il DC contatterà il Relative Identifier Master per ottenere un nuovo pool.
Un SID è composto da 4 elementi S-1-5-Y1-Y2-Y3-Y4:
S-1 che indica la revisione del SID (al momento è in uso la 1)
5 che definisce l’autorità di emissione del SID (5 indica Windows NT, 2000 o 2003 Server, per i well know SID si utiliza 0 o 1)
Y1-Y2-Y3 è la porzione del domain SID (uguale per tutti i Security Principal del dominio)
Y4 rappresenta il relative ID del dominio.
PDC emulator. il PDC emulator è unico nel domino e viene utilizzato come fonte di replica (master-slave) degli update della Domain Partition verso i BDC NT nel caso in cui il livello funzionale del dominio sia Windows server 2003 Interim o Windows 2000 Mixed Mode. il PDC emulator viene inoltre contattato da client precedenti Windows 2000 su cui non è installato l’Active Directory client durante la fase di cambio password degli account e per offrire piena compatibilità verso essi.
Il PDC emulator assolve anche la funzionalità di Domain Master Browser e indipendetemente dal livelo funzionale del dominio ha i seguenti compiti:
– Diminuire il tempo di convergenza nei cambi password.
– Essere la fonte di sincronizzazione del Windows Time Service (in una foresta i DC di un dominio usano il PDC emulator del proprio dominio come time source e a loro volta i PDC emulator dei vari domini della foresta usano come time source il PDC emulator del Forest Root Domain il quale può essere sincronizzato su un time server esterno tramite il comando net time \\servername /setsntp:TimeServer).
– Essere utilizzato di default dallo snap-in di creazione o modifica di un Group Policy Object.
– Autorizzare il raise del livello funzionale del dominio.
Infrastructure Master. l’Infrastructure Master è l’unico DC nel domino che ha il compito di mantenere aggiornata la relazione GUID-SID-DN degli utenti/gruppi definiti nei domini esterni a quello di appertenenze dell’Infrastructure Master, ma utilizzati anche nei gruppi del suo dominio (phantom record). In caso di modifica del Distinguished Name (DN) (per es. spostamento nel domino) o del SID (per es. spostamento in altri domini) di tali utenti/gruppi la visualizzazione dei membri dei gruppi che li contengono non deve produrre incoerenze. Per ottenere tale risultati l’Infrastructure Master verifica e aggiorna periodicamente eventuali differenze tra il proprio database locale di phantom record e le informazioni nei Global Catalog server.

VERIFICA FUNZIONALITA’ ACTIVE DIRECTORY
Tramite Dcdiag è possibile verificare la registrazione DNS di un controller di dominio, controllare che i descrittori di protezione (SID) nelle intestazioni del contesto dei nomi dispongano delle autorizzazioni appropriate per la replica, analizzare lo stato dei controller di dominio in un insieme di strutture o in un’organizzazione e così via. Per maggiori informazioni si veda il seguente link: Domain Controller Diagnostics Tool (dcdiag.exe).

DCDIAG /v /f:


VERIFICA FUNZIONALITA’ REPLICA CON ALTRI DOMAIN CONTROLLER
Per verificare verificare la funzionalità replica con altri Domain Controller è possibile utilizzare l’utility DCDIAG:

DCDIAG /test:replications

VERIFICA DETENZIONE RUOLI FSMO
Per verificare quale server detiene i ruoli FSMO è possibile utilizzare l’utility NETDOM:

netdom /query fsmo

VERIFICA DISPONIBILITA’ DEI RUOLI MASTER OPERAZIONI
Per verificare la disponibilità dei ruoli master operazioni è possibile utilizzare l’utility DCDIAG, controllandone la localizzazione tramite il test knowsofroleholders e la disponibilità e il corretto funzionamento tramite il test fsmocheck:

DCDIAG /s: /test:KNOWSOFROLEHOLDERS /verbose

DCDIAG /s: /test:FSMOCHECK

SERVIZIO DNS
Uno degli aspetti più importanti dell’implementazione di Active Directory è la sua filosofia “IP-centrica”, nel senso che questa tecnologia si basa su alcuni standard del TCP/IP e in modo particolare sul servizio DNS che svolge le seguenti funzioni:

– Servizio di risoluzione dei nomi dei computer e/o domini in in indirizzi IP e viceversa.
– Servizio di registrazione dinamica (Dynamic DNS o DDNS) dei nomi dei computer (resource record di tipo address o RR di tipo A), degli indirizzi IP (RR di tipo pointer o RR di tipo PTR) e degli RR di tipo service location o RR di tipo SRV. Gli RR di tipo A e PTR vengono registrati da tutti i computer mentre gli RR SRV sono registrati solo dai DC.
– Definizione degli standard da adottare per la definizione dei nomi dei domini AD. DNS e AD condividono gli stessi namespace, ovvero la stessa gerarchia di domini, pertanto ad ogni dominio AD deve obbligatoriamente corrispondere un dominio DNS
– Servizio per la localizzazione (service location) dei DC Windows 2000/2003 che offrono servizi strategici ai client AD (LDAP Server, Kerberos Server, Global Catalog Server, etc…)

Per un client Windows 2000/XP/2003 membro di un dominio AD Windows 2000/2003 l’assenza o l’incorretta impostazione del server DNS comporta un declassamento del dominio AD da Windows 2000/2003 a semplice dominio Windows NT (eseguendo l’utility gpresult.exe per la determinazione del “Resultant Set Of Policy” il dominio di appartenenza appare infatti come “Domain Type: WindowsNT 4”). Su questi client configurati in modo errato il dominio AD Windows 2000/2003 verrà visto come un dominio Windows NT con un determinato nome NETBIOS che offre servizi di autenticazione NTLM e tutti i servizi nativi AD (autenticazione Kerberos, GPO, ricerche LDAP e/o ADSI, etc…) non saranno disponibili. Ovviamente queste considerazioni sono valide anchenel caso in cui il client sia configurato correttamente ma il servizio DNS non sia disponibile.

VERIFICA FUNZIONALITA’ DNS DEL DOMAIN CONTROLLER
Per verificare verificare la funzionalità del DNS del Domain Controller è possibile utilizzare l’utility DCDIAG (il test diagnostico del DNS è stato introdotto con la versione di DCDIAG rilasciata con Windows Server 2003 SP1):

DCDIAG /test:DNS

Per l’esecuzione di ulteriori attività e controlli relativi al servizio DNS si faccia riferimento ai seguenti articoli della Knowledge Base Microsoft:

How to reinstall a dynamic DNS Active Directory-integrated zone
Troubleshooting Active Directory replication failures that occur because of DNS lookup failures, event ID 2087, or event ID 2088
SRV Records Missing After Implementing Active Directory and Domain Name System

STRUTTURA FISICA DI ACTIVE DIRECTORY
Active Directory è basata su un database di tipo ISAM (Index as Sequential Access Method) gestito da un DBMS ESE (Extensible Storage Engine) noto anche col nome di Jet Blue (vi sono infatti due implementazioni separate delle Jet Api, chiamate Jet Blue e Jet Red e spesso il termina “Jet” viene utilizzato per riferirsi a Jet Red che è il DBMS utilizzato da Microsoft Access).

ESE è un componente introdotto con Windows 2000 che implementa un user-mode storage engine che gestisce i dati mediante un file binario. I dati saranno resi disponibili all’applicazione tramite Api mediante l’utilizzo di una DLL. Questo DBMS viene utilizzato da svariate applicazioni, come ad esempio Exchange e ADAM, in quanto offre buone performance ed un elevata scalabilità.

Il database di Active Directory è contenuto di default nella directory %SystemRoot%\NTDS e il cuore del DIB (Directory Infomation Base) è rappresentato dal file NTDS.DIT che viene creato dal comando dcpromo all’atto della promozione del server a DC utilizzando il modello %SystemRoot%\System32\ntds.dit.
Per la gestione dei log il DBMS ESE utilizza i file edb.log, edb*.log, res1.log e res2.log, mentre per la gestione del checkpoint utilizza il file edb.chk (per default la dimensione dei file di log è di 10 MB mentre quella del file di checkpoint è variabile).

Per conoscere la posizione del database NTDS.DIT e dei file log è possibile utilizzare l’utility NTDSUTIL:

1. Aprire il prompt dei comandi.
2. Digitare SET SAFEBOOT_OPTION=DSREPAIR e premere invio.
3. Digitare ntdsutil e premere invio.
4. Digitare files e premere invio.
5. Digitare info e premere invio per visualizzare le informazioni sul file di database e sui file di log.
6. Digitare quit e premere invio.
7. Digitare quit e premere invio per chiudere la sessione NTDSUTIL.

Quando viene eseguita un’operazione sul DC che avvia una scrittura sul database (creazione/cancellazione di un oggetto, modifica di un attributo di un oggetto o replica di oggetti e attributi da altri DC partner di replica) viene generata una transazione che contiene i dati e i meta-dati (numero di versione USN, il timestamp, il GUID del server su cui è stata generata la modifica). Una transazione è un’unità atomica di operazioni da eseguire su un database, ovvero devono essere portate a termine con successo tutte in caso contrario verrà ripristinata la situazione precedente all’esecuzione della transazione.

Le transazioni vengono immediatamente registrate in modo sequenziale nel file di log corrente (EDB.LOG) e quindi viene eseguita la modifica nella copia del database in memoria, ciò garantisce che le modifiche vengano eseguite anche nel caso di uno shutdown o di un crash immediatamente successivo.

Il DBMS ESE si occupa di di aggiornare il file NTDS.DIT con le transazioni contenute nei file log e aggiornando il contenuto del file di checkpoint (EDB.CHK) in modo che contenga la posizione sino a cui le operazioni di scrittura nel database sono state eseguite con successo (stato di committed della transazione).

Quando il file di log corrente (EDB.LOG) raggiunge la dimensione massima di default di 10.204 KB viene rinominato come EDBHHHHH.LOG (dove H è una cifra esadecimale) e viene creato un nuovo file EDB.LOG. Per una miglior ottimizzazione dello spazio su disco i file di log vengono gestiti tramite la modalità circular logging, che consiste nel sovrascrivere i log più vecchi in modo circolare cancellano i file non più necessari una volta eseguite le scritture sul database e aggiornato il file di checkpoint.

Per garantire la disponibiltà di spazio anche in situazioni di emergenza oper le normali operazioni di deframmentazione online, vi sono due file di riserva (RES1.LOG e RES2.LOG) della dimensione standard dei file log che vengono utilizzati nel caso in cui il sistema esaurisca lo spazio disponibile sul volume contenente il database.

I file EDBTMP.LOG e TEMP.EDB sono due file temporanei utilizzati da attività quali deframmentazione online, recovery, situazioni di emegenza derivati da sovraccarico, ecc.

Nel caso di chiusura anomala del sistema il DBMS ESE rileva l’esistenza di una situazione anomala controllando il log degli eventi e se l’ultimo record non corrisponde ad uno shutdown “normale”, ESE riapplica il log segnalati nel file di checkpoint (EDB.CHK) notificandolo nell’Event Viewer tramite gli eventi NTDS ISAM 300, 301, 302. Nel caso di assenza del file di checkpoint (EDB.CHK) vengono riaplicate tutte le transazione contenute file di log.

VERIFICA DELL’INTEGRITA’ DEL DATABASE DI ACTIVE DIRECTORY
Per verificare l’integrità del database di Active Directory è possibile utilizzare l’utility NTDSUTIL:

1. Riavviare il sistema.
2. Durante la fase di avvio premere F8.
3. Selezionare l’opzione Modalità ripristino servizi directory (solo controller domini Windows).
4. Selezionare il sistema operativo da avviare.
5. Autenticarsi tramite l’account Administrator con la password di “amministratore modalità ripristino servizi” specificata durante l’esecuzione di dcpromo.
6. Confermare il messaggio che indica che Windows è in esecuzione in modalità provvisoria.
7. Aprire il prompt dei comandi.
8. Digitare ntdsutil e premere invio.
9. Digitare files e premere invio.
10. Digitare integrity e premere invio per avviare il controllo di integrità
11. Digitare quit e premere invio.
12. Digitare sematic database analysis e premere invio.
13. Digitare go e premere invio per avviare il controllo semantico del database.
14. Digitare quit e premere invio.
15. Digitare quit e premere invio per chiudere la sessione NTDSUTIL.

Per l’esecuzione di ulteriori attività e controlli tramite l’utility NTDSUTIL si faccia riferimento ai seguenti articoli della Knowledge Base Microsoft:

Utilizzo di Ntdsutil per gestire file di Active Directory dalla riga di comando in Windows Server 2003
How to complete a semantic database analysis for the Active Directory database by using Ntdsutil.exe
Deletion of Critical Objects in Active Directory in Windows 2000 and Windows Server 2003
Rimozione di dati in Active Directory dopo un abbassamento di livello non riuscito di un controller di dominio
Utilizzo dello strumento Ntdsutil.exe per assegnare o trasferire ruoli FSMO a un controller di dominio
HOW TO: Cercare ed eliminare gli identificatori di protezione (SID) duplicati con Ntdsutil in Windows Server 2003
Reimpostazione della password dell’account amministratore per la modalità ripristino servizi directory (DSRM) in Windows Server 2003
How to restore deleted user accounts and their group memberships in Active Directory
Mancato abbassamento di livello dei controller di dominio quando si utilizza l’Installazione guidata di Active Directory per forzare l’abbassamento di livello in Windows Server 2003 e in Windows 2000 Server

CONCLUSIONI
La diagnostica di Active Directory dovrebbe essere eseguita periodicamente soprattutto quando vengono eseguite modifiche corpose, prima di un backup del system state evitando così di salvare una versione non valida, ma soprattutto dopo il cambio di una Domain Controller (DC) per accertarsi che il processo di trasferimento sia andato a buon fine (a tal proposto si faccia riferimento alla guida Migrare un DC Windows2003 verso un nuovo server).

Per ulteriori approfondimenti si faccia riferimento al seguente articolo della Knowledge Base Microsoft How to verify an Active Directory installation.

_______________________________

È possibile che l’abbassamento di livello dei controller di dominio Microsoft Windows 2000 o Microsoft Windows Server 2003 non venga eseguito correttamente mediante l’Installazione guidata di Active Directory (Dcpromo.exe).

Cause

Questo problema può verificarsi in caso di errore di una dipendenza o di un’operazione necessaria, ad esempio la connettività di rete, la risoluzione dei nomi, l’autenticazione, la replica del servizio directory di Active Directory o l’individuazione di un oggetto fondamentale in Active Directory.

Risoluzione

Per risolvere il problema, determinare la causa del mancato abbassamento di livello normale del controller di dominio di Windows 2000 o Windows Server 2003, quindi provare di nuovo a eseguire l’operazione mediante l’Installazione guidata di Active Directory.

Workaround

Se non si riesce a risolvere il problema, è possibile utilizzare le soluzioni alternative descritte di seguito per forzare l’abbassamento di livello del controller di dominio in modo da mantenere l’installazione del sistema operativo e le applicazioni installate.

Avviso Prima di utilizzare una delle soluzioni descritte di seguito, assicurarsi di poter eseguire l’avvio in modalità ripristino servizi directory. In caso contrario, dopo l’abbassamento di livello forzato del computer non sarà possibile effettuare l’accesso. Se si è dimenticata la password per la modalità ripristino servizi directory, sarà possibile ripristinarla mediante l’utilità Setpwd.exe che si trova nella cartella Winnt\System32. In Windows Server 2003 la funzionalità dell’utilità Setpwd.exe è stata integrata nel comando Set DSRM Password dello strumento NTDSUTIL. Per ulteriori informazioni su come effettuare questa procedura, fare clic sul numero dell’articolo della Microsoft Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):

271641 (http://support.microsoft.com/kb/271641/ ) Impostazione di una password vuota per la modalità di ripristino da parte della Configurazione guidata server

Controller di dominio di Windows 2000

  1. Installare l’aggiornamento rapido (hotfix) Q332199 su un controller di dominio di Windows 2000 che esegue il Service Pack 2 (SP2) o versione successiva oppure installare Windows 2000 Service Pack 4 (SP4). Nel Service Pack 2 e nelle versioni successive è supportato l’abbassamento di livello forzato. Riavviare il computer.
  2. Fare clic sul pulsante Start, scegliere Esegui e digitare il comando seguente:
    dcpromo /forceremoval
  3. Scegliere OK.
  4. Nella pagina Installazione guidata di Active Directory scegliere Avanti.
  5. Se il computer che si sta rimuovendo è un server di catalogo globale, scegliere OK nella finestra di messaggio. Nota Innalzare di livello altri cataloghi globali nell’insieme di strutture o nel sito se il controller di dominio che si sta abbassando di livello è un server di catalogo globale, secondo le esigenze.
  6. Nella pagina Rimozione di Active Directory assicurarsi che la casella di controllo Questo server è l’ultimo controller di dominio nel dominio sia deselezionata, quindi scegliere Avanti.
  7. Nella pagina Credenziali di rete digitare il nome, la password e il nome di dominio di un account utente con credenziali di amministratore dell’organizzazione nell’insieme di strutture, quindi scegliere Avanti.
  8. In Password amministratore digitare e confermare la password da assegnare all’account amministratore del database SAM locale, quindi scegliere Avanti.
  9. Nella pagina Riepilogo scegliere Avanti.
  10. Eseguire la pulitura dei metadati del controller di dominio abbassato di livello su un controller di dominio rimanente nell’insieme di strutture.

Se è stato rimosso un dominio dall’insieme di strutture utilizzando il comando remove selected domain di Ntdsutil, assicurarsi che in tutti i controller di dominio e nei server di catalogo globale dell’insieme di strutture siano stati rimossi tutti gli oggetti e i riferimenti al dominio rimosso, prima di innalzare di livello un nuovo dominio nello stesso insieme di strutture con lo stesso nome di dominio. Per stabilire se è stata eseguita la replica end-to-end, possono essere utili strumenti quali Replmon.exe o Repadmin.exe disponibili negli Strumenti di supporto di Windows 2000. La rimozione di oggetti e contesti dei nomi in Windows 2000 SP3 e nei server di catalogo globale precedenti è notevolmente più lenta rispetto a Windows Server 2003.

Controller di dominio di Windows Server 2003

  1. Per impostazione predefinita, i controller di dominio di Windows Server 2003 supportano l’abbassamento di livello forzato. Fare clic sul pulsante Start, scegliere Esegui e digitare il comando seguente:
    dcpromo /forceremoval
  2. Scegliere OK.
  3. Nella pagina Installazione guidata di Active Directory scegliere Avanti.
  4. Nella pagina Imponi rimozione di Active Directory scegliere Avanti.
  5. In Password amministratore digitare e confermare la password da assegnare all’account amministratore del database SAM locale, quindi scegliere Avanti.
  6. Nella pagina Riepilogo scegliere Avanti.
  7. Eseguire la pulitura dei metadati del controller di dominio abbassato di livello su un controller di dominio rimanente nell’insieme di strutture.

Se è stato rimosso un dominio dall’insieme di strutture utilizzando il comando remove selected domain di Ntdsutil, assicurarsi che in tutti i controller di dominio e nei server di catalogo globale dell’insieme di strutture siano stati rimossi tutti gli oggetti e i riferimenti al dominio rimosso, prima di innalzare di livello un nuovo dominio nello stesso insieme di strutture con lo stesso nome di dominio. La rimozione di oggetti e contesti dei nomi in Windows 2000 Service Pack 3 (SP3) e nei server di catalogo globale precedenti è notevolmente più lenta rispetto a Windows Server 2003.

Se le voci di controllo di accesso (ACE) presenti nel computer da cui è stato rimosso Active Directory erano basate su gruppi locali di dominio, potrebbe essere necessario riconfigurare queste autorizzazioni, in quanto questi gruppi non saranno disponibili per i server membri o i server autonomi. Se si ha intenzione di installare Active Directory in un computer che verrà innalzato a livello di controller di dominio del dominio originale, non sarà più necessario configurare le voci di controllo di accesso. Se si preferisce mantenere il computer a livello di server membro o di server autonomo, è necessario convertire o sostituire le eventuali autorizzazioni basate su gruppi locali di dominio. Per ulteriori informazioni sulla modifica delle autorizzazioni a seguito della rimozione di Active Directory da un controller di dominio, fare clic sul numero dell’articolo della Microsoft Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):

320230 (http://support.microsoft.com/kb/320230/ ) Conseguenze sulle autorizzazioni dopo l’abbassamento di livello di un controller di dominio

Miglioramenti introdotti in Windows Server 2003 Service Pack 1

Windows Server 2003 SP1 consente di migliorare il processo dcpromo /forceremoval. Quando si esegue il comando dcpromo /forceremoval, viene effettuata una verifica per determinare se il controller di dominio svolge il ruolo di master operazioni, è un server DNS (Domain Name System) o un server di catalogo globale. Per ciascuno di questi ruoli l’amministratore riceve un avviso popup per l’esecuzione dell’azione appropriata.

Status

Microsoft ha eseguito test e fornisce il supporto per forzare l’abbassamento di livello dei controller di dominio che eseguono Windows 2000 o Windows Server 2003.

Informazioni

Mediante l’Installazione guidata di Active Directory vengono creati controller di dominio di Active Directory in computer basati su Windows 2000 e su Windows Server 2003. Durante l’Installazione guidata di Active Directory vengono effettuate diverse operazioni, fra cui l’installazione di nuovi servizi, l’esecuzione di modifiche ai valori di avvio di servizi esistenti e il passaggio ad Active Directory come area di protezione e autenticazione.

Con l’imposizione dell’abbassamento di livello, gli amministratori di dominio possono forzare la rimozione di Active Directory ed eseguire il rollback delle modifiche di sistema apportate a livello locale senza contattare altri controller di dominio nell’insieme di strutture o replicare alcuna modifica locale.

Dato che l’abbassamento di livello forzato comporta la perdita delle modifiche apportate a livello locale, deve essere utilizzato solo come soluzione estrema nei domini di produzione o test. È possibile forzare l’abbassamento di livello dei controller di dominio quando le dipendenze relative a connettività, risoluzione dei nomi, autenticazione o motore di replica non possono essere risolte, in modo da consentire un abbassamento di livello normale. Gli scenari validi per l’abbassamento di livello forzato comprendono:

  • Nel dominio padre non è disponibile alcun controller di dominio quando si tenta di abbassare di livello l’ultimo controller di dominio in un dominio figlio diretto.
  • L’Installazione guidata di Active Directory non può essere completata a causa di una dipendenza relativa alla risoluzione dei nomi, all’autenticazione, al motore di replica o a oggetti di Active Directory che non può essere risolta dopo un’accurata procedura di risoluzione dei problemi.
  • Le modifiche di Active Directory in ingresso non sono state replicate da un controller di dominio entro la durata dell’oggetto contrassegnato per rimozione (per impostazione predefinita, entro 60 giorni) per uno o più contesti dei nomi.Importante Ripristinare tali controller di dominio solo se costituiscono l’unica possibilità di ripristino per un determinato dominio.
  • Il tempo disponibile non consente una risoluzione dei problemi accurata, poiché è necessario rendere immediatamente operativo il controller di dominio.

L’abbassamento di livello forzato può rivelarsi utile in ambienti di laboratorio o didattici, in cui è possibile rimuovere i controller di dominio dai domini esistenti, ma non è necessario abbassare di livello ciascun controller di dominio in successione.

Se si forza l’abbassamento di livello di un controller di dominio, andranno perse le modifiche univoche residenti in Active Directory del controller di dominio di cui si sta effettuando l’abbassamento forzato del livello, tra cui l’aggiunta, l’eliminazione o la modifica di utenti, di computer, di gruppi, di relazioni di trust, di criteri di gruppo o della configurazione di Active Directory di cui non è stata eseguita la replica prima dell’esecuzione del comando dcpromo /forceremoval. Andranno inoltre perse le modifiche apportate a qualsiasi attributo di tali oggetti, quali le password per gli utenti, i computer, le relazioni di trust e l’appartenenza ai gruppi.

Se tuttavia si forza un abbassamento di livello di un controller di dominio, viene ripristinato uno stato del sistema operativo corrispondente a quello ottenuto con l’abbassamento di livello dell’ultimo controller di dominio in un dominio, per quanto riguarda i valori iniziali dei servizi, i servizi installati, l’utilizzo di un sistema SAM basato sul Registro di sistema per il database degli account e l’appartenenza del computer a un gruppo di lavoro. I programmi installati nel controller di dominio abbassato di livello rimangono installati.

Nel registro eventi di sistema i controller di dominio di Windows 2000 di cui è stato forzatamente abbassato il livello, nonché le istanze dell’operazione dcpromo /forceremoval, sono identificati dall’ID evento 29234. Ad esempio:

Tipo evento: AVVISO
Origine evento: lsasrv
Categoria evento: Nessuno
ID evento: 29234
Data: MM/GG/AAAA
Ora: HH.MM.SS
Utente: N/D
Computer: nomecomputer Descrizione: A questo server è stato imposto un abbassamento di livello. Pertanto, non è più un controller di dominio.

Nel registro eventi di sistema i controller di dominio di Windows Server 2003 a cui viene imposto un abbassamento di livello sono identificati dall’ID evento 29239. Ad esempio:

Tipo evento: AVVISO
Origine evento: lsasrv
Categoria evento: Nessuno
ID evento: 29239
Data: MM/GG/AAAA
Ora: HH.MM.SS
Utente: N/D
Computer: nomecomputer Descrizione: A questo server è stato imposto un abbassamento di livello. Pertanto, non è più un controller di dominio.

Dopo avere utilizzato il comando dcpromo /forceremoval, i metadati per il computer abbassato di livello non vengono eliminati nei controller di dominio rimanenti. Per ulteriori informazioni, fare clic sul numero dell’articolo della Microsoft Knowledge Base riportato di seguito:

216498 (http://support.microsoft.com/kb/216498/ ) Rimozione di dati in Active Directory dopo un abbassamento di livello non riuscito di un controller di dominio

Di seguito sono indicate alcune operazioni da effettuare, se necessario, dopo avere imposto l’abbassamento di livello di un controller di dominio:

  1. Rimuovere l’account computer dal dominio.
  2. Verificare che i record DNS, quali i record A, CNAME e SRV, siano stati rimossi ed eventualmente rimuoverli se ancora presenti.
  3. Verificare che gli oggetti membro del servizio Replica file (FRS e DFS) siano stati rimossi ed eventualmente rimuoverli se ancora presenti. Per ulteriori informazioni, fare clic sul numero dell’articolo della Microsoft Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):
    296183 (http://support.microsoft.com/kb/296183/ ) Panoramica degli oggetti Active Directory utilizzati da FRS
  4. Se il computer abbassato di livello è membro di gruppi di protezione, rimuoverlo da tali gruppi.
  5. Rimuovere tutti i riferimenti del file system DFS, rappresentati da collegamenti o repliche della directory principale, al server abbassato di livello.
  6. A un controller di dominio rimanente devono essere assegnati i ruoli di master operazioni o FSMO (Flexible Single Master Operations) precedentemente gestiti dal controller di dominio a cui è stato imposto un abbassamento di livello. Per ulteriori informazioni, fare clic sul numero dell’articolo della Microsoft Knowledge Base riportato di seguito:
    255504 (http://support.microsoft.com/kb/255504/ ) Utilizzo dello strumento Ntdsutil.exe per assegnare o trasferire ruoli FSMO a un controller di dominio
  7. Se il controller di dominio che si sta abbassando di livello è un server DNS o un server di catalogo globale, è necessario creare un nuovo server DNS o di catalogo globale per soddisfare le impostazioni di bilanciamento del carico, di tolleranza d’errore e di configurazione nell’insieme di strutture.
  8. Quando si utilizza il comando remove selected server di NTDSUTIL, viene rimosso l’oggetto NTDSDSA, ovvero l’oggetto padre per le connessioni in ingresso verso il controller di dominio di cui si sta abbassando forzatamente il livello. Il comando non rimuove gli oggetti server padre visualizzati nello snap-in Siti e servizi di Active Directory. Utilizzare lo snap-in MMC Siti e servizi di Active Directory per rimuovere l’oggetto server se il controller di dominio non verrà innalzato di livello nell’insieme di strutture mantenendo lo stesso nome computer.

Come rimuovere un Domain Controller (DC) non più funzionante

Se nel vostro dominio muore uno dei Domain Controller (Windows Server 2003), magari obsoleto e utilizzato solo per la replica di Active Directory, gli altri servers continueranno a funzionare tentando però di replicarsi sul server defunto.
Ripulire Active Directory dalle repliche non necessarie, almeno per me, non è stata una cosa banale. Come spesso accade in questi casi la parte più difficile è stata reperire un guida sicura per effettuare questa delicata operazione.
Personalmente ho seguito la guida Rimozione di dati in Active Directory dopo un abbassamento di livello non riuscito di un controller di dominio riportata sul sito di Microsoft con alcune modifiche.

La procedura che ho seguito può essere sintetizzata in 5 fasi che vedremo in dettaglio:

  • Verificare chi detiene il Global catalogue
  • Verificare chi detiene i 5 ruli FSMO
  • Rimozione del server con ntdsutil (da guida Microsoft)
  • Rimozione delle repliche con ADSIedit (da guida Microsoft)
  • Rimozione delle repliche in Active directory sites and services

Verificare chi detiene il Global catalogue

  1. Aprite il pannello Active directory sites and services e visualizzate la lista dei servers. All’interno di ogni server trovate le NTDS setting.
  2. Cliccate con il tasto destro del mouse su NTDS setting e selezionate Properties.
  3. All’interno della scheda General verificate che il Global catalogue sia presente in almeno uno dei server attivi.

Verificare chi detiene i 5 ruli FSMO

  1. In Active directory users and computers cliccate con il tasto destro sul vostro dominio e selezionate Operations Masters.
  2. Verificate che i 3 ruoli RID, PDC e Infrastructure siano assegnati ai vostri server attivi
  3. Aprite Active directory domains and trusts e cliccate con il tasto destro su Active directory domains and trusts selezionando Operations Masters.
  4. Verificate che il 4° ruolo di Domain Naming Master sia assegnato ad uno dei server attivi.
  5. Se non lo avete già fatto, registrate lo snap-in dello Schema utilizzano il seguente comando in Start->Run…
    regsvr32 schmmgmt.dll
  6. Aprite una consolle mmc (scrivendo mmc in Start->Run…) e aggiungete lo snap-in Active Directory Schema.
  7. Cliccate con il tasto destro e selezionate Operations Masters.
  8. Verificate che il 5° ruolo di Schema Master sia assegnato ad uno dei server attivi.

Rimozione del server con ntdsutil
Per la parte seguente ho seguito la guida Rimozione di dati in Active Directory dopo un abbassamento di livello non riuscito di un controller di dominio riportata sul sito di Microsoft. Vi rimando a questa guida per eventuali approfondimenti e per le raccomandazioni in merito ai rischi dell’utilizzo non corretto di ntdsutil, il tool che sarà utilizzato per i passaggi successivi.

  1. Lanciate il comando ntdsutil in Start->Run…. In ogni schermata di ntdsutil sarà possibile ottenere una guida ai comandi digitando ? e successivamente INVIO.
  2. Digitate metadata cleanup, quindi premete INVIO.
  3. A questo punto è necessario connettersi ad uno dei server attivi. Digitate connections e premete INVIO.
  4. Digitate connect to server nomeserver, quindi premete INVIO. Verrà visualizzato un messaggio per confermare che la connessione è stata stabilita. E’ importante capire ora che i comandi successivi saranno riferiti al server a quale vi siete connessi.
  5. Digitate quit e premete INVIO per tornare al menu di metadata cleanup.
  6. A questo punto digitate select operation target e premere INVIO.
  7. Digitate list domains e premete INVIO. Verrà visualizzato un elenco dei domini nell’insieme di strutture, ognuno con un numero associato. Nel mio caso era presente un solo dominio.
  8. Digitate select domain numero e premete INVIO, dove numero è il numero associato al dominio di cui è membro il server che si desidera rimuovere. Il dominio selezionato viene utilizzato per determinare se il server in fase di rimozione è l’ultimo controller di dominio presente nel dominio.
  9. Digitate list sites e premere INVIO. Verrà visualizzato un elenco di siti, ognuno con un numero associato. Nel mio caso era presente un solo site.
  10. Digitate select site numero e premere INVIO, dove numero è il numero associato al sito di cui è membro il server che si desidera rimuovere. Verrà visualizzato un messaggio di conferma con l’indicazione del sito e del dominio scelti.
  11. Digitate list servers in site e premere INVIO. Verrà visualizzato un elenco dei server nel sito, ognuno con un numero associato. Nel mio caso erano presenti 3 server: 2 attivi e uno non più attivo.
  12. Digitare select server numero, dove numero è il numero associato al server che si desidera rimuovere. Verrà visualizzato un messaggio di conferma con l’indicazione del server selezionato, il relativo nome host DNS (Domain Name Server) e il percorso dell’account computer del server che si desidera rimuovere.
  13. A questo punto potete digitate list current selection e premete INVIO per verificare quanto è stato selezionato. Verificate che si tratti proprio del server attivo.
  14. Digitate quit e premete INVIO per tornare al menu metadata cleanup.
  15. Digitate remove selected server e premere INVIO.Successivamente vi verrà visualizzato il risultato di questa operazione. Se tutto è andato a buon fine, il più è fatto. Verificate all’interno di Active directory users and computers: il domain controller non più attivo non dovrebbe essere presente nella lista dei DC.

Rimozione delle repliche con ADSIedit

  1. Utilizzare lo snap-in ADSIEdit presente nei support tools del cd di installazione, per eliminare l’oggetto Membro FRS in CN=System (condivisione SYSVOL),CN=servizio Replica file,CN=sistema….
  2. Nella console DNS utilizzare DNS MMC per eliminare il record cname (definito anche Alias) nel contenitore _msdcs.
  3. Nella console DNS utilizzare DNS MMC per eliminare il record A (definito anche Host) in DNS.

Rimozione delle repliche in Active directory sites and services

  1. Aprite lo snap-in Active directory sites and services e visualizzate la lista dei servers dove dovrebbe ancora comparire il server non funzionante.
  2. Cliccate con il tasto destro e selezionate delete.
Share

Microsoft

  1. Francesco
    3 luglio 2010 a 16:42 | #1

    Grazie. Un’ottimo articolo!