DCDiag
Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016
DCDiag.exe
analizza lo stato dei controller di dominio in una foresta o in un'impresa e segnala i problemi per facilitarne 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 (RSAT) 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 dei test e di 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 organizzazione, 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.
Nota
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, ad esempio ping.exe
o tracert.exe
.
Sintassi DCDiag
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:
Parametro | Descrizione |
---|---|
/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> | ""} |
Usa Dominio\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 nulla. 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 | Attivare la modalità interattiva. Stampa solo messaggi di errore. |
/v | Verbose. Stampa informazioni estese. |
/correggi | Influisce solo sul test MachineAccount. Questo parametro fa sì che il test corregga i 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 | Completo. 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 or /? | 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 di connessione reale o potenziale. |
Test noti di DCDiag
Nella tabella successiva vengono visualizzati i test noti eseguiti per impostazione predefinita, se non diversamente specificato.
Test | Descrizione |
---|---|
Pubblicità | Controlla se ogni controller di dominio annuncia se stesso nei ruoli che deve essere in grado di eseguire. Questo test convalida che la funzione pubblica DsGetDcName usata dai computer per individuare correttamente i controller di dominio individua 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 della pubblicità 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 appropriati di riferimento del descrittore di sicurezza. 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. Controlla quanto segue:
Quando viene aggiunto il parametro /ReplSource , il partner controlla anche:
|
Connettività | Verifica che DSA e DNS siano registrati e raggiungibili tramite LDAP e RPC. |
CrossRefValidation | Recupera un elenco di contesti di denominazione che si trovano in cn=partitions,cn=configuration,dc=<forest root domain> con i relativi riferimenti incrociati e li convalida in modo analogo al test CheckSDRefDom usando LDAP. Questo test esamina gli attributi nCName, dnsRoot, nETBIOSName e systemFlags per:
|
CutoffServers | Verificare 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 replicare 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, allora 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:
Gli argomenti seguenti sono obbligatori:
|
DFSREvent | Questo test convalida l'integrità del servizio DFSR (Distributed File System Replication) controllando l'avviso del registro eventi DFSR e le voci di errore delle ultime 24 ore. Questo test usa RPC ed 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 (FRS) nelle ultime 24 ore, perché la mancata replica della condivisione SysVol può causare problemi di criteri. Questo test usa RPC ed EventLog Remoting Protocol. |
interno del sito | Verifica la presenza di errori che impedirebbero o manterrebbero 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 impedirebbero la replica di Active Directory tra siti all'interno di un sito specifico o di tutti i siti da:
è necessario usare il parametro /a o /e poiché il 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 si verifica 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 che illustra l'abilitazione di tali regole per consentire l'esito positivo 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 /e parametro fornisce dati per il confronto. Questo test usa RPC per restituire DSListRoles all'interno delle funzioni del Servizio (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 | Controllare le autorizzazioni per tutti i contesti di denominazione, ad esempio Schema, Configurazione e così via, nel controller di dominio sorgente che convalida le funzioni di replica e connettività tra controller di dominio. Assicura che i gruppi Controller di dominio organizzazione e Amministratori 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 Amministratori, Utenti autenticati, e Tutti dispongano dell'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 nel dominio verso i 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 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:
|
Repliche | Questo test controlla tutti gli oggetti connessione di replica di Active Directory per tutti i contesti di denominazione nei controller di dominio specificati se:
|
RidManager | Controlla se il relativo master identificatore (RID) è accessibile e se:
Il detentore 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. |
Servizi | 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 sistema HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Questo test usa RPC e il protocollo remoto di Service Control Manager . |
SysVolCheck | Questo test legge la chiave di registro netlogon 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 sia con SYSVOL replicati in FRS che in DFSR. Non verifica se le condivisioni SYSVOL e NELOGON sono accessibili perché vengono eseguite da CheckSecurityError. Questo test usa RPC su SMB. |
SystemLog | Convalida l'integrità del registro eventi di sistema leggendo e scrivendo voci degli ultimi 60 minuti per eventuali errori e avvisi. Questo test usa RPC e il protocollo remoto di Service Control Manager . |
Topologia | Controlla che la topologia di replica generata per Active Directory sia interamente connessa per tutte le accelerazioni di sito dinamico. Questo test non viene eseguito per impostazione predefinita e deve essere eseguito in modo esplicito. Controlla quanto segue:
Questo test usa 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 neanche se la pianificazione è chiusa, impedendo la replica. Per visualizzare i risultati della replica attiva, usare i test 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 su ogni controller di dominio. Sono inclusi gli attributi e gli oggetti del sito del controller di dominio indicati di seguito:
I due test DFSR vengono eseguiti solo se il livello di funzionalità del dominio è Windows Server 2008 o versione superiore. Ciò significa che si verifica un errore previsto se DFSR non è stata eseguita la migrazione 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 I seguenti attributi e gli oggetti del sito del controller di dominio:
Questo test usa LDAP ed è simile al test VerifyEnterpriseRefrences , ad eccezione del fatto che non controlla i riferimenti incrociati di partizione o tutti gli altri oggetti del controller di dominio. |
VerifyReplicas | Verifica che venga creata un'istanza completa di tutte le partizioni di directory dell'applicazione 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 , ad eccezione del fatto che non mostra i dati di output e convalida l'hosting. Questo test usa LDAP. |
Nota
I controlli della connettività sui controller di dominio registrati nella rete e la connessione con altre risorse, ad esempio DNS, LDAP e RPC , non possono essere ignorati.
Sintassi DNS
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:
Parametro | Descrizione |
---|---|
/test:DNS | Esegue il test DNS specificato. Se non viene specificato nessun oggetto , per impostazione predefinita viene usato /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 del servizio noto (SRV). 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 viene specificato, tenta di determinare il nome <www.microsoft.com>. Se /DnsInternetName viene specificato, tenta di determinare 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 /test:DNS su 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 . |
Nota
I tempi di esecuzione per i test DNS possono essere significativi nelle aziende di grandi dimensioni quando viene usato il parametro /e
. 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.
Esempi
Test di connettività
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 registro
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 valore, <FilePath>
i risultati vengono salvati in C:\Users\<UserName>\<FileName.txt>
per impostazione predefinita.
Per il salvataggio in una posizione specifica:
dcdiag /s:<DomainControllerName> /f:<DriveLetter>\<FilePath>\<FileName.txt>
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per