Diagnóstico de Anomalias no Acesso RDP: Guia Prático para Sysadmins
DS
Duarte Spínola
Publicado em 12 de Julho de 2026
Atualizado em 28 de Agosto de 2026
Diagnóstico de Anomalias no Acesso RDP: Guia Prático para Sysadmins
✎ Duarte Spínola | 2026-07-12
O RDP (Remote Desktop Protocol) é a ferramenta de administração remota mais usada em ambientes Windows. Quando falha, o sysadmin perde acesso ao servidor e tem de recorrer à consola iLO/iDRAC ou deslocar-se fisicamente. As anomalias mais comuns são: impossibilidade de conectar (firewall, NLA, serviço parado), lentidão (rede, gráficos, bandwidth), desligamentos inesperados (licenças RDS, timeouts, GPO), e ecrã preto (perfis corrompidos, GPU, display driver). O diagnóstico começa sempre por isolar a camada afectada: rede, autenticação, serviço, ou cliente. Referência: Remote Desktop Services — Microsoft Learn.
O RDP usa a porta TCP 3389 por defeito. Em Windows Server 2022+ com RDP Shortpath, também usa UDP 3389 para streaming de gráficos. Se o UDP está bloqueado, o RDP funciona mas com pior experiência (sem ajuste adaptativo de bitrate).
1. Camadas de Diagnóstico RDP
Camada
Sintoma
Ferramenta de diagnóstico
Rede
Não conecta, timeout
Test-NetConnection, psping, ping
Firewall
Conexão recusada (porta fechada)
Windows Firewall, Get-NetFirewallRule
Serviço
Serviço parado, não responde
Get-Service TermService
Autenticação (NLA)
Erro de autenticação antes de conectar
GPO, SystemPropertiesRemote
Licenciamento RDS
Aviso de licença, desligamento após X dias
RD Licensing Diagnoser, lwdiag
Sessão
Sessão presa, ecrã preto, sem resposta
qwinsta, quser, Task Manager
Performance
Lag, lentidão, gráficos lentos
iperf3, PerfMon, Group Policy RDP settings
Perfil
Ecrã preto após login, perfil temporário
Event Viewer, net user, perfil corrompido
Cliente
Cliente mstsc desactualizado, compatibilidade
Windows Update, versão do cliente
2. Passo 1 — Conectividade de Rede
Antes de investigar o RDP, confirmar que a rede está funcional entre o cliente e o servidor.
Verificar se a porta 3389 não foi alterada (secção 2.2)
2.2 Verificar porta RDP
# No servidor — verificar a porta RDP configurada
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"
# PortNumber = 3389 (padrão decimal)
# Se for diferente, o cliente tem de usar servidor01:porta
2.3 Testar com PSPing (latência TCP)
# PSPing mede latência TCP real à porta RDP (não apenas ICMP)
psping -t servidor01:3389 -n 100
# Interpretar:
# < 1 ms — excelente (LAN)
# 1-10 ms — bom (LAN/WAN próxima)
# 10-50 ms — aceitável (WAN)
# > 50 ms — lag visível no RDP
# > 150 ms — experiência degradada (considerar RDP Shortpath ou RDS Gateway)
O Network Level Authentication (NLA) exige que o cliente autentique antes de estabelecer a sessão RDP. Se NLA está activado mas o cliente não suporta (cliente antigo, ou CredSSP desactivado), a conexão é recusada.
Se desactivar NLA resolve o problema, a causa é CredSSP no cliente. Verificar se o cliente tem a actualização de segurança CredSSP instalada (KB patched para CVE-2018-0886) e se “Allow connections only from computers running Remote Desktop with Network Level Authentication” está compatível com o cliente.
4.2 Verificar utilizadores/grupos autorizados
# Verificar quem tem permissão de RDP
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "SecurityDescriptor"
# Ou via GUI: System Properties → Remote → Select Users
# Verificar membros do grupo Remote Desktop Users
Get-LocalGroupMember -Group "Remote Desktop Users"
# Adicionar utilizador ao grupo RDP
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "utilizador"
4.3 Verificar GPO que afecta RDP
# Listar GPOs que afectam RDP
gpresult /h C:\temp\gpresult.html
# Procurar no relatório por:
# - Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services
# - Set time limit for active/disconnected/idle sessions
# - Require use of specific security layer for remote connections
5. Passo 4 — Licenciamento RDS
Em ambientes com Remote Desktop Services (RDS) — não em administração remota (que permite 2 sessões por defeito) — o licenciamento é uma causa comum de desligamentos.
5.1 Diagnóstico de licenciamento
# Abrir RD Licensing Diagnoser (GUI)
licmgr.exe
# Ou via PowerShell — verificar servidor de licenças
Get-RDLicenseConfiguration
# Verificar modo de licenciamento
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "LicensingMode"
# LicensingMode:
# 1 = Per Device
# 2 = Per User
# 4 = Per Session (deprecated)
5.2 Sintomas de problema de licenciamento
Sintoma
Causa provável
“The remote session was disconnected because there are no Remote Desktop client access licenses available”
Servidor de licenças não tem licenças disponíveis ou não é acessível
“Your Remote Desktop Services client access license is no longer valid”
Licença expirada ou corrompida no cliente
Aviso “X days until licence expires”
Período de tolerância após instalação de RDS
Desligamento imediato após login
Modo de licenciamento incorrecto (Per Device vs Per User)
5.3 Corrigir licenças corrompidas no cliente
# No cliente — remover licenças RDS corrompidas
# As licenças são guardadas em chaves de registry:
# HKLM\SOFTWARE\Microsoft\MSLicensing\Store
# Parar serviço TermService antes de alterar
Stop-Service TermService -Force
# Remover chaves de licenciamento
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\MSLicensing\Store" -Recurse -Force
# Reiniciar serviço
Start-Service TermService
# Conectar via RDP — o cliente vai buscar nova licença ao servidor
6. Passo 5 — Sessões Presas e Ecrã Preto
6.1 Listar sessões RDP activas
# Listar sessões no servidor
qwinsta
# Output:
# SESSIONNAME USERNAME ID STATE TYPE DEVICE
# services 0 Disc
# console Administrator 1 Active
# rdp-tcp#0 user1 42 Active
# rdp-tcp 65536 Listen
# Ou com quser (mais detalhes)
quser
# Output:
# USERNAME SESSIONNAME ID STATE IDLE TIME LOGON
# Administrator console 1 active . 14:00 12/07
# user1 rdp-tcp#0 42 active 5 09:30 12/07
# Desligar sessão por ID (usar ID do qwinsta/quser)
Disconnect-RDSession -ID 42
# Ou via linha de comandos
logoff 42
# Fazer logoff de todas as sessões excepto a consola
query session | findstr "rdp" | for /f "tokens=3" %i in ('more') do logoff %i
6.3 Ecrã preto após login
O ecrã preto (black screen of death) é uma das anomalias mais frustrantes do RDP. O utilizador autentica-se, a janela mostra “Configuring remote session” e depois fica preta.
Causas mais comuns:
Causa
Verificar
Solução
Display driver (WDDM)
Event Viewer → System
Desactivar WDDM graphics para RDP via GPO
Perfil corrompido
Event Viewer → Application (userenv errors)
Criar perfil novo
Shell Explorer.exe crash
Task Manager (Ctrl+Shift+Esc na sessão RDP)
Reiniciar explorer.exe
GPO startup script bloqueante
gpresult /h
Remover script bloqueante
Antivirus a bloquear logon
Logs do antivirus
Excluir
C:\Windows\System32\winlogon.exe
GPU parada (RDPDD)
Device Manager → Display adapters
Desactivar GPU virtual RDP
6.4 Desactivar WDDM para RDP (ecrã preto)
# Desactivar WDDM graphics driver para RDP (causa comum de ecrã preto)
# Via GPO: Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Remote Session Environment → Use WDDM graphics display driver for Remote Desktop Connections → Disabled
# Via registry:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "fEnableWddmDriver" -Value 0
# Reiniciar serviço TermService
Restart-Service TermService
6.5 Perfil temporário / corrompido
# Verificar se o utilizador tem perfil temporário
# Event Viewer → Application → procurar Event ID 1511 (Windows cannot load the user's profile)
# Listar perfis no servidor
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\*" | Select ProfileImagePath, Sid
# Procurar perfil com .bak (perfil corrompido)
Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" | Where-Object { $_.Name -match '\.bak' }
# Solução: remover perfil corrompido
# 1. Fazer logoff do utilizador
# 2. System Properties → Advanced → User Profiles → Settings → Delete
# 3. Ou via registry: remover a chave com .bak
# 4. Utilizador volta a fazer login — perfil novo é criado
7. Passo 6 — Performance e Lentidão
7.1 Medir latência e bandwidth
# No servidor (Linux/Windows) — iniciar iperf3
iperf3 -s
# No cliente — testar throughput
iperf3 -c servidor01 -t 30
# Se throughput < 10 Mbps, o RDP vai ter lag em gráficos
# Se latência > 50 ms, considerar RDP Shortpath (UDP)
7.2 Optimizar definições RDP no cliente
No cliente mstsc.exe (Remote Desktop Connection):
Definição
Valor recomendado para WAN
Valor para LAN
Colors
16-bit (High Color 16-bit)
32-bit
Display resolution
1280×720
Native
Experience → Visual effects
Desactivar tudo
Activar tudo
Experience → Persistent bitmap caching
Activar
Activar
Experience → Reconnect if connection dropped
Activar
Activar
Display → Full screen
Sim
Sim
7.3 Optimizar via GPO (servidor)
# Activar RDP Shortpath (UDP) — Windows Server 2022+
# GPO: Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Remote Session Environment → Turn on UDP → Enabled
# Via registry:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "SelectTransport" -Value 1
# 1 = Use both TCP and UDP (recomendado)
# 0 = Use only TCP
# 2 = Use only UDP
# Activar compressão de gráficos
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "TransportCompression" -Value 1
# 1 = Enabled, 0 = Disabled
# Limitar cor a 16-bit (reduz bandwidth)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "ColorDepth" -Value 1
# 1 = 8-bit, 2 = 15-bit, 3 = 16-bit, 4 = 24-bit, 5 = 32-bit
“Remote Desktop can’t connect to the remote computer” — verificar porta 3389, firewall, serviço TermService. Usar Test-NetConnection primeiro.
“Your computer could not connect to another console session” — alguém já está ligado na consola. Usar /admin no mstsc ou desligar a sessão consola com logoff 1.
“The remote session was disconnected because of an error in the licensing protocol” — licença RDS corrompida no cliente. Remover
HKLM\SOFTWARE\Microsoft\MSLicensing\Store
e reconectar.
“CredSSP encryption oracle remediation” — cliente sem patch CVE-2018-0886. Instalar actualização Windows Update ou desactivar NLA temporariamente.
“Because of a protocol error, this session will be disconnected” — conflito de protocolo entre cliente e servidor. Actualizar cliente mstsc ou desactivar UDP.
Ecrã preto após login — WDDM driver, perfil corrompido, ou explorer.exe crash. Verificar secção 6.3.
RDP lento em WAN — latência alta ou bandwidth baixo. Activar RDP Shortpath (UDP), reduzir cor para 16-bit, desactivar animações.
“The number of connections is limited” — em administração remota, apenas 2 sessões são permitidas por defeito. Desligar sessões inactivas ou instalar RDS CALs.
Sessão RDP desconecta após alguns minutos — GPO de timeout ou firewall a cortar conexões idle. Verificar MaxIdleTime e configurar keepalive.
RDP conecta mas não mostra desktop — explorer.exe não arranca. Na sessão RDP, Ctrl+Shift+Esc → File → Run → explorer.exe.
Não consegue copiar/colar entre cliente e servidor — serviço Clipboard no servidor parado. Reiniciar rdpclip.exe no servidor (Task Manager → kill → File → Run → rdpclip.exe).