O Active Directory é a espinha dorsal de qualquer infra IT Windows on-premises — e quando tem problemas, tudo falha: logins, partilhas, GPOs, email, autenticação. O diagnóstico de AD exige conhecer as ferramentas certas e entender como os vários componentes interagem entre si.

Este artigo cobre os problemas mais frequentes reportados ao helpdesk e ao sysadmin em ambientes AD: contas bloqueadas (o ticket mais recorrente), replicação entre DCs, GPOs que não aplicam, FSMO roles e sincronização com Entra ID via Azure AD Connect.

1. Contas bloqueadas — diagnóstico e prevenção

As contas bloqueadas são o ticket de helpdesk mais frequente em ambientes AD. A causa mais comum não é o utilizador a esquecer a password — é uma aplicação, serviço ou dispositivo configurado com credenciais antigas que continua a tentar autenticar repetidamente.

Desbloquear conta e identificar a origem

# Verificar estado da conta
Get-ADUser -Identity "joao.ferreira" -Properties LockedOut, BadLogonCount, BadPasswordTime, LastBadPasswordAttempt |
    Select-Object Name, LockedOut, BadLogonCount, BadPasswordTime, LastBadPasswordAttempt

# Desbloquear
Unlock-ADAccount -Identity "joao.ferreira"

# Repor password e forçar alteração no próximo login
Set-ADAccountPassword -Identity "joao.ferreira" -Reset `
    -NewPassword (ConvertTo-SecureString "TempPass2026!#" -AsPlainText -Force)
Set-ADUser -Identity "joao.ferreira" -ChangePasswordAtLogon $true

# Identificar origem do bloqueio — Event ID 4740 no PDC Emulator
$pdc = (Get-ADDomain).PDCEmulator
Get-WinEvent -ComputerName $pdc -FilterHashtable @{LogName="Security"; Id=4740} -MaxEvents 20 |
    Select-Object TimeCreated,
        @{N="Conta";E={$_.Properties[0].Value}},
        @{N="ComputerOrigem";E={$_.Properties[1].Value}} |
    Format-Table -AutoSize

Causas comuns de bloqueios recorrentes

Origem Como identificar Resolução
Tarefa agendada com credenciais antigas ComputerOrigem no 4740 → verificar Task Scheduler nessa máquina Actualizar credenciais na tarefa agendada
Serviço Windows com conta de serviço antiga services.msc → filtrar serviços que correm com a conta do utilizador Actualizar credenciais do serviço
Credenciais guardadas no Credential Manager Painel de Controlo → Gestor de Credenciais → entradas com o domínio Remover ou actualizar entradas antigas
Impressora ou dispositivo de rede ComputerOrigem é um IP de impressora ou servidor de impressão Actualizar credenciais no painel web da impressora

2. Falhas de replicação entre Domain Controllers

Em ambientes com múltiplos DCs, falhas de replicação resultam em utilizadores que autenticam num DC mas não noutro, ou alterações de password que não propagam. O diagnóstico é feito directamente no DC.

# Resumo do estado de replicação de todos os DCs
repadmin /replsummary

# Detalhe de falhas
repadmin /showrepl

# Forçar replicação completa
repadmin /syncall /AdeP

# Via PowerShell AD
Get-ADReplicationFailure -Scope Domain | Format-Table -AutoSize

# Diagnóstico completo do DC (demora alguns minutos)
dcdiag /test:replications /v
Código Significado Resolução
8614 Replicação parada há mais de 60 dias (tombstone lifetime excedido) Problema grave — considerar rebuild do DC afectado
1722 RPC server unavailable — DC destino inacessível via RPC Verificar firewall entre DCs (portas RPC dinâmicas), resolução DNS do DC alvo
1753 Endpoint mapper não respondeu Reiniciar serviço RPC no DC afectado
8453 Acesso de replicação negado — problema de permissões ou SPN Verificar SPNs: setspn -l DC01$

3. Problemas de Group Policy — GPO não aplica

# Forçar aplicação de GPOs no cliente
gpupdate /force

# Ver resumo das GPOs aplicadas (executar como utilizador afectado)
gpresult /r

# Relatório HTML detalhado (mais legível)
gpresult /h C:\temp\gpo_report.html /f

# Verificar erros de GPO no Event Viewer do cliente
Get-WinEvent -LogName "Microsoft-Windows-GroupPolicy/Operational" -MaxEvents 30 |
    Where-Object { $_.Level -le 3 } | # Level 1=Critical, 2=Error, 3=Warning
    Select-Object TimeCreated, LevelDisplayName, Message |
    Format-List

Causas mais comuns de GPO não aplicar

  • GPO ligada a OU errada: O utilizador ou computador não está na OU onde a GPO está aplicada — verificar no ADUC
  • Security Filtering: O grupo “Authenticated Users” foi removido do filtro de segurança da GPO e o utilizador não faz parte do grupo aplicado
  • Block Inheritance na OU filho: A OU tem herança bloqueada — GPOs de OUs superiores não chegam
  • WMI Filter: A GPO tem filtro WMI que não avalia como verdadeiro naquele dispositivo
  • SYSVOL não replicado: A GPO existe no AD mas o SYSVOL (com templates e scripts) não propagou para o DC que o cliente usou — verificar replicação SYSVOL com repadmin /showrepl

4. FSMO roles — verificar e transferir

As cinco FSMO roles são funções especiais do AD que só podem estar activas num DC de cada vez. Se o DC com uma role falhar sem transferência prévia, surgem problemas específicos consoante a role afectada.

# Ver qual DC tem cada FSMO role
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster

# Transferir roles para DC02 (graceful transfer — DC original tem de estar online)
Move-ADDirectoryServerOperationMasterRole -Identity "DC02" `
    -OperationMasterRole PDCEmulator, RIDMaster, InfrastructureMaster

