Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016
DCDiag.exe analisa o estado dos controladores de domínio (DC) em uma floresta ou empresa e relata quaisquer problemas para ajudar na solução de problemas. Como um programa de relatórios do usuário final, o DCDiag é uma ferramenta de linha de comando que encapsula o conhecimento detalhado de como identificar o comportamento anormal no sistema.
Por padrão, o DCDiag está prontamente disponível se estiver conectado a um DC. Um método alternativo para acessar o DCDiag é instalar as Ferramentas de Administração de Servidor Remoto (RSAT) em seu dispositivo. O DCDiag deve ser executado com direitos administrativos a partir de um prompt de comando elevado (CMD) ou PowerShell.
DCDiag consiste em uma estrutura para a execução de testes e uma série de testes para verificar diferentes áreas funcionais do sistema. Essa estrutura seleciona qual controlador de domínio é testado de acordo com as diretivas de escopo do usuário, como empresa, site ou servidor único. O teste da conectividade geral e da capacidade de resposta do DC inclui verificar:
- O DC pode ser localizado no DNS
- O DC responde a pings ICMP (Internet Control Message Protocol)
- O DC permite a conectividade LDAP (Lightweight Directory Access Protocol) vinculando-se à instância
- O DC permite a ligação à interface RPC do AD usando a função DsBindWithCred .
Note
O bloqueio do ICMP impede que o DCDiag funcione como pretendido. Embora o bloqueio do ICMP seja recomendado na borda da Internet da sua rede, o bloqueio interno do tráfego ICMP leva a problemas administrativos que quebram as políticas de grupo herdadas, deteção de roteador de buraco negro ou tamanhos de MTU ineficientes devido à falta de uma opção de descoberta. Ferramentas de solução de problemas como ping.exe ou tracert.exe também são afetadas.
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 os seguintes parâmetros:
| Parameter | Description |
|---|---|
/s:<DomainController> |
Especifica o nome do servidor contra o qual executar o comando. Se esse parâmetro não for especificado, os testes serão executados no controlador de domínio local. Esse parâmetro é ignorado para testes DcPromo e RegisterInDns, que só podem ser executados localmente. |
/n:<NamingContext> |
Usa NamingContext como o contexto de nomeação para testar. Você pode especificar domínios em NetBIOS, DNS (Sistema de Nomes de Domínio) ou formato de nome distinto. |
/u:<Domain>\<UserName> /p:{<Password> | ""} |
Uses Domain\UserName. O DCDiag usa as credenciais atuais do usuário (ou processo) que está conectado. Se forem necessárias credenciais alternativas, use as seguintes opções para fornecer essas credenciais para vinculação com Senha como senha: Use aspas ("") para uma senha vazia ou nula. Use o caractere curinga (*) para solicitar a senha. |
| /a | Testa todos os servidores neste site do AD DS. |
| /e | Testa todos os servidores da empresa. Isso substitui o /a. |
| /q | Quiet. Imprime apenas mensagens de erro. |
| /v | Verbose. Imprime informações estendidas. |
| /fix | Afeta apenas o teste MachineAccount. Esse parâmetro faz com que o teste corrija os SPNs (Nomes da Entidade de Serviço) no objeto Conta de Máquina do controlador de domínio. |
/f:<LogFile> |
Redireciona toda a saída para um arquivo de log. |
| /c | Comprehensive. Executa todos os testes, exceto DCPromo e RegisterInDNS, incluindo testes não padrão. Opcionalmente, você pode usar esse parâmetro com o parâmetro para ignorar testes /skip especificados.Os seguintes testes não são executados por padrão:
|
| /h ou /? | Exibe ajuda no prompt de comando. |
/test:<Test> |
Executa apenas este teste. O teste de conectividade não pode ser ignorado com o /skip parâmetro. |
/ReplSource:<SourceDomainController> |
Testa a conexão entre o controlador de domínio no qual você executa o comando e o controlador de domínio de origem. (Este parâmetro é usado para o teste CheckSecurityError.) SourceDomainController é o nome DNS, nome NetBIOS ou nome distinto de um servidor real ou potencial que será o controlador de domínio de origem para replicação, conforme representado por um objeto de conexão real ou potencial. |
DCDiag testes conhecidos
A tabela a seguir exibe testes conhecidos que são executados por padrão, a menos que especificado de outra forma.
| Test | Description |
|---|---|
| Advertising | Verifica se cada controlador de domínio se anuncia nas funções que deve ser capaz de desempenhar. Este teste valida que a função pública DsGetDcName usada por computadores para localizar controladores de domínio localizará corretamente quaisquer DCs. Este teste falhará se o serviço Netlogon tiver parado ou falhado ao iniciar. Se o serviço de chave de distribuição de chave (KDC) for interrompido, o teste de publicidade falhará, pois o sinalizador retornado de DsGetDcName não incluirá KDC. Se a porta 88 sobre TCP e UDP estiver bloqueada em um firewall, o teste de publicidade será aprovado apesar do KDC não ser capaz de responder às solicitações de tíquetes Kerberos. |
| CheckSDRefDom | Verifica se todas as partições de diretório de aplicativos têm domínios de referência de descritor de segurança apropriados. Este teste usa LDAP e valida objetos de referência cruzada localizados em cn=partitions,cn=configuration,dc=<forest root domain> contêm os nomes de domínio corretos em seus atributos msDS-SDReferenceDomain . |
| CheckSecurityError | O teste não é executado por padrão. Executa várias verificações de segurança em busca de erros relacionados aos componentes de segurança do DC, como problemas com a diretiva de segurança ou o banco de dados de segurança usando LDAP, RPC, RPC sobre SMB e ICMP. It checks:
Quando o parâmetro /ReplSource é adicionado, o parceiro também verifica:
|
| Connectivity | Verifica se o DSA e o DNS estão registrados e acessíveis usando LDAP e RPC. |
| CrossRefValidation | Recupera uma lista de contextos de nomenclatura localizados em cn=partitions,cn=configuration,dc=<forest root domain> com suas referências cruzadas e, em seguida, valida-os de forma semelhante ao teste CheckSDRefDom usando LDAP. Este teste analisa os atributos nCName, dnsRoot, nETBIOSName e systemFlags para:
|
| CutoffServers | Testa a replicação do AD para garantir que não haja DCs sem objetos de conexão de trabalho entre parceiros. Todos os servidores que não podem replicar entrada ou saída de nenhum DCs são considerados cortados usando a função DsReplicaSyncAll , que aciona a replicação nos DCs. Use o /e parâmetro com cuidado se houver links WAN mal implementados que são mantidos limpos usando agendas. Se um servidor não puder ser contatado ou não estiver disponível para LDAP na rede, ele não fornecerá nenhum erro ou resultados de teste, mesmo que o /v parâmetro seja especificado. Este teste usa RPC. |
| DcPromo | Testa o servidor especificado nas configurações de DNS do cliente se a infraestrutura atender aos requisitos necessários para promover seu dispositivo a um DC. Este teste usa DNS na rede e verifica:
São necessários os seguintes argumentos:
|
| DFSREvent | Este teste valida a integridade do serviço™DFSR (Distributed File System Replication) verificando o aviso do log de eventos DFSR e as entradas de erro das últimas 24 horas. Este teste usa RPC e EventLog Remoting Protocol. |
| DNS | Testa verificações de integridade de DNS em toda a empresa usando protocolos DNS, RPC e WMI. Não executado por padrão e deve ser explicitamente solicitado. Consulte Sintaxe DNS. |
| FrsEvent | Verifica se há erros no log de eventos do FRS (Serviço de Replicação de Arquivos) das últimas 24 horas, pois a falha na replicação do compartilhamento SysVol pode causar problemas de política. Este teste usa RPC e EventLog Remoting Protocol. |
| Intersite | Verifica se há falhas que impeçam ou atrasem temporariamente a replicação entre locais e prevê quanto tempo levaria para a recuperação do KCC. Este teste usa funções DRS para verificar condições que impediriam a replicação do AD entre sites em um site específico ou em todos os sites:
O /a parâmetro or /e deve ser usado, pois não fornecer um site permitiria que o teste fosse executado, mas ignora o teste real. Esse teste usa RPC na rede para testar os aspetos de replicação e solicita que as conexões do Registro verifiquem se há entradas de substituição NTDS. O LDAP também é usado para localizar informações de conexão. |
| KccEvent | Este teste consulta o KCC no DC em busca de erros e avisos gerados no log de eventos dos Serviços de Diretório durante os últimos 15 minutos. O limite de 15 minutos é independente do valor do Registro do período de atualização da topologia de reposição (segs) no DC. Se as regras de firewall estiverem fazendo com que esse teste falhe, consulte KB2512643 que aborda a habilitação dessas regras para permitir que o teste seja bem-sucedido. Este teste usa RPC junto com o protocolo de comunicação remota EventLog. |
| KnowsOfRoleHolders | Este teste retorna o conhecimento dos DCs das cinco funções FSMO (Flexible Single Master Operation), mas não verifica se todos os DCs têm consistência. O uso do /e parâmetro fornece dados para comparação. Este teste usa RPC para retornar DSListRoles dentro das funções do Serviço de Replicação de Diretório (DRS). |
| MachineAccount | Verifica se a conta da máquina foi registrada corretamente e se os serviços são anunciados usando LDAP e RPC sobre SMB, incluindo a verificação:
Este teste também tem duas opções de reparo:
|
| NCSecDesc | Verifica as permissões em todos os contextos de nomenclatura (como Esquema, Configuração, etc.) no DC de origem para validar se a replicação e a conectividade funcionam entre DCs. Ele garante que os grupos de Controladores de Domínio Corporativo e Administradores tenham as permissões mínimas corretas, que é o mesmo teste realizado em CheckSecurityError. Este teste usa LDAP. |
| NetLogons | Valida que o usuário que executa o DCDiag pode se conectar e ler os compartilhamentos SYSVOL e NETLOGON sem erros de segurança. Também verifica se o grupo Administradores, Utilizadores Autenticados e Todos têm acesso a este computador a partir do privilégio de rede no DC. |
| ObjectsReplicated | Verifica se os objetos Conta de Máquina e DSA (Directory System Agent) foram replicados. Dois objetos são validados por padrão e existem em cada DC e estão atualizados em todos os outros DCs:
Você pode usar o /objectdn:dn parâmetro com o /n:nc parâmetro para especificar um objeto adicional a ser verificado. Este teste é feito usando RPC com funções DRS. |
| OutboundSecureChannels | Este teste não é executado por padrão. Ele verifica se existem canais seguros de todos os controladores de domínio no domínio para os domínios especificados pelo /testdomain parâmetro. O /nositerestriction parâmetro impede que o DCDiag limite o teste aos controladores de domínio no site. |
| RegisterInDNS | Testa se o servidor de diretório pode registrar os registros DNS do Localizador de Servidores de diretório. Esses registros devem estar presentes no DNS para que outros computadores localizem esse servidor de diretório para o <domínio Ative_Directory_Domain_DNS_Name> . Isso também informa se alguma modificação na infraestrutura DNS existente é necessária. O parâmetro /DnsDomain:<Ative_Directory_Domain_DNS_Name> deve ser usado. Este teste verifica:
|
| Replications | Este teste verifica todos os objetos de conexão de replicação do AD para todos os contextos de nomenclatura no(s) DC(s) especificado(s) se:
|
| RidManager | Verifica se o identificador relativo (RID) mestre está acessível e se:
O titular da função deve estar online e acessível para que os DCs possam criar entidades de segurança (usuários, computadores e grupos), bem como para que outros DCs sejam promovidos dentro de um domínio. Este teste usa LDAP e RPC. |
| Services | Este teste valida se vários serviços dependentes de AD estão em execução, acessíveis e definidos para tipos de início específicos. Esses serviços são iniciados automaticamente e executados em um processo compartilhado, a menos que especificado de outra forma:
Esses nomes de serviço são listados no caminho do Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Este teste usa RPC e o protocolo remoto do Service Control Manager . |
| SysVolCheck | Este teste lê a chave de registo DCs Netlogon SysVolReady para validar que o SYSVOL está pronto. O nome do valor deve existir com um valor de 1 para passar neste teste e funciona com SYSVOLs replicados FRS ou DFSR. Ele não verifica se os compartilhamentos SYSVOL e NELOGON estão acessíveis, pois isso é executado por CheckSecurityError. Este teste usa RPC sobre SMB. |
| SystemLog | Valida a integridade do Log de Eventos do Sistema lendo e gravando entradas dos últimos 60 minutos para quaisquer erros e avisos. Este teste usa RPC e o protocolo remoto do Service Control Manager . |
| Topology | Verifica se a topologia de replicação do AD gerada está totalmente conectada para todos os DSAs. Esse teste não é executado por padrão e deve ser executado explicitamente. It checks:
Esse teste usa RPC, LDAP e DsReplicaSyncAll com o sinalizador DS_REPSYNCALL_DO_NOT_SYNC, o que significa que ele analisa e valida a topologia de replicação sem realmente replicar as alterações. Este teste não valida a disponibilidade dos parceiros de replicação. Ter um parceiro offline não causará falhas neste teste. Ele também não testa se o cronograma está fechado, impedindo a replicação. Para ver os resultados da replicação ativa, use os testes Replications ou CutoffServers. |
| VerifyEnterpriseReferences | Verifica se as referências de sistema especificadas estão intactas para o FRS e a infraestrutura de replicação em todos os objetos da empresa em cada controlador de domínio. Isso inclui os seguintes atributos e objetos de site DC:
Os dois testes DFSR só são executados se o nível funcional do domínio for Windows Server 2008 ou superior. Isso significa que haverá uma falha esperada se o DFSR não tiver sido migrado para o SYSVOL. Este teste usa LDAP e apenas os DCs especificados são contatados. |
| VerifyReferences | Verifica se determinadas referências do sistema estão intactas para o FRS e a infraestrutura de replicação. Este teste verifica os atributos de referência do computador para um único DC, incluindo os seguintes atributos e objetos do site DC:
Este teste usa LDAP e é semelhante ao teste VerifyEnterpriseRefrences , exceto que ele não verifica referências cruzadas de partição ou todos os outros objetos DC. |
| VerifyReplicas | Verifica se todas as partições de diretório de aplicativos estão totalmente instanciadas em todos os servidores de réplica. Ele verifica se o servidor especificado hospeda as partições de aplicativo especificadas por seus atributos crossref no contêiner de partições. Ele opera como CheckSDRefDom , exceto que não mostra dados de saída e valida a hospedagem. Este teste usa LDAP. |
Note
As verificações de conectividade em controladores de domínio registrados na rede e conectados a outros recursos, como DNS, LDAP e RPC, não podem ser ignoradas.
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]
O teste DNS usa os seguintes parâmetros:
| Parameter | Description |
|---|---|
| /test:DNS | Executa o teste DNS especificado. Se nenhum teste for especificado, o padrão será /DnsAll. |
| /DnsBasic | Executa testes básicos de DNS, incluindo conectividade de rede, configuração de cliente DNS, disponibilidade de serviço e existência de zona. |
| /DnsForwarders | Realiza os /DnsBasic testes e também verifica a configuração dos encaminhadores. |
| /DnsDelegation | Realiza os testes e também verifica se /DnsBasic há delegações adequadas. |
| /DnsDynamicUpdate | Executa /DnsBasic testes e também determina se a atualização dinâmica está habilitada na zona do Ative Directory. |
| /DnsRecordRegistration | Executa os /DnsBasic testes e também verifica se os registros de recursos de endereço (A), nome canônico (CNAME) e serviço conhecido (SRV) estão registrados. Além disso, cria um relatório de inventário com base nos resultados do teste. |
/DnsResolveExtName [/DnsInternetName:\<InternetName>] |
Executa os /DnsBasic testes e também tenta resolver InternetName. Se /DnsInternetName não for especificado, tentará resolver o nome <www.microsoft.com>. Se /DnsInternetName for especificado, tenta resolver o nome da Internet fornecido pelo usuário. |
| /DnsAll | Executa todos os testes, exceto o /DnsResolveExtName teste, e gera um relatório. |
/f:<LogFile> |
Redireciona toda a saída para um arquivo de log. |
/s:<DomainController> |
Executa os testes no controlador de domínio. Se esse parâmetro não for especificado, os testes serão executados no controlador de domínio local. |
| /e | Executa todos os testes especificados por /test:DNS em relação a todos os controladores de domínio na floresta do Ative Directory. |
| /v | Verbose. Apresenta informações estendidas sobre resultados de testes bem-sucedidos, além de informações sobre erros e avisos. Quando o /v parâmetro não é usado, fornece apenas informações de erro e aviso. Use a /v opção quando erros ou avisos forem relatados na tabela de resumo. |
/x:<XMLLog.xml> |
Redireciona toda a saída para xmllog.xml. Este parâmetro funciona apenas com a /test:DNS opção. |
/xsl:<XSLFile.xsl> ou /xsl: <XSLTFile.xslt> |
Adiciona as instruções de processamento que fazem referência à planilha especificada. Este parâmetro só funciona com a /test:DNS /x:<XMLLog.xml opção. |
Note
Os tempos de execução para testes DNS podem ser significativos em grandes empresas quando o /e parâmetro é usado. Os controladores de domínio e servidores DNS que estão offline aumentarão os tempos de execução devido a longos períodos de tempo limite para RPC e outros protocolos.
Examples
Connectivity test
Para executar uma série de testes de conectividade no domínio local, execute o seguinte comando:
dcdiag
Uma saída de teste de conectividade bem-sucedida:
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
Para executar uma série de testes de conectividade em um controlador de domínio específico, execute o seguinte comando:
dcdiag /s:<DomainControllerName>
Ele deve gerar resultados semelhantes aos do teste local se nenhum problema for encontrado.
Saída para um arquivo de log
DCDiag é capaz de salvar os resultados de saída em um arquivo de texto executando:
dcdiag /s:<DomainControllerName> /f:<FileName.txt>
Se não <FilePath> for especificado, os resultados serão salvos em C:\Users\<UserName>\<FileName.txt> por padrão.
Para salvar em um local específico, execute:
dcdiag /s:<DomainControllerName> /f:<DriveLetter>\<FilePath>\<FileName.txt>