KB
Windows Server

Enabling Multiple RDP in Windows Server

4 min read739 words10 code blocks

At a glance#

  • Purpose: Allow more than two simultaneous Remote Desktop sessions on a Windows Server.
  • Applies to: Windows Server 2016, 2019 and 2022.
  • Risk: Medium — installs a server role, requires a reboot, and has licensing implications.
  • Time: About 30 minutes including reboot.

Overview#

By default Windows Server permits only two concurrent administrative RDP sessions, and a third connection forces one of the existing ones to disconnect. That limit exists for server administration, not for multi-user access.

Allowing more sessions means installing the Remote Desktop Session Host role and turning off the single-session-per-user restriction.

Warning: Once the RD Session Host role is installed, Windows starts a 120-day licensing grace period. When it expires, RDP connections are refused until a Remote Desktop Licensing server with valid CALs is reachable. Do not install this role on a production server without confirming RDS CALs are available. See Manage RDS Grace Period Key in Windows Server.

Before you start#

  • Local Administrator rights.
  • Confirmation from whoever handles licensing that RDS CALs exist or are being purchased.
  • A maintenance window — the server reboots.
  • A VM snapshot.

Check the current session limit:

powershell
qwinsta

Procedure#

1. Install the Remote Desktop Session Host role#

Open PowerShell as Administrator:

powershell
Install-WindowsFeature -Name RDS-RD-Server -IncludeAllSubFeature -IncludeManagementTools

The server needs to restart when this completes:

powershell
Restart-Computer -Force

2. Disable the single-session-per-user restriction#

After the reboot, in an elevated PowerShell session:

powershell
Set-ItemProperty `
  -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
  -Name "fSingleSessionPerUser" `
  -Value 0 `
  -Force

This allows the same user account to hold several simultaneous sessions. Without it, a second login by the same account reconnects to the existing session rather than creating a new one.

Note: If the command fails with "Cannot find path", the policy key does not exist yet. Create it first: ``powershell New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Force ``

3. Allow remote connections via Group Policy#

  1. Press Win + R, type gpedit.msc, press Enter.
  2. Navigate to:
text
Computer Configuration
  └ Administrative Templates
      └ Windows Components
          └ Remote Desktop Services
              └ Remote Desktop Session Host
                  └ Connections
  1. Open Allow users to connect remotely by using Remote Desktop Services.
  2. Set it to Enabled and click OK.

4. Set the connection limit#

In the same Connections folder:

  1. Open Limit number of connections.
  2. Set it to Enabled.
  3. Enter the maximum concurrent connections — for example 10.
  4. Click OK.
Note: Setting this to a very high number does not grant capacity. Each concurrent user consumes RAM and CPU, and each needs a CAL. Size it against what the server can actually carry.

5. Confirm the restrict-single-session policy#

Still under Remote Desktop Session Host, open Connections and check:

  • Restrict Remote Desktop Services users to a single Remote Desktop Services session → set to Disabled.

This is the Group Policy equivalent of the registry change in step 2. Setting both keeps the configuration consistent if policy is later refreshed from a domain GPO.

6. Apply policy#

powershell
gpupdate /force

Verification#

Confirm the role is installed:

powershell
Get-WindowsFeature -Name RDS-RD-Server

Install State should read Installed.

Confirm the registry value:

powershell
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "fSingleSessionPerUser"

It should return 0.

Check the licensing grace period — this is the one people forget:

powershell
Get-WmiObject -Namespace "root\CIMV2\TerminalServices" -Class Win32_TerminalServiceSetting | Select-Object -ExpandProperty LicensingName

Then test properly: have three different users connect at the same time, and confirm none of them displaces another. List active sessions from the server:

powershell
qwinsta

Troubleshooting#

SymptomCause and fix
Third user still disconnects anotherReboot was skipped after installing the role, or gpupdate /force was not run.
"No Remote Desktop License Servers available"The 120-day grace period has expired. Configure a licensing server and install CALs.
Set-ItemProperty cannot find the pathThe policy key does not exist. Create it with New-Item as shown in step 2.
Settings revert after a whileA domain GPO is overriding local policy. The change must be made in the domain GPO instead.
gpedit.msc not foundServer Core has no GUI policy editor. Use Set-ItemProperty for each setting instead.
Same user gets reconnected to one sessionfSingleSessionPerUser is still 1, or policy has re-applied it.