Enabling Multiple RDP in Windows Server
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:
qwinstaProcedure#
1. Install the Remote Desktop Session Host role#
Open PowerShell as Administrator:
Install-WindowsFeature -Name RDS-RD-Server -IncludeAllSubFeature -IncludeManagementToolsThe server needs to restart when this completes:
Restart-Computer -Force2. Disable the single-session-per-user restriction#
After the reboot, in an elevated PowerShell session:
Set-ItemProperty `
-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
-Name "fSingleSessionPerUser" `
-Value 0 `
-ForceThis 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#
- Press Win + R, type
gpedit.msc, press Enter. - Navigate to:
Computer Configuration
└ Administrative Templates
└ Windows Components
└ Remote Desktop Services
└ Remote Desktop Session Host
└ Connections- Open Allow users to connect remotely by using Remote Desktop Services.
- Set it to Enabled and click OK.
4. Set the connection limit#
In the same Connections folder:
- Open Limit number of connections.
- Set it to Enabled.
- Enter the maximum concurrent connections — for example
10. - 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#
gpupdate /forceVerification#
Confirm the role is installed:
Get-WindowsFeature -Name RDS-RD-ServerInstall State should read Installed.
Confirm the registry value:
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:
Get-WmiObject -Namespace "root\CIMV2\TerminalServices" -Class Win32_TerminalServiceSetting | Select-Object -ExpandProperty LicensingNameThen test properly: have three different users connect at the same time, and confirm none of them displaces another. List active sessions from the server:
qwinstaTroubleshooting#
| Symptom | Cause and fix |
|---|---|
| Third user still disconnects another | Reboot 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 path | The policy key does not exist. Create it with New-Item as shown in step 2. |
| Settings revert after a while | A domain GPO is overriding local policy. The change must be made in the domain GPO instead. |
gpedit.msc not found | Server Core has no GUI policy editor. Use Set-ItemProperty for each setting instead. |
| Same user gets reconnected to one session | fSingleSessionPerUser is still 1, or policy has re-applied it. |