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.
Neste artigo
- Contas bloqueadas — diagnóstico e prevenção
- Falhas de replicação entre Domain Controllers
- Problemas de Group Policy — GPO não aplica
- FSMO roles — verificar e transferir
- Problemas de autenticação Kerberos e tempo
- Azure AD Connect / Entra Connect — sincronização híbrida
- Ferramentas de diagnóstico AD essenciais
- PowerShell AD — comandos essenciais de helpdesk
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
