The excitement about your new 4K monitor will quickly fade if applications cannot cope with the high resolution of HiDPI monitors. One specific problem concerns Remote Desktop Protocol (RDP) connections because they lack the means for adjusting the display setting. There is no universal solution for it, but individual measures and tools can help.

Microsoft announced for the latest releases of Windows 10 that it would improve the display of older applications on high-resolution screens. However, there has been limited progress where remote desktop sessions are concerned. This is especially true if you want to access virtual machine (VM) consoles running on Hyper-V.

Tiny screen elements

In most cases the problem is not the maximum resolution but the scaling of fonts and icons. If you start an RDP session in a window on a 4K monitor, most of the screen elements of the remote desktop appear so tiny by default that they are hardly legible.

If the desktop of the remote session is running in the window, the screen elements are usually much smaller than on the client

If the desktop of the remote session is running in the window, the screen elements are usually much smaller than on the client

This also applies to Windows 8 and above, where remote sessions adopt the scaling of the local system. If you open them in a window, the screen elements will inevitably be smaller.

The only place where I got satisfactory results in my tests is when running VMs on Hyper-V under Windows 10 or Server 2016/2019 and accessing them from Hyper-V Manager on these newer OS versions. In addition, one of these operating systems must run in the VM, and you must first select the scaling you want in the session on the client.

VMs with Windows 8.1 and 10 in extended session mode under a current Hyper V; version 8.1 doesn't scale properly

VMs with Windows 8.1 and 10 in extended session mode under a current Hyper V; version 8.1 doesn't scale properly

The full-screen mode is also not a real alternative. If you are working on a 28-inch or larger monitor, you usually do not want one application to fill the entire screen just to scale icons and fonts. If the remote host runs on Windows 7 or Server 2008 R2, the screen elements remain small even in full-screen mode.

Resolution and scaling are unchangeable in RDP sessions

On the local computer you can fix this unfavorable display by increasing the scaling under Windows 10 in the Settings app under System > Display. Under Windows 7, you can find this option in the Control Panel under Appearance and Personalization > Display.

In a remote desktop session, however, you can change neither the resolution nor the scaling. Instead, you specify the former either in the options of the RDP client or in vmconnect using the dialog that appears when you start the enhanced session mode.

You can change neither the resolution nor the scaling in a remote session; you do not even see the current values

You can change neither the resolution nor the scaling in a remote session; you do not even see the current values

However, the RDP client's display options do not allow you to scale up the screen elements, and within the session, the above settings are disabled. If you access Windows 10 or Server 2019 remotely, you can at least enlarge the text in the Settings app under Display.

Just enlarging the text does not bring any significant improvement for desktops

Just enlarging the text does not bring any significant improvement for desktops

But the benefit of this measure is limited because the other screen elements do not enlarge as well, and the description of the icons does not fit into the unchanged grid. Of course you could also change the view to large icons, but the taskbar and many applications do not adjust in accordance with the new text size.

This is especially true for the MMC-based admin tools, which generally have difficulties dealing with high-resolution monitors. For example, each pane of the Event Viewer uses a different font, with some responding to the enlargement and others not.

Basic session mode

If you access Hyper-V VMs, the Hyper-V Manager launches an RDP session through vmconnect. This offers two session modes: basic and enhanced. The latter is only available if the remote host is running at least Windows 8.1 or Server 2012 R2.

In simple session mode, you can change the resolution and scaling of the remote desktop

In simple session mode, you can change the resolution and scaling of the remote desktop

Neither mode requires remote desktop access explicitly enabled in the guest OS because the connection takes place directly through the Hyper-V host. In the basic version, from the perspective of the guest OS, there is no RDP session; hence you can change the resolution and scaling as on a local system.

However, this solution comes with some disadvantages. On the one hand, the maximum resolution is limited to 1920 x 1080, so the window on a 4K monitor covers only about a quarter of the screen. On the other hand, comfort functions such as copying and pasting are only available to a limited extent.

Zoom within the RDP client

Another way to improve readability in RDP sessions is to consider new features in the current RDP clients. For example, since Windows 8.1, they support so-called "smart sizing," and Windows 10 added "dynamic resizing" to vmconnect's enhanced session mode.

Both of these functions only increase and reduce the resolution of the remote desktop dynamically. Hence, they do not have an effect on the scaling.

The zoom function of RDP 10 results in poor display quality

The zoom function of RDP 10 results in poor display quality

