If you need multiple users to remotely connect to a single Windows PC using Remote Desktop Protocol (RDP), you’ve come to the right place. By default, only one active RDP session is allowed in desktop versions of Windows. However, with some tweaks, you can lift this limitation. This guide will walk you through how to enable multiple RDP sessions on Windows 10 and 11 (Windows Vista/7/8/8.1 are also possible), with the tool called RDP Wrapper.

Understanding RDP Limitations

Edition Restrictions

  • Professional and Enterprise Only: Remote Desktop connections are only supported on Windows Professional and Enterprise editions. Home/Single Language editions do not support RDP connections.

Concurrent Connection Limits

  • Single Session: Only one simultaneous RDP connection is allowed. Starting a second session will prompt you to end the active session with a warning like: Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?
  • Concurrent Connections: Starting a second session prompts to end the active session.

Licensing Restrictions

  • License Limitations: Microsoft restricts creating a workstation-based Terminal RDP server for multiple users to work simultaneously. For such setups, Microsoft recommends using a Windows Server with Remote Desktop Services (RDS) and purchasing RDS Client Access Licenses (CALs).
  • Or Microsoft will recommend you use a dedicated version of Windows Windows Enterprise Multi-Session (AKA: Windows 10 Enterprise for Remote Sessions and Windows 10 Enterprise for Virtual Desktops)

Technical Capabilities

  • Hardware Resources: With sufficient RAM and CPU, any version of Windows can support multiple remote user sessions.
Important Note
Any modifications to the operating system are at your own risk. Ensure you have backups and understand the implications of these changes.

Prerequisites: Enabling Remote Desktop

Before you proceed, make sure that the Remote Desktop Protocol is enabled in Windows!

  1. Via Settings:
    • Go to Settings -> System -> Remote Desktop.
    • Toggle "Enable Remote Desktop" on.
  2. Via Control Panel:
    • Run the command SystemPropertiesRemote.
    • Check "Allow remote connection to this computer".
  3. Ensure Original termsrv.dll File:
    • Before downloading and installing the RDP Wrapper, make sure that you are using the original (unpatched) version of the termsrv.dll file. Otherwise, it may not install or will need to manually install.

RDP Wrapper Library

What is RDP Wrapper?

The RDP Wrapper Library is an open-source project that enables multiple RDP sessions on Windows 10/11 without modifying the termsrv.dll file. It acts as a layer between the Service Control Manager (SCM) and Remote Desktop Services.

RDP Wrapper Library
Pascal
16705

Steps to Install RDP Wrapper

Important Security Note: When downloaded by browser and by most antivirus scanners will be detected as malware; However, the program is safe, you can simply ignore it or add it to the whitelist, furthermore, the program is open source, and you can always check the source code.
  1. Download RDP Wrapper:
    • Download the RDP Wrapper .zip file from the RDP Wrapper Library GitHub repository releases page. Or Download Option 2: From My Site.
    • The latest available version of the RDP Wrapper Library is v1.6.2 with the latest releases from 2017, but it still can run on Windows 11, just needed to update the rdpwrap.ini configuration file.
  2. Install RDP Wrapper:
    • Extract the downloaded .zip files.
    • Run install.bat as an administrator in the extracted folder. The program is installed in C:\Program Files\RDP Wrapper.
  3. Check Installation Status:
    • Run RDPConfig.exe to check the installation status. Most likely, If you see a '[not supported]' warning, it means the rdpwrap.ini file needs updating.
  4. Update rdpwrap.ini: (Remote Desktop Service needs to be stopped first, then enable it)
    • Download the latest rdpwrap.ini from this rdpwrap.ini file link. Or Download Option 2: From My Site (Updated to 2024-05-22).
    • Replace the existing rdpwrap.ini file in C:\Program Files\RDP Wrapper\rdpwrap.ini with the downloaded one. OR the PowerShell command as Admin:
    • Stop-Service termservice -Force; Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"; Start-Service termservice
    • if you see the following message: "WARNING: Waiting for service 'Remote Desktop Services (termservice)' to stop…" and taking a long time to stop, will need to restart the PC and try again.
  5. Restart and Verify (You may not need to):
    • Restart your computer.
    • Run RDPConfig.exe in the extracted folder again to ensure all items in the Diagnostics section are green and that the '[Fully supported]' message is displayed.
    • Test multiple concurrent RDP sessions using different user accounts with your preferred RDP client (e.g., mstsc.exe, RDCMan, mRemoteNG).

Optional - Modifying the termsrv.dll File

Manual Patch Method

This method normally doesn’t trigger antivirus software as a potential threat, and also manually edit the file each time you update the Windows build or if the monthly cumulative patches update the termsrv.dll version.

This method involves manually editing the termsrv.dll file with a HEX editor. A PowerShell script is available on GitHub script to automate this process without using rdpwrapper or manually editing the HEX. Run the Powerball command as the administrator:

Link 1:

Set-ExecutionPolicy Bypass -Scope Process -Force; irm https://techssh.com/Files-share/termsrv.dll-File_rdp_patch.ps1 | iex

Link 2: Windows 11

Set-ExecutionPolicy Bypass -Scope Process -Force; irm raw.githubusercontent.com/Techssh/Handy-Scripts/main/PowerShell/termsrv.dll-File_rdp_patch.ps1 | iex

Troubleshooting

  • RDP Wrapper not working or got a [Not Supported] Warning :
    • If the RDP Wrapper does not work as expected and you cannot use more than one RDP connection on Windows, the termsrv.dll file version might have been updated during Windows Updates installation.
    • Most likely to happen after a Windows update such as security updates or an upgrade to the Windows build being applied.
    • If you got [Not Supported] Warning, update the rdpwrap.ini file as described above. If rdpwrap.ini from the link above still does not work, check the internet for the patches or check the GitHub issue, etc for your OS build (Find out your OS build version with command: winver ) .
  • Listener State: Not Listening:
    • If the RDPWrap diagnostics section shows a "Listener state: Not listening" warning, try updating the rdpwrap.ini file and then reinstalling the RDPWrapper service using the command: rdpwinst.exe -u AND rdpwinst.exe -i
    • Make sure other RDP programs do not have a conflict with the default port 3389, which can be checked using netstat -ano in cmd.
  • Connection Errors:
    • If you receive a message that all connections are in use, adjust the Group Policy setting:
    • gpedit.msc -> Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections -> Limit number of connections
    • Such as Increasing the ‘RD maximum connection allowed’ value to 999999.

Additional Tips

Checking Active Sessions

Use the qwinsta command to see active RDP sessions:

qwinsta

Example output:

rdp-tcp#0         user1                 1  Active
rdp-tcp#1         user2                 2  Active

Scheduled Task for Automatic Updates

Create a scheduled task to automatically update the rdpwrap.ini file:

Stop-Service termservice -Force; Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"; Start-Service termservice

Useful References

Conclusion

By using RDP Wrapper or modifying the termsrv.dll file, now you can enable multiple RDP sessions on your Windows PC, allowing several users to connect simultaneously.