How to enable concurrent remote desktop sessions on Windows Server 2012 R2 with termsrv.dll patch
If you want to allow multiple users to access your Windows Server 2012 R2 machine remotely at the same time, you may need to patch the termsrv.dll file. This file is responsible for limiting the number of remote desktop sessions to one per user. By modifying some bytes in this file, you can enable concurrent remote desktop sessions on non-server Windows editions.
However, patching the termsrv.dll file manually can be tricky and risky. You need to stop the Remote Desktop Service, take ownership of the file, grant yourself full permissions, find and replace the correct bytes, and restart the service. Moreover, you may need to repeat this process after every Windows update that changes the termsrv.dll file.
Fortunately, there are some tools that can simplify this process and automate it for you. One of them is TermsrvPatcher[^2^], a free and open source application that can patch the termsrv.dll file with a few clicks. It also allows you to configure some additional settings for remote desktop, such as enabling blank password logon or multiple sessions per user. It can even create a scheduled task that runs the patcher at startup in unattended mode, so you don't have to worry about Windows updates breaking your concurrent remote desktop sessions.
In this article, we will show you how to use TermsrvPatcher to enable concurrent remote desktop sessions on Windows Server 2012 R2 with termsrv.dll patch.
Step 1: Download and run TermsrvPatcher
You can download TermsrvPatcher from its GitHub page[^2^]. The latest version at the time of writing is 220.127.116.11. You will need .NET Framework 4.7.2 or newer to run it.
Once you have downloaded the zip file, extract it to a folder of your choice and run TermsrvPatcher.exe as administrator. You should see a window like this:
Step 2: Patch termsrv.dll
Before you patch the termsrv.dll file, you need to make sure that the Remote Desktop Service is running and that remote desktop is enabled on your machine. You can check these settings from the RDP Settings tab of TermsrvPatcher.
If everything is OK, go to the Patch tab and click on Patch termsrv.dll. The application will stop the Remote Desktop Service, take ownership of the file, grant full permissions, apply the patch from the Patches.txt file (which contains example patches for different versions of termsrv.dll), and restart the service.
If the patching is successful, you should see a message like this:
termsrv.dll version: 6.3.9600.20165
Patch applied: [6.3.*] Single User Offset x64
If the patching fails, you may need to find a different patch for your version of termsrv.dll or try another tool such as RDP Wrapper[^1^].
Step 3: Configure additional settings (optional)
If you want to customize some additional settings for remote desktop, such as enabling blank password logon or multiple sessions per user, you can do so from the RDP Settings tab of TermsrvPatcher.
For example, if you want to allow users to log on remotely with blank passwords, you need to check the Enable blank password logon option and click on Apply settings.
If you want to allow multiple sessions per user, you need to check the Enable multiple sessions per user option and click on Apply settings.
Step 4: Create a scheduled task (optional)
If you want to make sure that your concurrent remote desktop sessions are not affected by Windows updates that change the termsrv.dll file, you can create a scheduled task that runs TermsrvPatcher at startup in unattended mode.
To do this, go to the Scheduled Task tab of TermsrvPatcher and click on Create scheduled task. The application will create a task named 061ffe29dd