Concurrent Remote Desktop Sessions in Windows XP SP2

I mentioned before that Windows XP does not allow concurrent sessions for its Remote Desktop feature. What this means is that if a user is logged on at the local console, a remote user has to kick him off (and ironically, this can be done even without his permission) before starting work on the box. This is irritating and removes much of the productivity that Remote Desktop brings to Windows. Read on to learn how to remove that limitation in Windows XP SP2

A much touted feature in SP2 (Service Pack 2) since then removed was the ability to do just this, have a user logged on locally while another connects to the terminal remotely. Microsoft however removed the feature in the final build. The reason probably is that the EULA (End User License Agreement) allows only a single user to use a computer at a time. This is (IMHO) a silly reason to curtail Remote Desktop's functionality, so we'll have a workaround.

Microsoft did try out the feature in earlier builds of Service Pack 2 and it is this that we're going to exploit here. We're going to replace termserv.dll (The Terminal Server) with one from an earlier build (2055).

To get Concurrent Sessions in Remote Desktop working, follow the steps below exactly:

  1. Download the termserv.zip file below and extract it somewhere. (You have to be registered to see the file)
  2. Reboot into Safe Mode. This is necessary to remove Windows File Protection.
  3. Copy the termserv.dll in the zip to %windir%\System32 and %windir%\ServicePackFiles\i386. If the second folder doesn't exist, don't copy it there. Delete termserv.dll from the dllcache folder: %windir%\system32\dllcache
  4. Merge the contents of Concurrent Sessions SP2.reg file into the registry.
  5. Make sure Fast User Switching is turned on. Go Control Panel -> User Accounts -> Change the way users log on or off and turn on Fast User Switching.
  6. Open up the Group Policy Editor: Start Menu > Run > 'gpedit.msc'. Navigate to Computer Configuration > Administrative Templates > Windows Components > Terminal Services. Enable 'Limit Number of Connections' and set the number of connections to 3 (or more). This enables you to have more than one person remotely logged on.
  7. Now reboot back into normal Windows and try out whether Concurrent Sessions in Remote Desktop works. It should!

If anything goes wrong, the termserv_sp2.dll is the original file you replaced. Just rename it to termserv.dll, reboot into safe mode and copy it back.

The termserv.dl_ file is provided in the zip is for you slipstreamers out there. Just replace that file with the corresponding file in the Windows installation disks.

I've added in extra information from the comments below... thanks for all who researched! :-)

Other links of interest:

If anything doesn't work with my procedure above though, post a comment here and I'll try to help!

AttachmentSize
termserv.zip357.92 KB
Submitted by jonatj on Tue, 2005-03-01 03:39.

A link to another hacked termsrv.dll and other files for RDP concurrent logon:

http://www.msfn.org/board/lofiversion/index.php/t23719.html


Thread of other users who figured out the RDP concurrent logon:

http://www.msfn.org/board/index.php?showtopic=23619


Patch file created for the RDP concurrent logon:

http://www.sala.pri.ee/#termiserv




Here are detailed instructions I put in my readme.txt file:


How To enable concurrent Remote Desktop Sessions in Windows XP SP2

Thanks to qhitch (http://sig9.com/node/110) for instructions


Prerequisites:

Windows XP Professional SP2

Get termsrv.dll version 2055 from SP2 beta

Make sure Fast User Switching is enabled and machine is not apart of a domain

Make sure you have at least 2 users(besides Administrator) setup in Windows


Steps:

1. Reboot into Safe Mode

2. Replace %windir%\system32\termsrv.dll with version 2055

3. Replace %windir%\ServicePackFiles\i386\termsrv.dll with version 2055 (if needed)

4. Delete %windir%\system32\dllcache\termsrv.dll

5. Apply registry tweak:


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\Licensing Core]

"EnableConcurrentSessions"=dword:00000001


6. Reboot into Windows

7. Login with one user

8. From remote machine do a Remote Desktop Connection to target system and login with credentials from 2nd user


Congratulations, it shouldn't prompt you with the "need to logoff other user" message anymore!


P.S. What HTML tags should I use to get hyperlinks to work when posting?