Wednesday, November 2, 2011

Connect to Windows 8 Remote Desktop / Terminal service from Linux



UPDATE: Since Ubuntu 12.04, Remmina, which is a native remote desktop client, is able to connect to Windows 8. Maybe, you will have to setup your remote desktop server (Windows 8) to allow connection from old clients in your Windows 8 box.
Important thing: When you will connect to your Windows 8 box, you may have only a black window. Don't worry, leave it like that, and open a second connection. The second connection will display your Windows 8 desktop. Now you can close the first connection with the black screen. Don't ask me why it happens this way, I don't know.




Actually, it seems that none of the Remote Desktop / Terminal server clients available for linux are compatible with the new Windows 8 Remote Desktop server / Terminal Server.

However, there is a simple way to connect to Windows 8 Remote Desktop server / Terminal Service from your linux box. Here is the process tested on Ubuntu 11.10 with the default Wine version.

  • Install wine by executing the following command:
    • For ubuntu: sudo apt-get install wine
    • For RHEL/Fedora, as root: yum install wine
    • For last version of wine and other distributions you can go here: http://www.winehq.org/site/download
  • Now download Windows Terminal Service Client from Microsoft website: http://www.microsoft.com/download/en/confirmation.aspx?id=20609
  • When it is donwloaded, double-click on the file to launch it, like for a normal software. 
  • If the installer doesn't launch, open a terminal, go in the folder of the file and launch it with: wine WindowsXP-KB969084-x86-enu.exe
  • Follow the normal install process, like for a standard Windows install. Keep all default options.
  • The install process will not add a launch icon in your application menu, so you will have to create the launcher by yourself. However, at this time, for the purpose of the test, we will launch it from a terminal with the following command: wine ~/.wine/drive_c/windows/system32/mstsc.exe
  • And voila, Remote Desktop Connection is Running, as you can see below. However, having the remote desktop displayed on your screen may need some more settings, as you will see below.

  • Configuring some settings is required. For example, on Ubuntu 11.10, the following configuration is required:
    • In "Wine configuration", disable Direct 3D Pixel Shader:
      • Open "Wine Configuration" interface from your application menu or using this command: wine winecfg.exe
      • Go in "Grpahics" Tab
      • In "Direct 3D" area, un-check "Allow Pixel Shader (if supported by hardware)".
      • You can set "Vertex Shader Support" to "None" if you want, but it's not sure it has an effect.
    • In remote desktop client, Disable Audio streaming to local computer: 
      • Go in "Local Resources tab"
      • Click on "Settings..." in "Remote audio" area
      • Select "Do not Play" in "Remote audio playback" area
  • Now you should be able to have the login screen working and the desktop displayed. Note that it may have some errors or crash.