This article explains everything you need to know about how to allow multiple RDP sessions in Windows using the famous RDP Wrapper Library. But first, some background…
If you have ever attempted making multiple remote desktop connections concurrently to your Windows 10 machine, you must have observed that by default, Windows 10 doesn’t allow multiple RDP sessions. Only one user can be connected at any time.
Even if you have the Pro or Enterprise versions, trying to open a second RDP session results in the following message:
Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?
Looks like this:
This article will show how to allow multiple RDP sessions in Windows DESPITE the default single user restriction. We will do this using the RDP Wrapper Library (found here).
Before I proceed, here’s a summary of the basic restrictions associated with Windows RDP.
- RDP is only supported in Windows Professional and above. The feature is completely disabled in all Home editions.
- By default, only one remote RDP connection is possible at any time. Trying to create a second one prompts you to close the first one.
- If a user is working on the console of the local PC and you start a remote RDP session, the console session will get terminated automatically. Also if a user tries to login to the system console when there is an active RDP connection, the remote RDP connection will be forcibly terminated.
- On Windows 10 Home PCs, incoming RDP connections are completely forbidden. However, with the same RDP Wrapper Library discussed here, that problem can be solved as well.
Interestingly, from a purely technical perspective, Windows 10 can indeed support multiple remote desktop connections right out of the box. In fact, any Windows version has the built in capability to support dozens (or even hundreds) of concurrent users connected via RDP at the same time – as long as the machine has enough memory of course (about 150-200 MB of RAM is needed per RDP session on average).
The single RDP user limitation is related to licensing and nothing else. It has nothing to do with the actual technical capabilities of the Windows operating system. The only technical limitation in this regard would be memory availability.
In the light of the above, please note this disclaimer…
Important Note (Disclaimer): System modifications described in this article may be treated as a violation of the Microsoft license agreement with all the consequences that come with it. This article is created mainly for educational purposes. Please do your own due diligence to understand the licensing implications of the RDP Wrapper Library if you intend to use it on a live system.
What Is The RDP Wrapper Library?
The RDP Wrapper Library is a utility that acts as a layer between the Service Control Manager (SCM) and Terminal Services to allow multiple RDP connections run concurrently. It also enables the remote RDP connection feature on PCs running Windows 10 Home (as mentioned above, this feature is disabled by default on all versions of Windows lower than Pro).
To get this library, download the zip file of the latest release of the RDP Wrapper Library from its Github page. As of this writing (April 4, 2019), the latest realease is v1.6.2.
Since this library is completely open source, you can also build it from source yourself. The full source code is available here: https://github.com/stascorp/rdpwrap
For our purpose, we will work with the pre-built release contained in the zip file.
Note: You may need to temporarily turn off your anti-virus software to allow the download.
Your downloaded archive will contain the following files:
- RDPWinst.exe — the install/uninstall program (generally launched by the installer and uninstaller batch files below)
- RDPConf.exe — a configuration utility
- RDPCheck.exe — a local RDP checker (utility)
- install.bat, update.bat, and uninstall.bat — batch files for installing, updating, or uninstalling the program
Installing And Using The RDP Wrapper Library
Before installing RDP Wrapper, it is important to use the original (unpatched) version of the termsrv.dll file. If not, the RDP Wrapper Library may be unstable, or it may not even start at all. I point this out here because, some older methods of “hacking” Windows RDP to allow multiple concurrent sessions involved patching the termsrv.dll file.
To install the RDP Wrapper Library, run install.bat as an administrator. While installing the program, it attempts to access GitHub to get the latest version of the .ini file. If you want to disable this (you don’t really need to), just take off the -o flag in the install.bat file.
The program will be installed to the C:\Program Files\RDP Wrapper directory.
When you’re done with the installation, run RDPConfig.exe and make sure that all the items under the Diagnostics section are green.
If you removed the -o flag from the install.bat file during installation, or if you performed your installation without an Internet connection, you may notice that the Listener state is marked [not supported].
To fix this, download the rdpwrap.ini file from the its Github page and put it in the RDP Wrapper installation folder (C:\Program Files\RDP Wrapper). Restart RDP Wrapper and confirm that the previously [not supported] flag changes to [fully supported].
If you continue to get a [not supported] message, you may need to manually update your rdpwrap.ini file. How to do that is explained in the next sections.
The RDP Wrapper Library has some cool features:
- An option to Hide users on logon screen – You may not want the list of logged in users to be visible on the welcome screen. This option lets you hide them.
- Single session per user – If disabled, allows multiple concurrent RDP sessions under the same account.
- …and quite a few other features
Once, you have finished setting up the RDP Wrapper, go ahead and open an RDP session. While the session is still running, open another. If you carefully followed the instructions here, both sessions should run concurrently.
Updating The rdpwrap.ini File After Windows Update Breaks It
I wrote this section (and the sections below it) after originally publishing this article and later becoming aware of a recurring problem with the RDP Wrapper caused by Windows Updates. If everything explained above works for you, you can simply ignore the rest of this article. You’re done. But if you’re still having issues (e.g. still getting a [not supported] message), this is likely caused by your newer version of Windows. If that is the case, keep reading.
As pointed out by Alan in the comments section, a recent Windows 10 update broke some stuff. This isn’t a big deal and often happens when certain Windows updates get installed.
In the following section, I will explain why Windows updates may break the RDP Wrapper functionality from time to time. I will also provide detailed steps to help you fix the problem whenever it happens.
Why Does Windows Update Break RDP Wrapper?
The reason for this is that Microsoft often ships new Windows 10 builds with programming updates to the dynamic link library used by the remote desktop protocol itself (the termsrv.dll file). As hinted above, the use of the RDP Wrapper to enable multiple concurrent RDP user connections is kind of like a licensing grey area. And since RDP Wrapper is not in itself a Microsoft product, we cannot expect Microsoft to update it for us.
Thankfully, however, the RDP Wrapper library has an enthusiastic community of geeks who use and support it. Let’s defer to them.
Where To Find Fixes (Or Offsets) For The RDP Wrapper Windows Update Problem
Generally speaking, when Windows update breaks the RDP Wrapper library, what you need to do is to grab an updated version of the rdpwrap.ini file, and you’re again good to go.
Lots of people use the RDP Wrapper library. It has a large community of both users and “developers”. Some of these developers have created their own “offsets” or fixes to get around the various Windows update issues that break the RDP Wrapper library. These fixes are usually just offsets defined in custom rdpwrap.ini file replacements.
Unfortunately, it may not always be easy to find the right fix (or rdpwrap.ini) to make the RDP Wrapper library start working again. This is because, after Windows update breaks it, you have to wait for a fix to be created by the community, and then search through github and forum posts to locate the proper fix.
One good place to check is the git repo provided by fre4kyC0de. He seems to post update fixes and rdpwrap.ini offsets as soon as they become available.
Fixing The Problem
Step 1: In order to update the rdpwrap.ini file, you first need to stop the RDP service, otherwise you will get an “access denied” error or similar.
To stop the RDP service, launch command prompt as an administrator and execute the following command:
net stop termservice
Step 2: Make sure you have the latest RDP Wrapper library installed. Again, remember not to patch your termsrv.dll file or the RDP Wrapper simply won’t work, even if you update the rdpwrap.ini file. This is important to note because some RDP Wrapper forum users provide third party patches to the termsrv.dll file. However, using such a patch in conjunction with the new offsets will break the RDP Wrapper library.
Step 3: Now, you need to patch your rdpwrap.ini configuration file. You will find the file here: C:\Program Files\RDP Wrapper\rdpwrap.ini.
You can patch this file by completely replacing your current rdpwrap.ini file or by updating your existing one.
If you’re replacing the file: This version of rdpwrap.ini should work for Windows 10 Pro users up to 1809 – 10.0.17763.437. Just download the zip file, extract it, and then use the rdpwrap.ini file it contains to overwrite your current file located in C:\Program Files\RDP Wrapper\rdpwrap.ini.
If you would rather patch the file yourself: Refer to the git repository provided by fre4kyC0de, then search for his latest Windows 10 version. As I write this article update (May 29, 2019), his latest Windows 10 patch is currently 10.0.17134.706.txt and it works perfectly for Windows 10 17763.475.
Once you have the right file, open your existing rdpwrap.ini file using a text editor and append his offsets to the end of your file. Make sure you leave a space (blank line) at the end of your ini file. RDPwrap will not function properly if there is any text at the bottom of the ini file, it needs to end with a blank space.
Step 4: Restart the remote desktop protocol (term service) via an elevated command prompt:
net start termservice
Step 5: Now, rerun the RDPConf.exe application and confirm that the “Wrapper state” is Installed, the “Service state” is Running, the “Listener state” is Listening and directly to the right of that, it should say [fully supported]. All of these values should be in green.
After completing the above steps and confirming that everything is running, your machine is ready to accept multiple concurrent remote desktop user connections.
I think the April 2019 Windows patch has this broken
Hi Alan, thanks for pointing this out. I have now updated this article with detailed instructions to fix this recurring Windows Update problem.
Have a look at this section above.
The instructions are specific enough to fix the April 2019 Windows Update problem and yet generic enough to be easily adapted to fix the RDP Wrapper ini file (rdpwrap.ini) if it gets broken again by future Windows Updates.
Hope it helps.
Thanks for the updates and I would like to know, if you have any video
Hi Sharon. No I don’t have any video for this. I currently don’t do videos generally. But I might consider this in the future. Thanks for stopping by.
If you like i can put a video together for you if you havent managed to come right as of yet.
Hi
I am running on windows 10.0.18362 build 18362
RDP wrapper is not working, the listening port is not listening , can you help please ?
First time on here and I have to say this is the most informative and easily comprehensible guide to RDP Wrapper I’ve read. Many thanks… you’ve saved my bacon with this one.
Hi Simon. I’m glad to hear you found this article informative and useful. Thanks for leaving your feedback!
OMG dude, you’re a crack. It really work for me, thank you so muchh.
Great to hear this worked for you, Ulises! Thank you for leaving your feedback.
Have just downloaded the zip file and ran it through Malware Bytes to be safe, and it reported that RDPWINST.EXE, RDPCHECK.EXE and RDPCONF.EXE are malware (RiskWare.RemoteAdmin)
Is it AV being overly cautious (similar to reporting perfectly safe password revealers to be malware) or should I worry that the files been compromised?
If you downloaded from the github link I indicated above, you shouldn’t worry about malware. As mentioned above, tools that modify the official Microsoft termsrv.dll file operate in a legal licensing gray area. So it shouldn’t be too surprising that anti-virus software flag them as threats.
As noted in the article, you may even want to temporarily disable Windows Defender (or any other anti-virus software that you use) in order to download and install this. Just consider the Malware Bytes report you got to be a false positive and continue with the process.
Hi!
Everything worked perfectly till yesterday.
I don’t know if there was an update that broke the patch.
I’m running on Windows10 Pro
Version 1809 OS 17763.775
Dear Ehi and appreciated community.
My problems is that only one connection is permitted at a time, but not mutiple sessions as I need.
Any suggestions?
I tried to allow up to 999999 users through gpedit.msc option.
I also replace the rdpwrap.ini as inidcated here.
Winver: 18362.418
Hi Juan Carlos Silva. When you run the RDPConf.exe application, what values do you get for “Wrapper state”, “Service state”, and “Listener state”?
You may also want to note that gpedit.msc configuration tweaks are not necessary in order to get the RDP Wrapper library working. So you may want to consider undoing any changes you made in gpedit.msc and elsewhere.
And don’t forget that (as mentioned in the article), “before installing RDP Wrapper, it is important to use the original (unpatched) version of the termsrv.dll file.”
So, if you had already experimented with other methods of bypassing the Windows single user RDP restriction, that might be the source of your problem. Undo any previous changes and try this again.
Unfortunately, I can’t be of too much help without having further details.
I try the Wrapper in Windows 10 LTSC and all except the license appear in Green but only 1 concurrent remote connection Works for me. Any idea how i can fix it?
If not I can try to manually modify the REGEDIT entries in order to test it.
Auto reply.
the patch show not supported near to the Green listening Word. Any idea how i can fix it?
Hi JAvier,
I wouldn’t recommend that REGEDIT method unless it’s an absolute last resort. The process described above on this page has always worked for me for a long time. And whenever Windows update breaks something, I just update my rdpwrap.ini file as described in this section above.
Have you already tried updating your rdpwrap.ini file? Which offset version are you using?
Hi Ehi, my version the win 10 17763, i think is not supported yet. So i can not fix it.
In rdpwrap.ini file appear my windows version but it dont work.
hello, has there been a fix. the PC updated the other day. I am on 10.0.18363. only one RDP is allowed at a time .
Windows 10 Pro
OS Build 18362.476
Version 1903
Wrapper State: Installed ver. 1.5.0.0
Service state: Running ver. 10.0.10240.16384
Listener state: Listening [fully supported]
Have installed and updated. One RDP session works. When I try to connect a second RDP session it asks if I want to disconnect prior user. How do I get this to work with multiple RDP sessions? Thanks for you help and a good product. Just need to get my kinks worked out.
Hi. I have been trying for a week now to figure this out. I am not able to edit the files like you said to. It says I have to get permission, or that the program is already running.
Can you help? The issue i am having is that the listener status is not supported.
Thanks in advance.
Hi Brian,
If you are trying to edit the rdpwrap.ini file using Notepad (or any other text editor), make sure that you first run your text editor as administrator before opening up the file using the File >> Open menu. That way, you should not get any permissions errors.
Hope that helps.
Hi:
I am still getting the same error. Not supported no matter what I do.
Is there a way for you to remote into my computer to help? I don’t. I d paying you.
What I am looking for is for users to have their own desktop and only use internet explorer and notepad.
I am at the point of crazy. Lol. I hope you can help. This is just not working for me.
Thanks in advance.
Hi. I reached out to you for help possibly remote help to get my listener status not supported to supported but no answer.
I would not mind paying you. Please let me know.
Hi Brian. I would love to help but unfortunately, I am not available for such work at this time. The best I can do for now is to try answering my readers’ questions via this comments section. Sorry.
I found this on another website, worked for me (version 10.0.18363.657), just paste below the rest at ini file
[10.0.18362.657]
LocalOnlyPatch.x86=1
LocalOnlyOffset.x86=B7D06
LocalOnlyCode.x86=jmpshort
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=82FB5
LocalOnlyCode.x64=jmpshort
SingleUserPatch.x86=1
SingleUserOffset.x86=50535
SingleUserCode.x86=nop
SingleUserPatch.x64=1
SingleUserOffset.x64=0DBFC
SingleUserCode.x64=Zero
DefPolicyPatch.x86=1
DefPolicyOffset.x86=50269
DefPolicyCode.x86=CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64=1
DefPolicyOffset.x64=1FE15
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
SLInitHook.x86=1
SLInitOffset.x86=5A77A
SLInitFunc.x86=New_CSLQuery_Initialize
SLInitHook.x64=1
SLInitOffset.x64=22DDC
SLInitFunc.x64=New_CSLQuery_Initialize
[10.0.18362.657-SLInit]
bInitialized.x86 =D577C
bServerSku.x86 =D5780
lMaxUserSessions.x86 =D5784
bAppServerAllowed.x86 =D578C
bRemoteConnAllowed.x86=D5790
bMultimonAllowed.x86 =D5794
ulMaxDebugSessions.x86=D5798
bFUSEnabled.x86 =D579C
bInitialized.x64 =F6A8C
bServerSku.x64 =F6A90
lMaxUserSessions.x64 =F6A94
bAppServerAllowed.x64 =F6A9C
bRemoteConnAllowed.x64=F6AA0
bMultimonAllowed.x64 =F6AA4
ulMaxDebugSessions.x64=F6AA8
bFUSEnabled.x64 =F6AAC
Hello,
Yes its work for me to 🙂
Hi Ehi,
Great blog man. I check it frequently for any updates.
Is there anyway to remotely manage a computer running this system? My friend wants it setup but he’s in a different country, I know that as soon as I remote in, there will be issues because it invokes the remote desktop app which then means one cannot make changes to it. I tried locally and its just not possible. How if I use something like the Chrome browser remote access app?
thanks
Marekus
Hi Marekus,
Yes, there certainly are other options to remotely control any computer. TeamViewer is one such tool that I use often. I have previously written an in-depth blog post about this: A Guide To Remote Controlling Your Computer From Anywhere.
The Chrome browser remote access tool should also work if that’s your preference.
Cheers!
Hi, for all that have issue recently, microsoft put KB4556799, thats update the 18362.836 termsrv.dll, and de rdp wrappler dont work, i suggest uninstall this update until some help to put support on .ini file from rdp wrappler.
This repository has been disabled.
Access to this repository has been disabled by GitHub Staff due to a violation of GitHub’s terms of service. If you are the owner of the repository, you may reach out to GitHub Support for more information.