domingo, noviembre 26, 2006

Enabling Multiple Remote Desktop Sessions in Windows XP Professional and Media Center Edition 2005

If you have ever used a real remote computer system like Citrix, then you have probably been craving multiple Remote Desktop sessions since you first fired up Windows XP Professional and/or Media Center Edition. Here is a HACK (translated: USE AT YOUR OWN RISK), to enable multiple Remote Desktop sessions on your XP Pro or MCE 2005 box:

NOTE: You will have to have knowledge of the Windows operating system and more specifically the Windows Registry. If you have no experience with the registry, then I would recommend you find someone who does or leave these alone. I do not make any kind of warranty that this will work for you or your friends. This is provided for entertainment purposes only. Don’t call me if your computer stops working. Got it?

  1. Print these directions so that you have them to work from.
  2. Restart your computer in Safe Mode - Follow this link to learn how to restart Windows XP in Safe Mode
  3. Turn off/disable Remote Desktop Connection (RDC) and Terminal Services
  1. Right click My Computer
  2. Select Properties
  3. Click on the Remote tab at the top of the window
  4. UNCHECK the box next to, “Allow users to connect remotely to this computer“
  5. Click OK
  6. Go to Start -> Control Panel -> Administrative Tools -> Services
  7. Find Terminal Services in the list
  8. Right click on Terminal Services and click Properties
  9. In the Startup Type box, select Disabled
  10. Click OK to close the window
  • Next you will replace the current version of the Terminal Services DLL (termsrv.dll) with an unrestricted version from a previous release of Terminal Services.
    1. Here is a copy of the Terminal Services DLL - Save it to your Desktop or other suitable location
    2. Using a file manager like Windows Explorer open C:\Windows\system32\dllcache
    3. Rename the file termsrv.dll to termsrv_dll.bak or whatever you would like.
    4. Copy the downloaded termsrv.dll file (the one you just downloaded from the web) to C:\Windows\system32\dllcache
    5. Open the C:\Windows\system32 folder
    6. Delete the file termsrv.dll in C:\Windows\system32
  • Now we can edit the Windows Registry to enable more than one RDP connection. Go to Start -> Run and type regedit - Hopefully you knew that already
  • Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core
  • Add a DWORD Key named EnableConcurrentSessions and give it a value of 1
  • Close the Registry Editor window
  • Go to Start -> Run and type gpedit.msc to run the Group Policy Editor
  • Browse to Computer Configuration -> Administrative Templates -> Windows Components -> Terminal Services and double click Limit number of connections
  • Select the Enabled button and enter the number of connections you would like to enable….at least 2.
  • Restart Windows
  • Right click My Computer and select Properties.
  • Click on the Remote tab at the top of the window
  • CHECK the box next to, “Allow users to connect remotely to this computer“
  • Click OK
  • Go to Start -> Control Panel ->Administrative Tools -> Services. Select Terminal Services from the list and double click it or right-click -> Properties. Set the Startup Type to Manual.

  • Restart Windows/Computer
  • You should be good to go.

    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: