Windows 2012 R2 Terminal Service does not render Desktop if resolution width less than 600

Recently I had to realize that w2k12 only shows an empty background when connecting to a new Terminal Service session and the requested resolution is 240×320, 480×640 or 480×800. These reolutions are used by Remote Desktop Mobille if you select the option “Fit remote desktop to screen”.

After login, the Start screen (Metro-Ui) is shown, regardless of having set TS to start new sessions always in Desktop mode. If you then start a desktop application or simply the “Control Panel” or “My Computer”, which are Desktop apps both, the screen changes to show an empty (Start screen) background only.

rdm_fullscreen

The apps are started on the desktop, but the desktop will not be shown by TS!

If you first start the session with a supported resolution, let’s say 800×600 or even 600×800, and then just disconnect the session (do not logout) and reconnect to the existing session with an unsupported resolution, the Desktop and running apps will be shown normally.

rdm_landscape_00 rdm_landscape_01

This is not an issue with Remote Desktop Mobile only. If you try this with a Windows 7 or Windows 8 TS client, the desktop will not be rendered by TS if the session has been started with an unsupported resolution. The resolution must be changed manually in a saved rdp file, as these clients only support resolutions down to 800×600. Then use the saved rdp file to start a new session.

screen mode id:i:1
use multimon:i:0
desktopwidth:i:480
desktopheight:i:800

Result trying to start “Control Panel”:

win7_480x800 win7_480x800_01

If you test Remote DesktopĀ on a Windows Phone 8 device, for example, you will not be able to change the resolution. The Terminal Server uses the default resolution (1024×768) and the windows phone screen is always shown in landscape view.

Seems to be a bug in TS. Especially as if starting the session with a supported res. and then reconnecting with an unsupported res. the TS will render correctly. It will only not render the desktop, if the session is started with an unsupported res.

Leave a Reply