How to Enable Remote Desktop Using PowerShell

How to Enable Remote Desktop Using PowerShell? Step-by-Step Guide

Remote Desktop Protocol (RDP) is one of the most useful features in Windows, allowing administrators, IT professionals, and remote workers to access computers from anywhere. While many users enable Remote Desktop through the Windows Settings app, PowerShell provides a faster, more efficient, and automation-friendly method.

In this guide, you’ll learn how to enable Remote Desktop using PowerShell, configure the Windows Firewall, verify the settings, and troubleshoot common issues. Whether you’re managing one PC or hundreds of servers, PowerShell makes the process simple and reliable.

What Is Remote Desktop?

Remote Desktop is a Microsoft feature that allows you to connect to another Windows computer over a network. After connecting, you can use the remote computer as if you were sitting in front of it.

Common use cases include:

  • Remote IT support
  • Windows Server administration
  • Working from home
  • Managing cloud VPS or dedicated servers
  • Accessing office computers remotely

PowerShell enables administrators to automate Remote Desktop configuration without opening graphical settings.

Why Use PowerShell to Enable Remote Desktop?

There are several advantages to using PowerShell instead of the Windows GUI.

  • Faster configuration
  • Easy automation
  • Ideal for Windows Server
  • Perfect for scripting multiple machines
  • Supports remote administration
  • Works well in enterprise environments

For IT professionals managing multiple computers, PowerShell saves significant time.

Requirements Before You Begin

Before enabling Remote Desktop, ensure:

  • You have Administrator privileges.
  • Windows supports Remote Desktop (Windows Pro, Enterprise, Education, or Windows Server).
  • PowerShell is running as Administrator.
  • Network connectivity is available.
  • Firewall rules can be modified.

How to Enable Remote Desktop Using PowerShell? Step-by-Step Guide

Step 1: Open PowerShell as Administrator

  1. Press Windows + X
  2. Select Windows PowerShell (Admin) or Terminal (Admin)
  3. Approve the UAC prompt

You are now ready to configure Remote Desktop.

Step 2: Enable Remote Desktop Using PowerShell

Run the following command:

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0

What this command does

A value of:

  • 0 = Remote Desktop Enabled
  • 1 = Remote Desktop Disabled

Step 3: Enable Windows Firewall Rules

Even if Remote Desktop is enabled, Windows Firewall may still block incoming connections.

Run:

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

This command automatically enables all required firewall rules.

Step 4: Verify Remote Desktop Is Enabled

Use:

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections

Example output:

fDenyTSConnections : 0

If the value is 0, Remote Desktop is active.

Step 5: Confirm Firewall Rules

Check the firewall status:

Get-NetFirewallRule -DisplayGroup "Remote Desktop"

Look for:

Enabled : True

This confirms Windows Firewall allows Remote Desktop traffic.

Step 6: Check if Remote Desktop Service Is Running

Run:

Get-Service TermService

Expected output:

Status : Running

If the service is stopped:

Start-Service TermService

Step 7: Allow Remote Desktop Through Network Level Authentication (Optional)

To improve security, enable Network Level Authentication (NLA).

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1

Benefits include:

  • Better authentication
  • Reduced attack surface
  • Protection against unauthorized access

Step 8: Add a User to the Remote Desktop Users Group

If another user needs Remote Desktop access:

Add-LocalGroupMember -Group "Remote Desktop Users" -Member Username

Replace:

Username

with the actual Windows account.

Example:

Add-LocalGroupMember -Group "Remote Desktop Users" -Member John

Step 9: Restart Remote Desktop Service

If changes don’t apply immediately:

Restart-Service TermService

Step 10: Test Remote Desktop

From another computer:

  1. Press Windows + R
  2. Type:

mstsc

  1. Enter the computer name or IP address.
  2. Click Connect.

If everything is configured correctly, you’ll see the Windows login screen.

One-Line PowerShell Command

To enable Remote Desktop and firewall rules together:

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0; Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

This is useful for automation scripts.

Disable Remote Desktop Using PowerShell

If you later want to disable Remote Desktop:

Set-ItemProperty -Path “HKLM:\System\CurrentControlSet\Control\Terminal Server” -Name “fDenyTSConnections” -Value 1

Optionally disable firewall rules:

Disable-NetFirewallRule -DisplayGroup "Remote Desktop"

Troubleshooting Common Problems

ProblemSolution
Cannot connectVerify Remote Desktop is enabled.
Firewall blocks connectionEnable Remote Desktop firewall rules.
Service not runningStart the TermService service.
Access deniedRun PowerShell as Administrator.
User cannot log inAdd the user to the Remote Desktop Users group.
Network issueConfirm the PC is reachable via IP address or hostname.

PowerShell vs Windows Settings

FeaturePowerShellWindows Settings
Fast configuration
Automation
Bulk deployment
GUI required
Best for serversLimited
Scripting support

Security Best Practices

After enabling Remote Desktop:

  • Enable Network Level Authentication.
  • Use strong passwords.
  • Keep Windows updated.
  • Restrict Remote Desktop access to trusted users.
  • Use VPN or RD Gateway for internet access.
  • Avoid exposing TCP port 3389 directly to the public internet.
  • Enable Windows Firewall.
  • Monitor login attempts.

Conclusion

Using PowerShell to enable Remote Desktop is one of the fastest and most efficient ways to configure remote access on Windows computers and servers. With just a few commands, you can enable RDP, open the necessary firewall rules, verify the configuration, and secure the connection using Network Level Authentication.

For IT administrators and businesses managing multiple systems, PowerShell offers a scalable, scriptable, and reliable solution that saves time while ensuring consistent Remote Desktop configuration across your environment.

Scroll to Top