DCDiag: Como verificar a saúde do controlador de domínio usando o Powershell. DCDiag é uma poderosa ferramenta de linha de comando usada para diagnosticar problemas com controladores de domínio em um ambiente do Active Directory da Microsoft Windows. Usamos isso para verificar a saúde dos controladores de domínio, identificar erros ou inconsistências e solucionar problemas de replicação. DCDiag também ajuda os administradores a detectar e resolver problemas de configuração de DNS, replicação de SYSVOL e outros serviços críticos necessários para que o Active Directory funcione corretamente.
Nós examinamos DCDiag, uma poderosa ferramenta da Microsoft Windows. Nós a usamos para testar os serviços de DNS, avaliar a saúde dos controladores de domínio e até mesmo corrigir automaticamente erros. Embora relativamente simples, a ferramenta é forte o suficiente para manter a saúde de todos os nossos controladores de domínio.
Vamos começar com o artigo DCDiag: Como verificar a saúde do controlador de domínio usando o Powershell
DCDiag: Como verificar a saúde do controlador de domínio usando o Powershell
Instalando a Ferramenta DCDiag
Se estivermos executando Windows Server, devemos ter o DCDiag instalado. A Microsoft incorporou o DCDiag nas versões modernas do Windows Server, a partir do 2012R2 e versões posteriores.
Propósito da Ferramenta DCDiag
O propósito do DCDiag é diagnosticar e solucionar problemas com controladores de domínio em um ambiente de Windows Server. É uma ferramenta de linha de comando que realiza uma ampla gama de verificações de saúde em um controlador de domínio, incluindo testes para DNS, replicação, LDAP, análise de segurança de um ou vários DCs simultaneamente dentro de nossa floresta AD ou empresa. Vamos analisar algumas das várias verificações que o DCDiag realiza em um controlador de domínio:
- Testes de conectividade – O DCDiag verifica se o controlador de domínio está conectado à rede e pode se comunicar com outros controladores de domínio.
- Testes DNS – verifica se o controlador de domínio resolve e registra o DNS corretamente.
- Testes de replicação – testa se o controlador de domínio replica com precisão com outros controladores de domínio.
- Testes de confiança – o DCDiag verifica se o controlador de domínio confia em outros domínios e se outros domínios confiam no controlador de domínio.
- Testes LDAP – verifica se as consultas LDAP funcionam corretamente no controlador de domínio.
- Testes Kerberos – o DCDiag verifica se a autenticação Kerberos funciona corretamente no controlador de domínio.
- SYSVOL testes – O DCDiag verifica se a replicação do SYSVOL está funcionando corretamente no controlador de domínio.
- Testes de Catálogo Global – O DCDiag verifica se o DC está atuando como um servidor Catálogo Global e se as consultas do Catálogo Global estão funcionando corretamente.
Visão geral da ferramenta DCDiag
Bem, com o artigo DCDiag: Como verificar a saúde do controlador de domínio usando o Powershell é um simples comando de linha utilitário. Executamos o DCDiag em um Prompt de Comando ou em uma Janela do PowerShell. Lembre-se de usar privilégios de administrador.
A sintaxe básica do DCDiag é a seguinte:
dcdiag.exe /s:[:] [/u:\ /p:*||””]
Onde:
- /s – O Controlador de Domínio
- /u:\ – O Nome de Usuário
- \p:* – A Senha
dcdiag /?
Parâmetros de Comando DCDiag
Para usar qualquer um dos seguintes switches, adicione-o após o comando DCDiag. Um resumo dos populares switches de comando:
-
/s <ServerName> – Especifica o nome do servidor a ser testado. Se nenhum nome de servidor for especificado, o DCDiag testa o computador local.
-
/v – Fornece saída detalhada e informações adicionais sobre os testes realizados.
-
/test:<TestName> – Especifica o nome do teste a ser executado. Executamos vários testes especificando vários switches /test.
-
/e – Realiza um conjunto abrangente de testes no controlador de domínio especificado.
-
/fix – Tenta corrigir quaisquer problemas encontrados durante os testes.
-
/f:<LogFileName> – Especifica o nome do arquivo de log a ser criado.
-
/c – Especifica que o DCDiag deve realizar apenas os testes necessários para anunciar os serviços do controlador de domínio.
- /skip:<TestName> – Ignora o teste especificado.
- /l:<LogFileName> – Especifica o nome do arquivo de log para anexar em vez de sobrescrever.
- /q – Especifica o modo silencioso, que suprime a exibição de mensagens informativas.
- /test:DNS – Executa testes DNS no controlador de domínio especificado.
- /test:KCC – Executa testes KCC no controlador de domínio especificado.
- /test:Replications – Executa testes de replicação no dc especificado.
- /test:Advertising – Executa testes de publicidade no dc especificado.
- /test:Services – Executa testes de serviços no dc especificado.
Acima estão alguns dos comutadores de linha de comando DCDiag mais utilizados, mas muitas outras opções estão disponíveis. Podemos ver uma lista completa de comutadores e suas definições executando o comando de ajuda acima.
Experimente Nossa Ferramenta de Relatório de Saúde do Active Directory DC
Experimente-nos gratuitamente, acesso a todos os recursos. – 200+ modelos de relatórios do AD disponíveis. Personalize facilmente seus próprios relatórios do AD.
Executando DCDiag e Casos de Uso
Para executar o DCDiag, digite o comando DCDiag sem nenhum comutador para fazer um teste básico de DCDiag no nosso DC local (ou argumento).
dcdiag.exe
Como o DCDiag identifica automaticamente o DC atual (local), não são necessários um controlador de domínio nem credenciais administrativas. Na seção a seguir, discutimos vários casos de uso usando os parâmetros de comutador do DCDiag.
Verificações de Saúde de DC Remoto
dcdiag.exe /s:dc01 /u:dc01\Administrator /p:password
O DCPromo e o Register em DNS, que são executados localmente e não para um controlador de domínio, não serão afetados pelo switch /s.
Observe que ao inserirmos a informação /u (nome de usuário), devemos especificar o nome da conta com permissões de administrador de domínio e usar o formato correto: domínio/nome de usuário. Então, por exemplo, anexamos o nome de usuário (Administrator) com o nome do domínio (dc01): /u:dc01\Administrator.
Verificando a Saúde para todos os DCs.
Interligamos cada site AD que pode conter uma coleção de DCs entre si. O interruptor /a é benéfico se dividirmos o AD em sites. Ele nos permite executar o utilitário DCDiag simultaneamente para todos os DCs do site:
dcdiag.exe /s:dc01 /a
Usando DCDiag para Testar DNS
Não importa o que estamos testando, a ferramenta DCDiag sempre verifica o registro DNS de cada controlador de domínio durante o teste de conectividade primária por padrão. Além disso, podemos realizar testes DNS específicos, como forwarders, registros de registro e outros, todos os quais ajudam a investigar problemas de DNS. Para testar DNS, use o comando abaixo:
dcdiag.exe /s:dc01 /test:dns
Os seguintes testes básicos são executados por padrão, exceto a resolução de nomes externos. Todos os resultados DNS exibem o teste DNSBasic. Se não houver valor, o interruptor /test:dns automaticamente padroniza para /DNSall. Aqui estão alguns testes específicos de DNS que chamamos ao usar a ferramenta DCDiag:
- /DNSBasic – Verifica se o servidor DNS do controlador de domínio está configurado corretamente e resolve nomes.
- /DnsDelegation – Testa se as delegações DNS estão configuradas corretamente para o controlador de domínio.
- /DnsForwarders – Verifica se os forwarders DNS estão configurados corretamente para o controlador de domínio.
- /DnsDynamicUpdate – Verifica se o controlador de domínio executa atualizações dinâmicas para DNS.
- /DnsRecordRegistration – Testa se o registro DNS do controlador de domínio está atualizado e preciso.
Esses testes garantem que a configuração DNS de um controlador de domínio esteja correta e funcionando adequadamente. Se o DCDiag encontrar quaisquer problemas durante esses testes, ele os aborda rapidamente para evitar problemas potenciais com o Active Directory e outros serviços de rede. Um teste de DNS deve ser assim:
Personalizando os Resultados do DCDiag
O DCDiag nos permite personalizar os resultados mostrando-nos menos ou mais informações. Também é possível exportar os resultados para análise posterior. Aqui estão alguns exemplos de como personalizar o relatório do DCDiag.
Executar o DCDiag em Modo Silencioso
A opção silenciosa /q é muito útil, reduzindo o tamanho da saída exibindo apenas a lista de mensagens de erro. Aqui está um exemplo de DCDiag em modo silencioso:
dcdiag.exe /s:dc01 /q
A saída com o /q é filtrada apenas para erros, e fica assim:
Execute o DCDiag com Saída Detalhada
Ao adicionar a /v marca detalhada, execute o DCDiag com saída detalhada. Isso nos fornece mais informações sobre nossas tarefas diárias, como erros, avisos, mensagens informativas, etc. A /v a mudança é o oposto da mudança silenciosa /q.
Como observado anteriormente, o DCDiag (sem /v) fornece detalhes suficientes para identificar e resolver qualquer problema com nosso controlador de domínio, o que pode ser suficiente na maioria das circunstâncias. Aqui está um exemplo do trecho com a mudança detalhada:
dcdiag.exe /s:dc01 /v
A saída com a /v a mudança deve ser assim:
Só recomendamos a saída detalhada se vemos avisos ou erros na tabela de resumo padrão e queremos investigar o problema com mais detalhes.
Leia também Implantar Solução de Monitoramento do Azure AD
Exportando Resultados do DCDiag
A ferramenta DCDiag nos permite exportar os resultados do check-up de saúde. Por exemplo, salvamos todos os resultados dos testes em um arquivo de texto adicionando a /f mudança para o comando DCDiag. Por exemplo:
dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt
Observe que nós personalizamos o nome do arquivo de log e o salvamos em qualquer pasta específica. Abrimos os resultados no bloco de notas ou em qualquer programa que suporte arquivos .txt.
Também exportamos resultados para XLSX ou XML. No entanto, essa função só funciona para o interruptor /test:dns:
dcdiag.exe /test:dns /x or, /test:dns/x:
O DCDiag é apenas um instrumento de diagnóstico. Portanto, ele executa diferentes testes e fornece exclusivamente seus resultados. No entanto, o interruptor /fix é um ótimo interruptor que tenta corrigir as questões mencionadas de forma segura.
dcdiag.exe /s:dc01 /fix
Não precisamos fornecer mais parâmetros ou características ao usar o interruptor /fix. Apenas para o teste MachineAccount, o interruptor /f é funcional. Corrige o objeto MachineAccount do DC’s Service Principal Names (SPNs).
Observação: Mesmo que o DCDiag projete o interruptor (corrigir) para fazer reparos automáticos de forma segura, ainda assim altera o controlador de domínio. Como resultado, examine os resultados dos testes antes de usar o interruptor /f e sempre crie um backup do DC.
Usando o DCDiag com o Powershell
Não há um equivalente a DCDiag no Windows PowerShell. No entanto, usamos o DCDiag no PowerShell executando o comando dcdiag.exe com os parâmetros apropriados usando os cmdlets Invoke-Expression ou Invoke-Command. Aqui está um exemplo de como usar o DCDiag no PowerShell para executar os testes de DNS:
Invoke-Expression "dcdiag.exe /test:DNS /v"
Neste exemplo, usamos o cmdlet Invoke-Expression para executar o comando dcdiag.exe com o /test:DNS parâmetro para executar os testes de DNS e o /v parâmetro para fornecer saída detalhada. Claro, podemos substituir /test:DNS por qualquer outro teste DCDiag que queiramos executar. Alternativamente, usamos o cmdlet Invoke-Command para executar o DCDiag em um computador remoto.
Aqui está outro exemplo:
Invoke-Command -ComputerName "ServerName" -ScriptBlock { dcdiag.exe /test:DNS /v }
No exemplo anterior, utilizamos o parâmetro -ScriptBlock com Invoke-Command para especificar o código que queríamos executar no computador remoto . O parâmetro -ScriptBlock aceita um bloco de script, essencialmente um bloco de código delimitado por chaves {}.
Quando usamos Invoke-Command com o parâmetro -ScriptBlock, executamos o bloco de script no computador remoto especificado com o parâmetro -ComputerName, e o bloco de script retorna a saída para o computador local. O uso do parâmetro -ScriptBlock com Invoke-Command é uma maneira poderosa de executar comandos ou scripts em computadores remotos. Ajuda a gerenciar grandes quantidades de computadores em um ambiente de rede, assim como usamos a ferramenta DCDiag.
Obrigado por ler DCDiag: Como verificar a saúde do controlador de domínio usando o Powershell. Vamos concluir o artigo agora.
Conclusão de DCDiag: Como verificar a saúde do controlador de domínio usando o Powershell
Em conclusão, DCDiag é uma ferramenta essencial para administradores que gerenciam ambientes do Active Directory. Fornecendo um conjunto abrangente de verificações de saúde para controladores de domínio, ajuda os administradores a diagnosticar e solucionar problemas facilmente. A capacidade de realizar testes detalhados relacionados a DNS, replicação, LDAP, segurança e muito mais torna o DCDiag uma ferramenta valiosa para garantir a saúde e a estabilidade dos controladores de domínio e do ambiente do Active Directory ambiente.
Ao incorporar o DCDiag em rotinas de manutenção e monitoramento regulares, os administradores ajudam a prevenir a ocorrência de problemas mais graves e garantem que seu ambiente do Active Directory permaneça seguro e confiável.
Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/