In Windows 8 and 8.1, like in previous Microsoft client OS versions, only one simultaneous incoming RDP connection is supported. It means that only one user (one session) can simultaneously connect to a Windows computer using the Remote Desktop. In most cases it is enough, but sometimes it would be useful if multiple remote users could work simultaneously in their own sessions. A good example is when a computer is used as a Media Center, when video is played in the system console session and you need simultaneously to work remotely with the system without interrupting the video on TV.
When you trying to start the second RDP session to a computer with Windows 8.1 / 8, a message appears that another user is already signed in locally and this session should be closed.
For example, in the server versions of Windows two simultaneous concurrent administrative connections with the individual sessions are supported (in case of the terminal RDS server this number may be even higher).
Nevertheless, you can find a special patch in the web that allows to ignore this restriction. Due to this patch, multiple users can simultaneously connect to Windows 8 / Windows 8.1 computer over RDP.
So, the patch replaces the original system file %SystemRoot%\System32\termsrv.dll (a library used by Remote Desktop Services).
Here are the links to the modified library versions:
Before you replace the library, back up original termsrv.dll using the command:
copy c:\Windows\System32\termsrv.dll termsrv.dll_old
Now, if something goes wrong, you can always roll back to the original configuration by replacing the current file with the original termsrv.dll_old.
Download the archive with the patched termsrv library for your Windows version.
In Windows 8 at first you have to change the values of the following keys in HKLM\System\CurrentControlSet\Control\Terminal Server\:
- fDenyTSConnections (DWORD) — 0 (the key allows to enable RDP on your computer)
- fSingleSessionPerUser (DWORD) — 0
The same operation can be performed from the command prompt:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
Then go to C:\Windows\System32, find the file termsrv.dll and open its properties.
By default, the owner of this file is TrustedInstaller and even the administrator doesn’t have any right to replace it.
Go to the Security tab and click Edit button. In the access list, find the local administrators group and give it full control over this file and save the changes.
The next step before replacing the library file is to open the service management console (services.msc) and stop Remote Desktop Services.
Copy termsrv.dll from the downloaded archive for your Windows version to %SystemRoot%\System32\ (with replacement).
After replacing the file, run Remote Desktop Services and try to create two RDP sessions with the patched computer from different accounts. If you did everything correctly, two separate Remote Desktop session should open.
As a stable solution against replacing the termsrv.dll file with Windows updates, you should use the Open Source solution – RDP Wrapper Library (available on GitHub) which does not replace termsrv.dll, and is a layer between Terminal Services and SCM. More information about using the RDP Wrapper Library can be found here.