Windows 8 Pro (as well as all previous Windows client OS versions) allows only one concurrent user session. This means you can’t connect via Remote Desktop if a local user is already logged on. Normally it’s not a problem on a client machine, but in some cases, you may want the 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.
termsrv.dll file is normally located in C:\Windows\System32 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:
The readily patched version can be downloaded from here.
If something goes wrong and you want to revert, the 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)
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
Update May 2015
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.
Leave a Reply