It is often necessary to have a remote session where one runs Windows 10 on a remote computer. Within such a session the computer is fully controlled by the. With RDP 8.1 we introduced an AVC/H.264 mixed mode which in addition to using RemoteFX Media Streaming, extended support for AVC/H.264 to images as well, while text is compressed using a proprietary Codec. This mode is used by Windows RT devices running Windows 8.1 and some 3 rd party RDP implementations. With RDP 10 we are now taking AVC/H.264.
Method 1:
Method 2:
Remote users can connect to their Windows 10 computers through the Remote Desktop Services (RDP) running on the Pro and Enterprise editions (but not on Home/Single Language). But there is a restriction on the number of simultaneous RDP sessions – only one remote user can work at a time. If you try to open a second RDP session, a warning appears asking you to disconnect the first user session.Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?
Let’s consider the main restrictions of the Remote Desktop Service usage on Windows 10 (and all previous desktop Windows versions):
- RDP access feature supported only in higher Windows editions (Professional and Enterprise). In Windows 10 Home editions, the incoming remote desktop connections are forbidden at all (you can solve this only using the RDP Wrapper Library).
- Only one simultaneous RDP connection is supported. When you try to open a second RDP session, the user is prompted to close the existing connection.
- If there is a user who works on the console of the computer (locally), then when you try to create a new remote RDP connection, the console session will be terminated. A remote RDP session will be also forcibly terminated if the user will try to log locally.
Actually, the number of simultaneous RDP connections is limited rather by the license (then by any technical aspect). Therefore, this restriction does not allow to create a terminal RDP server based on the workstation that can be used by multiple users. Microsoft’s logic is simple: if you need a Remote Desktop server – buy a Windows Server license, RDS CALs, install and configure the Remote Desktop Session Host (RDSH) role.
From a technical point of view, any Windows version with a sufficient amount of RAM can support simultaneous operation of several dozens of remote users. On average, 150-200 MB of memory is required for one user session, without taking into account the launched apps. Those, the maximum number of simultaneous RDP sessions in theory is limited only by computer resources.
Let’s consider two ways on how to allow simultaneous RDP connections on Windows 10: using the RDP Wrapper application and by editing the termsrv.dll file.Contents:
Important. Initially, in the very first version of this post, the main working option that allows you to remove the limit on the number of simultaneous RDP user connections was the way to modify and replace the termsrv.dll file in the %SystemRoot%System32 folder. However, when you install a new Windows 10 build or some security updates, this file can be updated.
As a result, you have to edit this file using Hex editor each time, which is quite tedious. Therefore, you can use the RDP Wrapper Library tool as the main way to deploy a free RDS server on Windows 10.Note. System modifications described in the article are considered as a violation of Microsoft License Agreement with all the consequences that come with it and you may perform them at your own risk.
RDP Wrapper: Enable Multiple RDP Sessions on Windows 10
The RDP Wrapper Library project allows you to support multiple RDP sessions on Windows 10 without replacing the termsrv.dll file. This software serves as a layer between SCM (Service Control Manager) and the Remote Desktop Services. RDPWrap allows you to enable not only support for multiple simultaneous RDP connections, but also to enable the support of RDP Host on Windows 10 Home editions. RDP Wrapper does not make any changes to the termsrv.dll file, it’s just loading termsrv library with the changed parameters.
Should I Enable Remote Desktop?If You Only Want To Access Your PC When You Are Physically Sitting In Front Of It, You Don't Need To Enable Remote Desktop. Enabling Remote Desktop...
Thus, the RDPWrap will work even in case of termsrv.dll file update. It allows not to be afraid of Windows updates.Important. Before installing RDP Wrapper it is important to make sure that you use the original (unpatched) version of the termsrv.dll file. Otherwise, RDP Wrapper may not work stably, or it cannot be started at all.
You can download RDP Wrapper from the GitHub repository: https://github.com/binarymaster/rdpwrap/releases (the latest available version of RDP Wrapper Library – v1.6.2). Based on the information on the developer page, all versions of Windows are supported. Windows 10 is supported up to the 1809 build (although , everything also works fine in Windows 110 1909, see the solution below).
The RDPWrap-v1.6.2.zip archive contains some files:
- RDPWinst.exe — an RDP Wrapper Library install/uninstall program;
- RDPConf.exe — an RDP Wrapper configuration utility;
- RDPCheck.exe — Local RDP Checker — an RDP check utility;
- install.bat, uninstall.bat, update.bat — batch files for installation, uninstallation and update of RDP Wrapper.
To install the RDPWrap, run the install.bat with the Administrator privileges. During the installation process, the utility accessing the GitHub site for the latest version of the ini file. To undo this, remove the -o flag in the install.bat file. The program will be installed in the C:Program FilesRDP Wrapper directory.
When the installation is over, run the RDPConfig.exe. Make sure that all elements on the Diagnostics section are green.
Run the RDPCheck.exe and try to open a second RDP session (or connect several RDP sessions from remote computers). It worked out well! Now your Windows 10 allows two (and more) users to use different RDP sessions simultaneously.
The RDPWrap utility supports all Windows editions: Windows 7, Windows 8.1, and Windows 10. Thus, you can build your own terminal (RDS) server on any desktop instance of Windows.
Also interesting features of the RDP Wrapper are:
- The option Hide users on logon screen allows you to hide the list of users from the Windows Logon Screen;
- If you disable the Single session per user option, multiple simultaneous RDP sessions will be allowed under the same user account (the registry parameter fSingleSessionPerUser = 0 is set under the key HKLMSYSTEM CurrentControlSetControlTerminal ServerfSingleSessionPerUser);
- RDP Port — you can change the Remote Desktop port number from 3389 to any other;
- In the Session Shadowing Mode section you can change the remote control (shadow) connection permissions to the Windows 10 RDP sessions.
RDP Wrapper not Working on Windows 10
Let’s consider what to do if you cannot use several RDP connections in Windows 10 even with the installed RDP Wrapper tool.
In my case, since there is no direct Internet access on the computer, the RDPWrap could not get the new version of the rdpwrap.ini file from GitHub with the settings for the latest Windows versions. Therefore, the RDConfig utility showed the status [not supported].
Download the rdpwrap.ini file from the developer’s page and place it in the installation folder (C:Program FilesRDP Wrapperrdpwrap.ini). Restart the TermService and make sure that the state [not supported] is changed to [fully supported].
If the RDP Wrapper utility doesn’t work properly after updating the rdpwrap.ini file, the problem can occur because of a new build of Windows 10 you are using. Try to download the new rdpwrap.ini for your Windows 10 version build from here https://github.com/fre4kyC0de/rdpwrap.You can get the rdpwrap.ini for the Windows 10 1909 10.0.18363.476 with the following link rdpwrap_10.0.18363.476_1909.zip.
Also, if you have problems with RDPWrap, you can open the issue at https://github.com/stascorp/rdpwrap/issues. Here you can find the actual rdpwrap.ini file before updating it in the official repository.
To replace the rdpwrap.ini file:
- Stop the termservice:
get-service termservice | stop-service
- Replace the rdpwrap.ini file in the directory C:Program FilesRDP Wrapper;
- Restart your computer;
- Run the RDPConf.exe and make sure all statuses turn green.
If after installing security updates or upgrading the Windows 10 build, RDP Wrapper does not work correctly, check if the “Listener state: Not listening” is displayed in the Diagnostics section.
Try to update the C:Program FilesRDP Wrapperrdpwrap.ini file using the update.bat script (or manually) and reinstall the service:
rdpwinst.exe -u
rdpwinst.exe -i
It happens that when you try to establish a second RDP connection under a different user account, you see a warning:The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.
In this case, you can use the Local Group Policy Editor (gpedit.msc) to enable the policy “Limit number of connections” under Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections section. Change its value to 999999.
Restart your computer to apply new policy settings.
Modifying Termsrv.dll File to Allow Multiple RDP Session
To remove the restriction on the number of concurrent RDP user connections in Windows 10 without using rdpwraper, you can replace the original termsrv.dll file. This is the library file used by the Remote Desktop Service. The file is located in C:WindowsSystem32 directory.
Before you edit or replace the termsrv.dll file, it is advisable to create its backup copy. If necessary, this will help you to return to the original file version:
copy c:WindowsSystem32termsrv.dll termsrv.dll_backup
Before you edit the termsrv.dll file, you have to become its owner and give the Administrators group the full permissions to it. The easiest way to do this is from the command prompt. To change the file owner from TrustedInstaller to a local administrators group use the command:
takeown /F c:WindowsSystem32termsrv.dll /A
Now grant the local administrators group Full Control permission on the termsrv.dll file:
icacls c:WindowsSystem32termsrv.dll /grant Administrators:F
After that, stop the Remote Desktop service (TermService) from the services.msc console or from the command prompt:
Net stop TermService
Before moving on, you need to get your version (build number) of Windows 10. Open the PowerShell console and run the command:
Get-ComputerInfo | select WindowsProductName, WindowsVersion
I have Windows 10 build 1909 installed on my computer.
Then open the termsrv.dll file using any HEX editor (for example, Tiny Hexer). Depending on your Windows 10 build, you need to find and replace the code according to the table below:
For example, for Windows 10 x64 RTM (10240) with the termsrv.dll file version 10.0.10240.16384, you need to find the line:
39 81 3C 06 00 00 0F 84 73 42 02 00
and replace it with:
B8 00 01 00 00 89 81 38 06 00 00 90
Save the file and run the TermService.
Already patched termsrv.dll file for Windows 10 Pro x64 can be downloaded here: termsrv_for_windows_10_x64_10240.zip
If something went wrong and you experience some problems with the Remote Desktop service, stop the service and replace the modified termsrv.dll file with the original version:
copy termsrv.dll_backup c:WindowsSystem32termsrv.dll
The advantage of the method of enabling multiple RDP sessions in Windows 10 by replacing the termsrv.dll file is that antiviruses do not respond on it (unlike the RDPWrap, which is detected by many antiviruses as a Malware/HackTool/Trojan).
The main drawback is that you will have to manually edit the termsrv.dll file each time you upgrade the Windows 10 build (or when updating the version of the termsrv.dll file during the installation of monthly cumulative updates).
Windows 8 Pro (as well as all previous Windows client OS version) allows only one concurrent user session. This means you can't connect via Remote Desktop if local user is already logged on. Normally it's not a problem on a client machine, but in some cases you may want ability to login concurrently. A good example is a Media Centre PC when somebody watches a movie and you want to access the machine without interrupting the movie.
To have multiple RDP sessions working your need to make some modifications to the termsrv.dll file. There are tools that do these changes automatically, but they often come from dubious sources and it's difficult to be sure that they are completely safe. This article shows how to modify termsrv.dll file yourself.
Remote Desktop Session Shutdown Options For Windows 8 Are ...
termsrv.dll file is normally located in C:WindowsSystem32 folder. Before modifying this file for the first time, you need to take ownership and assign yourself read/write permissions. You also need to stop Remote Desktop service (TermService).
Once this is done, it's simply a question of opening termsrv.dll with a HEX editor and changing small part of the file. Always backup the original file before making changes.
Certain Windows updates can replace your patched version of termsrv.dll. This doesn't happen very often, but if you let Windows update automatically, be prepared to loose multiple RDP sessions at any time.
Windows 8.1 (64bit)
In original version of Windows 8.1 (64bit), you need to replace:
8B 81 38 06 00 00 39 81 3C 06 00 00 0F 84 1B 70 00 00
with
B8 00 01 00 00 89 81 38 06 00 00 90 90 90 90 90 90 90
Here are the patched bits:
Readily patched version can be download from here.
If something goes wrong and you want to revert, original unpatched termsrv.dll v6.3.9600.16384 can be downloaded from here.
Note: This was tested and works with Windows 8.1 Pro RTM 64bit.
July 2014 update for Windows 8.1 (64bit)
One of the Windows updates installed on 9th of July updated termsrv.dll file from version 6.3.9600.16384 to 6.3.9600.17095. File size also changed from 1,032,704 bytes to 1,018,880 bytes. This naturally broke the previous termsrv.dll patch.
To restore concurrent RDP sessions, use any HEX editor and replace:
39 81 3C 06 00 00 0F 84 9E 31 05 00
with
B8 00 01 00 00 89 81 38 06 00 00 90
Or just download a patched version from here. You will need to stop Remote Desktop services and possibly take ownership of termsrv.dll before you can update it.
Original unpatched v6.3.9600.17095 can be downloaded from here.
Note: This was tested and works with Windows 8.1 Pro RTM 64bit.
November 2014 update for Windows 8.1
(64bit)
Windows updates now updated termsrv.dll file from version 6.3.9600.17095 to 6.3.9600.17415. File size changed from 1,018,880 bytes bytes to 1,114,624 bytes.
To restore concurrent RDP sessions, use any HEX editor and replace:
39 81 3C 06 00 00 0F 84 D3 1E 02 00
with
B8 00 01 00 00 89 81 38 06 00 00 90
You can download a patched version from here. You will need to stop Remote Desktop services and possibly take ownership of termsrv.dll before you can update it.
Original unpatched v6.3.9600.17415 can be downloaded from here.
(32bit)
Install Rdp 8.1 Windows 7
I don't have any 32bit machines and haven't tested this myself, but guys on mydigitallife forums suggest to replace:
3B 81 20 03 00 00 0F 84 2A D5 00 00
with
B8 00 01 00 00 89 81 20 03 00 00 90
Remote Desktop Windows 8.1
Update May 2015
See All Results For This Question
As of 05.2015, the same November 2014 patch is still working on up to date Windows 8.1. termsrv.dll is still on version 6.3.9600.17415.