Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016
DCDiag.exe analizza lo stato dei controller di dominio (DC) in una foresta o in un'organizzazione e segnala eventuali problemi per facilitare la risoluzione dei problemi. Come programma per la creazione di report degli utenti finali, DCDiag è uno strumento da riga di comando che incapsula informazioni dettagliate su come identificare il comportamento anomalo nel sistema.
Per impostazione predefinita, DCDiag è prontamente disponibile se si è connessi a un controller di dominio. Un metodo alternativo per accedere a DCDiag consiste nell'installare gli strumenti di amministrazione remota del server nel dispositivo. DCDiag deve essere eseguito con diritti amministrativi da un prompt dei comandi con privilegi elevati (CMD) o PowerShell.
DCDiag è costituito da un framework per l'esecuzione di test e una serie di test per verificare diverse aree funzionali del sistema. Questo framework seleziona il controller di dominio testato in base alle direttive di ambito dell'utente, ad esempio enterprise, sito o server singolo. Il test della connettività complessiva e della velocità di risposta del controller di dominio include la verifica:
- Il controller di dominio può trovarsi in DNS
- Il controller di dominio risponde ai ping ICMP (Internet Control Message Protocol)
- Il controller di dominio consente la connettività LDAP (Lightweight Directory Access Protocol) tramite l'associazione all'istanza
- Il controller di dominio consente l'associazione all'interfaccia RPC di Active Directory tramite la funzione DsBindWithCred .
Note
Il blocco ICMP impedisce a DCDiag di funzionare come previsto. Anche se il blocco ICMP è consigliato al perimetro Internet della rete, il blocco interno del traffico ICMP causa problemi amministrativi che interrompono i criteri di gruppo legacy, il rilevamento del router black hole o dimensioni MTU inefficienti a causa della mancanza di un'opzione di individuazione. Sono interessati anche strumenti per la risoluzione dei problemi, ping.exe ad esempio o tracert.exe .
DCDiag syntax
dcdiag [/s:<DomainController>] [/n:<NamingContext>] [/u:<Domain>\<UserName> /p:{* | <Password> | ""}] [{/a | /e}] [{/q | /v}] [/i] [/f:<LogFile>] [/c [/skip:<Test>]] [/test:<Test>] [/fix] [{/h | /?}] [/ReplSource:<SourceDomainController>]
DCDiag usa i parametri seguenti:
| Parameter | Description |
|---|---|
/s:<DomainController> |
Specifica il nome del server in cui eseguire il comando. Se questo parametro non viene specificato, i test vengono eseguiti sul controller di dominio locale. Questo parametro viene ignorato per i test DcPromo e RegisterInDns, che possono essere eseguiti solo in locale. |
/n:<NamingContext> |
Usa NamingContext come contesto di denominazione da testare. È possibile specificare domini in NetBIOS, dns (Domain Name System) o in formato di nome distinto. |
/u:<Domain>\<UserName> /p:{<Password> | ""} |
Uses Domain\UserName. DCDiag usa le credenziali correnti dell'utente (o del processo) connesso. Se sono necessarie credenziali alternative, usare le opzioni seguenti per fornire tali credenziali per l'associazione con Password come password: usare le virgolette ("") per una password vuota o null. Usare il carattere jolly (*) per richiedere la password. |
| /a | Verifica tutti i server in questo sito di Active Directory Domain Services. |
| /e | Verifica tutti i server dell'organizzazione. In questo modo viene eseguito l'override di /a. |
| /q | Quiet. Stampa solo messaggi di errore. |
| /v | Verbose. Stampa informazioni estese. |
| /fix | Influisce solo sul test MachineAccount. Questo parametro determina la correzione dei nomi dell'entità servizio (SPN) nell'oggetto Account computer del controller di dominio. |
/f:<LogFile> |
Reindirizza tutto l'output a un file di log. |
| /c | Comprehensive. Esegue tutti i test ad eccezione di DCPromo e RegisterInDNS, inclusi i test non predefiniti. Facoltativamente, è possibile usare questo parametro con il /skip parametro per ignorare i test specificati.I test seguenti non vengono eseguiti per impostazione predefinita:
|
| /h o /? | Visualizza la guida al prompt dei comandi. |
/test:<Test> |
Esegue solo questo test. Il test di connettività non può essere ignorato con il /skip parametro . |
/ReplSource:<SourceDomainController> |
Verifica la connessione tra il controller di dominio in cui si esegue il comando e il controller di dominio di origine. Questo parametro viene usato per il test CheckSecurityError. SourceDomainController è il nome DNS, il nome NetBIOS o il nome distinto di un server reale o potenziale che sarà il controller di dominio di origine per la replica, come rappresentato da un oggetto connessione reale o potenziale. |
Test noti di DCDiag
Nella tabella seguente vengono visualizzati i test noti eseguiti per impostazione predefinita, se non diversamente specificato.
| Test | Description |
|---|---|
| Advertising | Controlla se ogni controller di dominio annuncia se stesso nei ruoli che deve essere in grado di eseguire. Questo test verifica che la funzione pubblica DsGetDcName utilizzata dai computer per individuare i controller di dominio individuerà correttamente tutti i controller di dominio. Questo test ha esito negativo se il servizio Netlogon è stato arrestato o non è riuscito ad avviarlo. Se il servizio Chiave di distribuzione chiavi (KDC) viene arrestato, il test della pubblicità ha esito negativo perché il flag restituito da DsGetDcName non includerà KDC. Se la porta 88 su TCP e UDP è bloccata in un firewall, il test advertising passerà nonostante il KDC non sia in grado di rispondere alle richieste di ticket Kerberos. |
| CheckSDRefDom | Verifica che tutte le partizioni di directory dell'applicazione dispongano di domini di riferimento del descrittore di sicurezza appropriati. Questo test usa LDAP e convalida gli oggetti di riferimento incrociato che si trovano in cn=partitions,cn=configuration,dc=<forest root domain> contengono i nomi di dominio corretti negli attributi msDS-SDReferenceDomain . |
| CheckSecurityError | Il test non viene eseguito per impostazione predefinita. Esegue vari controlli di sicurezza per verificare la presenza di errori relativi ai componenti di sicurezza del controller di dominio, ad esempio problemi con i criteri di sicurezza o il database di sicurezza tramite LDAP, RPC, RPC su SMB e ICMP. It checks:
Quando viene aggiunto il parametro /ReplSource , il partner controlla anche:
|
| Connectivity | Verifica che DSA e DNS siano registrati e raggiungibili tramite LDAP e RPC. |
| CrossRefValidation | Recupera un elenco di contesti di denominazione situati in cn=partitions,cn=configuration,dc=<forest root domain> con i loro riferimenti incrociati e poi li convalida in modo simile al test CheckSDRefDom utilizzando LDAP. Questo test esamina gli attributi nCName, dnsRoot, nETBIOSName e systemFlags per:
|
| CutoffServers | Verifica la replica di Active Directory per assicurarsi che non siano presenti controller di dominio senza oggetti di connessione funzionanti tra partner. Tutti i server che non possono eseguire la replica in ingresso o in uscita da qualsiasi controller di dominio vengono considerati tagliati usando la funzione DsReplicaSyncAll , che attiva la replica nei controller di dominio. Usare il /e parametro con cautela se sono presenti collegamenti WAN non correttamente implementati che vengono mantenuti puliti usando le pianificazioni. Se un server non può essere contattato o non è disponibile per LDAP in rete, non fornisce alcun risultato di errore o test, anche se il /v parametro è specificato. Questo test usa RPC. |
| DcPromo | Verifica il server specificato nelle impostazioni DNS client se l'infrastruttura soddisfa i requisiti necessari per promuovere il dispositivo a un controller di dominio. Questo test usa DNS nella rete e verifica:
Sono necessari gli argomenti seguenti:
|
| DFSREvent | Questo test convalida l'integrità del servizio™Replica DFSR (Distributed File System Replication) controllando le voci di avviso e di errore del registro eventi DFSR delle ultime 24 ore. Questo test usa RPC e EventLog Remoting Protocol. |
| DNS | Verifica i controlli di integrità DNS a livello aziendale usando protocolli DNS, RPC e WMI. Non eseguito per impostazione predefinita e deve essere richiesto in modo esplicito. Vedere Sintassi DNS. |
| FrsEvent | Verifica se sono presenti errori nel registro eventi del servizio Replica file nelle ultime 24 ore, perché la replica della condivisione SysVol può causare problemi di criteri. Questo test usa RPC e EventLog Remoting Protocol. |
| Intersite | Verifica la presenza di errori che impediscono o mantengono temporaneamente la replica tra siti e stima il tempo necessario per il ripristino di KCC. Questo test usa le funzioni DRS per verificare la presenza di condizioni che impediscono la replica di Active Directory tra siti all'interno di un sito specifico o di tutti i siti da:
Il /a parametro o /e deve essere usato come non fornire un sito consente l'esecuzione del test, ma ignora i test effettivi. Questo test usa RPC in rete per testare gli aspetti della replica e chiede alle connessioni del Registro di sistema di verificare la presenza di voci di override NTDS. LDAP viene usato anche per individuare le informazioni di connessione. |
| KccEvent | Questo test esegue una query su KCC nel controller di dominio per individuare gli errori e gli avvisi generati nel registro eventi di Servizi directory negli ultimi 15 minuti. La soglia di 15 minuti è indipendentemente dal valore del Registro di sistema Repl topology update period (secs) nel controller di dominio. Se le regole del firewall causano l'esito negativo di questo test, vedere KB2512643 relativa all'abilitazione di tali regole per consentire il successo del test. Questo test usa RPC insieme al protocollo di comunicazione remota EventLog. |
| KnowsOfRoleHolders | Questo test restituisce le conoscenze dei controller di dominio dei cinque ruoli FSMO (Flexible Single Master Operation), ma non verifica la coerenza di tutti i controller di dominio. L'uso del parametro fornisce dati per il /e confronto. Questo test utilizza RPC per restituire DSListRoles all'interno delle funzioni del servizio di replica directory (DRS). |
| MachineAccount | Verifica se l'account del computer è registrato correttamente e che i servizi vengono annunciati tramite LDAP e RPC su SMB, incluso il controllo:
Questo test include anche due opzioni di ripristino:
|
| NCSecDesc | Controlla le autorizzazioni per tutti i contesti di denominazione(ad esempio Schema, Configurazione e così via) nel controller di dominio di origine per verificare che la replica e la connettività funzionino tra controller di dominio. Assicura che i controller di dominio enterprise e i gruppi Administrators dispongano delle autorizzazioni minime corrette, ovvero lo stesso test eseguito all'interno di CheckSecurityError. Questo test usa LDAP. |
| NetLogons | Verifica che l'utente che esegue DCDiag possa connettersi e leggere le condivisioni SYSVOL e NETLOGON senza errori di sicurezza. Verifica inoltre che i gruppi Administrators, Authenticated Users e Everyone abbiano accesso a questo computer dal privilegio di rete nel controller di dominio. |
| ObjectsReplicated | Verifica che gli oggetti Machine Account e Directory System Agent (DSA) siano stati replicati. Due oggetti vengono convalidati per impostazione predefinita e che esistono in ogni controller di dominio e sono aggiornati su tutti gli altri controller di dominio:
È possibile usare il /objectdn:dn parametro con il /n:nc parametro per specificare un oggetto aggiuntivo da controllare. Questo test viene eseguito usando RPC con le funzioni DRS. |
| OutboundSecureChannels | Questo test non viene eseguito per impostazione predefinita. Verifica che i canali sicuri esistano da tutti i controller di dominio nel dominio ai domini specificati dal /testdomain parametro . Il /nositerestriction parametro impedisce a DCDiag di limitare il test ai controller di dominio nel sito. |
| RegisterInDNS | Verifica se il server di directory può registrare i record DNS del localizzatore del server di directory. Questi record devono essere presenti in DNS per consentire ad altri computer di individuare questo server di directory per il <dominio Active_Directory_Domain_DNS_Name> . Ciò segnala anche se sono necessarie modifiche all'infrastruttura DNS esistente. Il parametro /DnsDomain:<Active_Directory_Domain_DNS_Name> deve essere usato. Questo test verifica:
|
| Replications | Questo test controlla tutti gli oggetti connessione di replica di Active Directory per tutti i contesti dei nomi nei controller di dominio specificati se:
|
| RidManager | Controlla se il master dell'identificatore relativo (RID) è accessibile e se:
Il titolare del ruolo deve essere online e accessibile per consentire ai controller di dominio di essere in grado di creare entità di sicurezza (utenti, computer e gruppi) e per promuovere altri controller di dominio all'interno di un dominio. Questo test usa LDAP e RPC. |
| Services | Questo test verifica che diversi servizi dipendenti da ACTIVE Directory siano in esecuzione, accessibili e impostati su tipi di avvio specifici. Questi servizi vengono avviati automaticamente ed eseguiti in un processo condiviso, se non diversamente specificato:
Questi nomi di servizio sono elencati nel percorso del Registro di sistemaHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Questo test usa RPC e il protocollo remoto di Service Control Manager . |
| SysVolCheck | Questo test legge la chiave del Registro di sistema Netlogon SysVolReady dei controller di dominio per verificare che SYSVOL sia pronto. Il nome del valore deve esistere con un valore pari a 1 per superare questo test e funziona con FRS o DFSR replicato SYSVOLs. Non controlla se le condivisioni SYSVOL e NELOGON sono accessibili poiché questa operazione viene eseguita da CheckSecurityError. Questo test usa RPC su SMB. |
| SystemLog | Convalida l'integrità del registro eventi di sistema leggendo e scrivendo le voci degli ultimi 60 minuti per eventuali errori e avvisi. Questo test usa RPC e il protocollo remoto di Service Control Manager . |
| Topology | Verifica che la topologia di replica di Active Directory generata sia completamente connessa per tutte le DSA. Questo test non viene eseguito per impostazione predefinita e deve essere eseguito in modo esplicito. It checks:
Questo test utilizza RPC, LDAP e DsReplicaSyncAll con il flag DS_REPSYNCALL_DO_NOT_SYNC, ovvero analizza e convalida la topologia di replica senza replicare effettivamente le modifiche. Questo test non convalida la disponibilità dei partner di replica. La presenza offline di un partner non causerà errori in questo test. Non verifica anche se la pianificazione è chiusa, impedendo la replica. Per visualizzare i risultati della replica attiva, utilizzare tests Replications o CutoffServers. |
| VerifyEnterpriseReferences | Verifica che i riferimenti di sistema specificati siano intatti per l'infrastruttura frs e di replica in tutti gli oggetti dell'organizzazione in ogni controller di dominio. Sono inclusi gli attributi e gli oggetti del sito del controller di dominio seguenti:
I due test DFSR vengono eseguiti solo se il livello di funzionalità del dominio è Windows Server 2008 o superiore. Ciò significa che si verificherà un errore previsto se DFSR non è stato migrato a SYSVOL. Questo test usa LDAP e vengono contattati solo i controller di dominio specificati. |
| VerifyReferences | Verifica che alcuni riferimenti di sistema siano intatti per l'infrastruttura frS e di replica. Questo test verifica gli attributi di riferimento del computer per un singolo controller di dominio, inclusi gli attributi e gli oggetti del sito del controller di dominio seguenti:
Questo test usa LDAP ed è simile al test VerifyEnterpriseRefrences , ad eccezione del fatto che non controlla i riferimenti incrociati delle partizioni o tutti gli altri oggetti DC. |
| VerifyReplicas | Verifica che tutte le partizioni di directory dell'applicazione siano completamente create in tutti i server di replica. Verifica che il server specificato ospiti le partizioni dell'applicazione specificate dai relativi attributi crossref nel contenitore delle partizioni. Funziona come CheckSDRefDom , tranne per il fatto che non mostra i dati di output e convalida l'hosting. Questo test usa LDAP. |
Note
I controlli di connettività sui controller di dominio registrati nella rete e connessi con altre risorse come DNS, LDAP e RPC non possono essere ignorati.
DNS syntax
dcdiag /test:DNS [/DnsBasic | /DnsForwarders | /DnsDelegation | /DnsDynamicUpdate | /DnsRecordRegistration | /DnsResolveExtName [/DnsInternetName:<InternetName>] | /DnsAll] [/f:<LogFile>] [/x:<XMLLog.xml>] [/xsl:<XSLFile.xsl> or <XSLTFile.xslt>] [/s:<DomainController>] [/e] [/v]
Il test DNS usa i parametri seguenti:
| Parameter | Description |
|---|---|
| /test:DNS | Esegue il test DNS specificato. Se non viene specificato alcun test, il valore predefinito è /DnsAll. |
| /DnsBasic | Esegue test DNS di base, tra cui la connettività di rete, la configurazione del client DNS, la disponibilità del servizio e l'esistenza della zona. |
| /DnsForwarders | Esegue i /DnsBasic test e controlla anche la configurazione dei server d'inoltro. |
| /DnsDelegation | Esegue i /DnsBasic test e verifica anche la presenza di deleghe appropriate. |
| /DnsDynamicUpdate | Esegue /DnsBasic test e determina anche se l'aggiornamento dinamico è abilitato nell'area Active Directory. |
| /DnsRecordRegistration | Esegue i /DnsBasic test e controlla anche se vengono registrati l'indirizzo (A), il nome canonico (CNAME) e i record di risorse SRV (Known Service). Crea inoltre un report di inventario in base ai risultati del test. |
/DnsResolveExtName [/DnsInternetName:\<InternetName>] |
Esegue i /DnsBasic test e tenta anche di risolvere InternetName. Se /DnsInternetName non è specificato, tenta di risolvere il nome <www.microsoft.com>. Se /DnsInternetName viene specificato, tenta di risolvere il nome Internet fornito dall'utente. |
| /DnsAll | Esegue tutti i test, ad eccezione del /DnsResolveExtName test, e genera un report. |
/f:<LogFile> |
Reindirizza tutto l'output a un file di log. |
/s:<DomainController> |
Esegue i test sul controller di dominio. Se questo parametro non viene specificato, i test vengono eseguiti sul controller di dominio locale. |
| /e | Esegue tutti i test specificati da su /test:DNS tutti i controller di dominio nella foresta Active Directory. |
| /v | Verbose. Presenta informazioni estese sui risultati dei test riusciti oltre a informazioni sugli errori e sugli avvisi. Quando il /v parametro non viene usato, fornisce solo informazioni sugli errori e sugli avvisi. Usare l'opzione /v quando vengono segnalati errori o avvisi nella tabella di riepilogo. |
/x:<XMLLog.xml> |
Reindirizza tutto l'output a xmllog.xml. Questo parametro funziona solo con l'opzione /test:DNS . |
/xsl:<XSLFile.xsl> o /xsl: <XSLTFile.xslt> |
Aggiunge le istruzioni di elaborazione che fanno riferimento al foglio specificato. Questo parametro funziona solo con l'opzione /test:DNS /x:<XMLLog.xml . |
Note
I tempi di esecuzione per i test DNS possono essere significativi in aziende di grandi dimensioni quando viene usato il /e parametro . I controller di dominio e i server DNS offline aumentano i tempi di esecuzione a causa di lunghi periodi di timeout per RPC e altri protocolli.
Examples
Connectivity test
Per eseguire una serie di test di connettività nel dominio locale, eseguire il comando seguente:
dcdiag
Output del test di connettività riuscito:
Directory Server Diagnosis
Performing initial setup:
Trying to find home server...
Home Server = MapleWaffle-WS22
* Identified AD Forest.
Done gathering initial info.
Doing initial required tests
Testing server: Default-First-Site-Name\MAPLEWAFFLE-WS2
Starting test: Connectivity
......................... MAPLEWAFFLE-WS2 passed test Connectivity
Doing primary tests
Testing server: Default-First-Site-Name\MAPLEWAFFLE-WS2
Starting test: Advertising
......................... MAPLEWAFFLE-WS2 passed test Advertising
Starting test: FrsEvent
......................... MAPLEWAFFLE-WS2 passed test FrsEvent
Starting test: DFSREvent
......................... MAPLEWAFFLE-WS2 passed test DFSREvent
Starting test: SysVolCheck
......................... MAPLEWAFFLE-WS2 passed test SysVolCheck
Starting test: KccEvent
......................... MAPLEWAFFLE-WS2 passed test KccEvent
Starting test: KnowsOfRoleHolders
......................... MAPLEWAFFLE-WS2 passed test KnowsOfRoleHolders
Starting test: MachineAccount
......................... MAPLEWAFFLE-WS2 passed test MachineAccount
Starting test: NCSecDesc
......................... MAPLEWAFFLE-WS2 passed test NCSecDesc
Starting test: NetLogons
......................... MAPLEWAFFLE-WS2 passed test NetLogons
Starting test: ObjectsReplicated
......................... MAPLEWAFFLE-WS2 passed test ObjectsReplicated
Starting test: Replications
......................... MAPLEWAFFLE-WS2 passed test Replications
Starting test: RidManager
......................... MAPLEWAFFLE-WS2 passed test RidManager
Starting test: Services
......................... MAPLEWAFFLE-WS2 passed test Services
Starting test: SystemLog
......................... MAPLEWAFFLE-WS2 passed test SystemLog
Starting test: VerifyReferences
......................... MAPLEWAFFLE-WS2 passed test VerifyReferences
Running partition tests on : ForestDnsZones
Starting test: CheckSDRefDom
......................... ForestDnsZones passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... ForestDnsZones passed test CrossRefValidation
Running partition tests on : DomainDnsZones
Starting test: CheckSDRefDom
......................... DomainDnsZones passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... DomainDnsZones passed test CrossRefValidation
Running partition tests on : Schema
Starting test: CheckSDRefDom
......................... Schema passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... Schema passed test CrossRefValidation
Running partition tests on : Configuration
Starting test: CheckSDRefDom
......................... Configuration passed test
CheckSDRefDom
Starting test: CrossRefValidation
......................... Configuration passed test
CrossRefValidation
Running partition tests on : corp
Starting test: CheckSDRefDom
......................... corp passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... corp passed test CrossRefValidation
Running enterprise tests on : corp.contoso.com
Starting test: LocatorCheck
......................... corp.contoso.com passed test
LocatorCheck
Starting test: Intersite
......................... corp.contoso.com passed test
Intersite
Per eseguire una serie di test di connettività in un controller di dominio specifico, eseguire il comando seguente:
dcdiag /s:<DomainControllerName>
Dovrebbe generare risultati simili al test locale se non vengono rilevati problemi.
Output in un file di log
DCDiag è in grado di salvare i risultati di output in un file di testo eseguendo:
dcdiag /s:<DomainControllerName> /f:<FileName.txt>
Se non viene specificato alcun <FilePath> valore, i risultati vengono salvati in C:\Users\<UserName>\<FileName.txt> per impostazione predefinita.
Per salvare in una posizione specifica, eseguire:
dcdiag /s:<DomainControllerName> /f:<DriveLetter>\<FilePath>\<FileName.txt>