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 Microsoft Windows Active Directory. 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 com a configuração de DNS, replicação de SYSVOL e outros serviços críticos necessários para o funcionamento correto do Active Directory.
Examinamos o DCDiag, uma potente ferramenta da Microsoft Windows. Usamos para testar 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 estamos 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 integridade 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 rever alguns dos vários testes 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 corretamente o DNS.
- 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 de Catálogo Global e se as consultas de 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 utilitário de linha de comando. 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
Essa linha de comando básica retorna os resultados dos testes mostrando o teste primário (conectividade) e qualquer teste especificado no controlador de domínio. Para aprender a usar o comando DCDiag junto com todos os seus switches, vamos começar com o comando de ajuda:
dcdiag /?
Parâmetros de Comutação DCDiag
Para usar qualquer um dos seguintes switches, adicione-o após o comando DCDiag. Um resumo dos switches de comando populares:
-
/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 – Executa 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 executar 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ço no dc especificado.
Acima estão alguns dos comutadores de linha de comando DCDiag mais usados, mas muitas outras opções estão disponíveis. Podemos ver uma lista completa de comutadores e suas definições executando o comando help acima.
Experimente Nossa Ferramenta de Relatório de Saúde do DC do Active Directory
Experimente-nos gratuitamente, acesso a todos os recursos. – 200+ modelos de relatório do AD disponíveis. Personalize facilmente seus próprios relatórios do AD.
Executando DCDiag e Casos de Uso
Para executar 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 automaticamente identifica 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 in 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 de todos os DCs.
Nós interconectamos cada site AD que pode conter uma coleção de DCs uns com os outros. O interruptor /a é benéfico se dividirmos o AD em sites. Isso 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 primário de conectividade 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 padrão para /DNSall. Aqui estão alguns testes específicos de DNS que chamamos ao usar a ferramenta DCDiag:
- /DNSBásico – Verifica se o servidor DNS do controlador de domínio está configurado corretamente e resolve nomes.
- /DelegaçãoDNS – Testa se as delegações DNS estão configuradas corretamente para o controlador de domínio.
- /EncaminhadoresDNS – Verifica se os encaminhadores DNS estão configurados corretamente para o controlador de domínio.
- /AtualizaçãoDinâmicaDNS – Verifica se o controlador de domínio realiza atualizações dinâmicas para o DNS.
- /RegistroDNS – 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 imediatamente para evitar problemas potenciais com o Active Directory e outros serviços de rede. Um teste 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 podemos exportar os resultados para análise posterior. Aqui estão alguns exemplos de como personalizamos 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, o que se parece com isto:
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 switch é o oposto da switch silenciosa /q.
Como já observado, 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 switch detalhada:
dcdiag.exe /s:dc01 /v
A saída com a /v switch 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 de saúde. Por exemplo, salvamos todos os resultados dos testes em um arquivo de texto adicionando a /f switch ao comando DCDiag. Por exemplo:
dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt
Observe que 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 os 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 achados. O interruptor /fix, no entanto, é um excelente interruptor que tenta corrigir as questões mencionadas com segurança.
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. Ele corrige o objeto MachineAccount do DC’s Service Principal Names (SPNs).
Observação: Embora o DCDiag projete o interruptor (correção) para realizar reparos automáticos, 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 do DCDiag no Windows PowerShell. No entanto, podemos usar o DCDiag no PowerShell executando o comando dcdiag.exe com os parâmetros adequados 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 parâmetro /test:DNS para executar os testes de DNS e o parâmetro /v para fornecer saída detalhada. É claro que podemos substituir /test:DNS por qualquer outro teste do DCDiag que desejamos 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, usamos o parâmetro -ScriptBlock com Invoke-Command para especificar o código que queríamos executar no computador remoto. O parâmetro -ScriptBlock recebe um bloco de script, essencialmente um bloco de código entre chaves {}.
Quando usamos Invoke-Command com o parâmetro -ScriptBlock, executamos o bloco de script no computador remoto especificado pelo parâmetro -ComputerName e o bloco de script retorna a saída para o computador local. Usar o parâmetro -ScriptBlock com Invoke-Command é uma maneira poderosa de executar comandos ou scripts em computadores remotos. Isso ajuda a gerenciar um grande número 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.
Em conclusão, o DCDiag é uma ferramenta essencial para administradores que gerenciam ambientes 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 Active Directory.
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 Active Directory permaneça seguro e confiável.
Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/