# Seize (forçar) — apenas se o DC original não estiver disponível
# ATENÇÃO: nunca voltar a ligar o DC original ao domínio após seize
Move-ADDirectoryServerOperationMasterRole -Identity "DC02" `
    -OperationMasterRole PDCEmulator -Force
FSMO Role Impacto se falhar Urgência
PDC Emulator Bloqueios de conta não propagam; problemas de tempo Kerberos; alterações de password atrasadas Alta — recuperar imediatamente
RID Master Impossível criar novos objectos AD quando o pool local de RIDs se esgota Média — recuperar em horas
Infrastructure Master Referências entre domínios desactualizadas (mínimo em domínio único) Baixa em domínio único
Schema Master Impossível modificar o schema (só afecta instalações como Exchange) Baixa em operação normal
Domain Naming Master Impossível adicionar/remover domínios na floresta Baixa em operação normal

5. Problemas de autenticação Kerberos e tempo

O Kerberos é extremamente sensível à sincronização de tempo — uma diferença superior a 5 minutos entre o cliente e o DC invalida os tickets Kerberos e causa falhas de autenticação que aparecem como “Kerberos pre-authentication failed” (Event ID 4771) ou “The security database on the server does not have a computer account” no cliente.

# Verificar hora actual do sistema e do DC
w32tm /query /status                   # Estado do serviço de tempo no cliente
w32tm /monitor                          # Diferença de tempo em relação ao DC

# Forçar sincronização de tempo
w32tm /resync /force

# Ver tickets Kerberos activos no cliente
klist

# Limpar tickets Kerberos em cache (útil após reset de password)
klist purge

# Verificar erros Kerberos no DC (Event ID 4771 = pre-auth falhou)
Get-WinEvent -LogName Security -FilterHashtable @{Id=4771} -MaxEvents 20 |
    Select-Object TimeCreated, @{N="User";E={$_.Properties[0].Value}},
        @{N="FailureCode";E={$_.Properties[4].Value}} |
    Format-Table -AutoSize

⚠ Sincronização de tempo em hierarquia: No AD, o PDC Emulator é a referência de tempo para todos os outros DCs e clientes. O PDC Emulator deve sincronizar com um servidor NTP externo fiável (ex: time.windows.com). Configurar: w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /reliable:YES /update — executar no PDC Emulator.

6. Azure AD Connect / Entra Connect — sincronização híbrida

Em ambientes híbridos (AD on-premises + Microsoft 365), o Azure AD Connect (agora Entra Connect) sincroniza utilizadores e grupos do AD para o Entra ID. Problemas nesta sincronização resultam em utilizadores que existem no AD mas não no M365, ou vice-versa.

Diagnóstico da sincronização

# Executar no servidor onde o Entra Connect / AAD Connect está instalado

# Ver estado da última sincronização
Get-ADSyncScheduler

# Forçar sincronização Delta imediatamente
Start-ADSyncSyncCycle -PolicyType Delta

# Forçar sincronização completa (mais lenta — usar quando há inconsistências)
Start-ADSyncSyncCycle -PolicyType Initial

# Ver erros de sincronização recentes
Get-ADSyncConnectorStatistics

# Ver objectos com erros no Synchronization Service Manager
# Abrir: C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe
# Operations → Ver falhas de sincronização com detalhe do erro

Erros de sincronização comuns

Erro Causa Resolução
AttributeValueMustBeUnique Dois utilizadores AD com o mesmo ProxyAddress ou UserPrincipalName Usar ADSI Edit ou PowerShell para identificar e corrigir o duplicado
InvalidSoftMatch O utilizador M365 não consegue ser associado ao utilizador AD pelo UPN ou email Garantir que o UPN no AD corresponde ao endereço de email no M365
LargeObject Atributo com valor demasiado grande (ex: foto de perfil oversized) Identificar e limpar o atributo com valor excessivo no objecto AD

7. Ferramentas de diagnóstico AD essenciais

Ferramenta Onde executar Para que serve
dcdiag No DC (CMD/PowerShell) Diagnóstico completo do DC — testa replicação, DNS, FSMO, serviços Netlogon, SYSVOL, etc.
repadmin No DC Diagnóstico e gestão de replicação AD entre DCs
nltest No cliente ou DC Verificar canais seguros Netlogon, localização de DCs, confiança entre domínios
netdom No DC Gestão de relações de confiança, repor canal seguro de computador: netdom resetpwd /server:DC01 /userd:admin /passwordd:*
klist No cliente Ver e limpar tickets Kerberos em cache
Microsoft Entra Connect Health portal.azure.com → Entra ID → Monitoring → Connect Health Monitorização da sincronização, alertas de falha, relatórios de erros em ambientes híbridos

8. PowerShell AD — comandos essenciais de helpdesk

# ─── UTILIZADORES ───────────────────────────────────────────────────────────

# Pesquisar utilizador por nome, email ou SAM
Get-ADUser -Filter {DisplayName -like "*João*"} -Properties EmailAddress, Department |
    Select-Object Name, SamAccountName, EmailAddress, Department

# Ver todos os grupos de um utilizador
Get-ADPrincipalGroupMembership -Identity "joao.ferreira" | Select-Object Name | Sort-Object Name

# Listar contas desactivadas
Search-ADAccount -AccountDisabled | Select-Object Name, SamAccountName, LastLogonDate

# Listar contas que não fazem login há mais de 90 dias
Get-ADUser -Filter {Enabled -eq $true} -Properties LastLogonDate |
    Where-Object { $_.LastLogonDate -lt (Get-Date).AddDays(-90) } |
    Select-Object Name, SamAccountName, LastLogonDate | Sort-Object LastLogonDate

# ─── COMPUTADORES ────────────────────────────────────────────────────────────

# Ver info de um computador
Get-ADComputer -Identity "PC-JOAO" -Properties OperatingSystem, LastLogonDate, IPv4Address |
    Select-Object Name, OperatingSystem, LastLogonDate, IPv4Address

# Computadores não activos há mais de 60 dias
Get-ADComputer -Filter {Enabled -eq $true} -Properties LastLogonDate |
    Where-Object { $_.LastLogonDate -lt (Get-Date).AddDays(-60) } |
    Select-Object Name, LastLogonDate | Sort-Object LastLogonDate |
    Export-Csv "C:\temp\computadores_inativos.csv" -NoTypeInformation

Este artigo foi útil?

Duarte Spínola

Deixe um Comentário