When migrating from Windows Server 2003 to 2008 R2, many administrators notice a crucial behavioral change: the system now restricts a single user to one active Remote Desktop session by default. This differs from Server 2003's permissive approach where multiple concurrent sessions were permitted.
For software engineers working with:
- Multi-tab development environments
- Parallel testing scenarios
- CI/CD pipeline monitoring
- Cross-session debugging
Having multiple sessions under the same credentials is often essential for efficient workflows.
To re-enable multiple sessions per user, modify these registry settings:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fSingleSessionPerUser"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core]
"EnableConcurrentSessions"=dword:00000001
After applying these changes, restart the Remote Desktop Services:
net stop TermService & net start TermService
For domain environments, configure these policies:
- Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
- Set "Restrict Remote Desktop Services users to a single Remote Desktop Services session" to Disabled
To confirm the changes took effect:
query user /server:localhost
Sample successful output showing multiple sessions:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
developer console 1 Active none 5/15/2023 8:00 AM
developer rdp-tcp#1 2 Active none 5/15/2023 8:05 AM
Remember that each concurrent session consumes a CAL. With your 5 CALs/user configuration:
- 1 user can have up to 5 active sessions
- 5 users could each have 1 session
- But not 2 users with 3 sessions each (would exceed total of 5 CALs)
If changes don't take effect:
- Check for conflicting GPOs with
gpresult /h report.html
- Verify proper RDS role installation
- Ensure Terminal Services licensing is properly configured
When migrating from Windows Server 2003 to 2008 R2, many administrators encounter an unexpected change in Remote Desktop Services behavior. Where 2003 allowed multiple concurrent sessions for the same user, 2008 R2 by default restricts users to a single session.
Before making any changes, it's important to note that your per-user CAL setup (5 CALs per user) remains valid. The session limitation is a separate configuration from licensing. Each concurrent session still consumes one CAL, so with 5 CALs assigned, a user could theoretically have up to 5 simultaneous sessions.
The primary solution involves editing the RDP-Tcp connection properties:
# PowerShell method (recommended)
Import-Module RemoteDesktop
Set-RDSessionCollectionConfiguration -CollectionName "YourCollectionName" -UserProfileDisk -EnableUserProfileDisk $false
Set-RDSessionCollectionConfiguration -CollectionName "YourCollectionName" -DisconnectedSessionLimitMin 60
For environments without PowerShell remoting enabled, you can use registry edits:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fSingleSessionPerUser"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"MaxInstanceCount"=dword:ffffffff
For domain environments, the most maintainable solution is through Group Policy:
- Navigate to: Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
- Enable "Restrict Remote Desktop Services users to a single Remote Desktop Services session" and set it to Disabled
- Set "Limit number of connections" to your desired maximum (or disable)
After making any of these changes, test with:
query session /server:yourservername
This should show multiple sessions for the same user account if configured correctly.
- Application compatibility - Some apps may not handle multiple instances well
- Resource monitoring - More sessions mean higher resource usage
- Security implications - Multiple sessions increase attack surface
- Session management - Implement proper timeout/disconnect policies
If changes don't take effect:
# Restart required services
Restart-Service TermService -Force
Restart-Service SessionEnv -Force
Check event logs for TerminalServices-* events if problems persist.