How to force the 32-bit version of the remote desktop client to run on 64 bit Vista

64-bitremote desktopwindows-vista

Normally it is quite easy to run the 32 bit version of a windows application from the command line, e.g. run window:

C:\Windows\SysWOW64\Notepad.exe

You can tell that the process is 32-bit by checking in task monitor\processes as it will have a *32 next to the filename.

However, the remote desktop client (mstsc.exe) does not want to play ball. It always runs the 64-bit version from C:\Windows\System32\mstsc.exe regardless of how I start it (run window, 32-bit cmd windows etc). I've even tried writing a 32-bit C++ program to create it (normally child processes are also 32-bit) but this did not work.

We need to run the 32-bit version because we have some custom dlls that are integrated with remote desktop and it is not possible to load a 32-bit dll in a 64-bit process.

Anyone know a way around this?

Best Answer

I've found a simple way to get by this.

http://www.davidmoore.info/2009/12/02/running-32-bit-remote-desktop-connection-on-windows-64-bit/

Solution: Rename the 64-bit mstsc.exe from System32 to prevent it from replacing the 32-bit process.

This is simple if you have rights to rename that file. If you’re on NTFS you may get a “You require permission from TrustedInstaller to make changes to this file” error.

To get by this error, you can take Ownership of the file and give yourself full permissions:

  1. Browse to %SystemRoot%\System32
  2. Right click mstsc.exe and choose Properties
  3. Go to the Security tab
  4. Click Advanced
  5. Go to the Owner tab
  6. Click Edit
  7. From the “Change owner to:” list, choose your user name
  8. Click OK
  9. Go to the Permissions tab
  10. Click Change Permissions…
  11. Click Add
  12. Enter your user name and click OK
  13. Tick the box in the Allow column for Full control
  14. Click OK
  15. Click OK
  16. A Windows Security warning will come up; click Yes to proceed
  17. Click OK

Now, you can rename the file mstsc.exe to something like mstsc.exe.bak

Then, you can launch mstsc.exe from %SystemRoot%\SysWOW64 and you will have 32-bit Remote Desktop Connection running.