More promising here is the zoom function of the native RDP client in Windows 10. They designed it to solve the problem of showing desktop elements too small, especially when accessing older versions of Windows. In practice, however, even a 125% zoom may lead to such poor font quality that you cannot use it permanently.

mRemoteNG

Unlike the Remote Desktop Connection Manager proposed as a solution in some forums, the open-source tool mRemoteNG is able to decouple the scaling of the local and remote computer. Thus, this tool is a viable option to overcome the problem of too-small RDP sessions.

Display of a remote desktop under Windows 10 with mRemoteNG

Display of a remote desktop under Windows 10 with mRemoteNG

The tool also has the advantage that you can use it to organize all VM connections under one interface. At least in this respect, it can replace the Hyper-V Manager, though it is of course not able to control the VMs.

Remote Desktop app

In addition to the native RDP client that comes with Windows, Microsoft has been offering a Remote Desktop app for quite some time, obtainable from the Microsoft Store. Unlike the normal RDP client, it allows you to preset the scaling for the session.

Basically, the app is be able to define the scaling of the remote session

Basically, the app is be able to define the scaling of the remote session

By default, sessions start in full-screen mode, or alternatively you can set a specific resolution or leave this selection to the app. In practice, it behaved only in full-screen mode as expected; otherwise, it failed when resizing the window.

So the display did increase, but it left all areas outside the original size blank. As it turned out, this is a bug affecting all Store apps. As a workaround, you can disable the screen animation feature "full window drag."

Generally, the app looks promising due to the available configuration options. Its restrictions on redirecting client resources to the remote session are probably acceptable in most cases.

Customized RDP Client

An interesting solution is on poweruser.blog. It consists of creating a copy of mstsc.exe and the corresponding .mui files and configuring them via a registry entry so remote sessions display independently of the client scaling.

Create and configure a copy of mstsc.exe

Create and configure a copy of mstsc.exe

If the name of the copy is mstsc2.exe, the following .reg file will set the necessary key:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\mstsc2.exe"="~ DPIUNAWARE"

From now on, you can start connections to old versions of Windows that display screen elements too small via this modified client, while for all others the normal RDP client will be available.

Conclusion

Depending on the Windows versions on the client and on the remote host, there are various ways to scale the screen display. The best way to do this is to use the latest OS version everywhere and set the scaling you want in the client session.

Subscribe to 4sysops newsletter!

All other methods described here have some disadvantages or lead to unsatisfactory results. In terms of user comfort, client Hyper-V scores low compared to VMware Workstation or VirtualBox because of this problem.

7 Comments
  1. Samir 4 years ago

    Pretty interesting problem that I never knew existed with rdp.  I'm still using win7 thin clients so I haven't seen any scaling issues, but I always run full-screen anyways.

  2. Happy4kAdmin 3 years ago

    Brilliant. Many thanks!

    Shame, that mRemoteNG do its job better, than native mstsc tool. I try solve simmiliar issue for months. No way. 4k display unusable for work. And voila, mRemoteNG and yours post do it in 5 minutes :).

    Now I can administer my 2019 Failover Clusters on 150% scaled 4K display without problems.

  3. Jason P 2 years ago

    I absolutely LOVE that you don't just state "scaling problems exist with 4k monitors in certain RDP situations… use mRemoteNG and Bob's your uncle!" but you actually take the time to describe why the problem exists in the first place!

    Don't get me wrong… the fact you offer a solution is icing on the cake.  Too late to save my hair from stress-loss… but I digress 😉

    Jason

  4. balou 2 years ago

    I’ve been using this for a while. I’ve noticed though that the mstsc2 fix doesn’t give you the regular options of remote desktop to adjust local resources such as printer, sound, and keyboard. Is there an option to get the best of both world (dpi scaling and full control of keyboard/printer/sound)?

    • Andrea 2 years ago

      My suggestion is to save all your settings inside a regular yourname.rdp file (using the standard mstcs.exe) and then use the option Open with to open yourname.rdp with the modified mstcs2.exe.  

  5. Kyo 2 years ago

    Current version (1.77.1) of mRemoteNG has no support of multiple monitors. But there is another open-sourced solution, that has this feature – PRemoteM https://github.com/VShawn/PRemoteM

  6. Kyo 2 years ago

    Another one suggested solution is to edit .rdp file with notepad. Try changing “screen mode id:i” parameter to 2 and then open your session in fullscreen.

Leave a reply

Please enclose code in pre tags

Your email address will not be published.

*

© 4sysops 2006 - 2023

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account