Skip to content
February 27, 2026 • Junior (1-3 years) How-To

Troubleshoot Remote Desktop Connections Safely

By Last updated

Diagnose Windows Remote Desktop connection failures with read-only checks for reachability, policy, firewall, account access, and Network Level Authentication.

Free PDF

Top 10 Intune and Autopilot Enrollment Errors: Causes and Fixes

A free cheat sheet covering ten enrollment errors, each with the symptom, the most likely cause, the fix, and a link to the full guide.

  • Ten real error codes and failures, including 0x80180014, 0x8018002b, 0x801c03f3, 0x800705b4, the ODJConnector logon failure, and the Win32 detection error 0x87d1041c.
  • Every cause and fix checked against Microsoft's own documentation.
  • A link from each entry to the full zakitpro.com article.

You get the free PDF. By subscribing you also agree to receive occasional emails from zakitpro about Intune and Autopilot troubleshooting. Emails are sent through MailerLite. You can unsubscribe anytime with the link in every email. See the privacy page for how your email is handled.

Step-by-step guide

Troubleshoot Remote Desktop Connections Safely

Work through the connection path before changing the target. Enabling Remote Desktop exposes a remote sign-in surface; do it only on an authorized device, on a trusted network, and through the control plane your organization manages. Keep Network Level Authentication (NLA) enabled unless an approved compatibility investigation proves it must be changed temporarily.

Check reachability from the client

Replace TargetPC with the approved hostname or address:

Resolve-DnsName TargetPC
Test-NetConnection -ComputerName TargetPC -Port 3389

If name resolution fails, resolve DNS first. If TCP 3389 fails, check routing, VPN, the target’s firewall policy, and whether the target is meant to accept RDP. Do not open 3389 to the public internet as a test.

Inspect the target without changing it

Run these read-only checks in an authorized elevated session on the target:

$rdpPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server'
$listenerPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'

Get-ItemProperty -Path $rdpPath -Name fDenyTSConnections -ErrorAction SilentlyContinue
Get-ItemProperty -Path $listenerPath -Name PortNumber, UserAuthentication -ErrorAction SilentlyContinue
Get-NetFirewallRule -Name 'RemoteDesktop*' -ErrorAction SilentlyContinue |
    Select-Object Name, Enabled, Profile, Direction, Action
Get-Service -Name TermService
Get-LocalGroupMember -Group 'Remote Desktop Users' -ErrorAction SilentlyContinue

These values are clues, not a complete diagnosis. Local results can be overridden by Group Policy, MDM, security baselines, or role configuration. Compare them with the effective policy and the relevant TerminalServices event logs.

Use the managed control plane for changes

If policy intentionally disables RDP, do not bypass it with a local registry edit. Ask the policy owner to confirm whether the device should accept remote connections. For an approved endpoint, enable Remote Desktop using Windows Settings or the approved Group Policy/Intune configuration, scope access to named users or groups, and keep the firewall rule limited to the required network profiles and source ranges.

Do not use Set-ItemProperty to flip fDenyTSConnections as a generic fix. Do not disable NLA as a routine troubleshooting step. NLA requires authentication before a session is established and is recommended for most environments. If a documented legacy-client issue requires an exception, test on a non-production device, obtain approval, restrict exposure, set an expiry, and restore NLA immediately after the test.

Common symptoms

“Remote computer is not available”

Check DNS, VPN/routing, target state, TCP reachability, and the effective firewall policy. Confirm the target supports incoming Remote Desktop for the required edition and is intended to be remotely accessible.

“Logon attempt failed”

Verify the account is enabled, credentials are valid, the user is authorized for Remote Desktop, and the device’s sign-in policy permits the connection. Do not add broad groups or grant local administrator rights just to test.

“The remote session was disconnected”

Correlate the disconnect time with network interruptions, session limits, and—on Remote Desktop Session Host deployments—licensing configuration and event logs. Client Windows and RDS hosts do not share identical licensing behavior.

Saved connection history

Inspect saved per-user host entries before removing anything:

Get-ChildItem -Path 'HKCU:\Software\Microsoft\Terminal Server Client\Servers' -ErrorAction SilentlyContinue

Removing a saved host entry loses that user’s connection history and does not reset the RDP service or repair a listener certificate. Remove only an exact stale entry after confirming it is not needed. Avoid deleting machine-wide listener certificates or registry trees as a generic reset.

Sources

Free PDF

Top 10 Intune and Autopilot Enrollment Errors: Causes and Fixes

A free cheat sheet covering ten enrollment errors, each with the symptom, the most likely cause, the fix, and a link to the full guide.

  • Ten real error codes and failures, including 0x80180014, 0x8018002b, 0x801c03f3, 0x800705b4, the ODJConnector logon failure, and the Win32 detection error 0x87d1041c.
  • Every cause and fix checked against Microsoft's own documentation.
  • A link from each entry to the full zakitpro.com article.

You get the free PDF. By subscribing you also agree to receive occasional emails from zakitpro about Intune and Autopilot troubleshooting. Emails are sent through MailerLite. You can unsubscribe anytime with the link in every email. See the privacy page for how your email is handled.

#rdp #remote-desktop #troubleshooting #network