Hi, I’m David Bélanger, a program manager on the Remote Desktop team working on the different Windows Remote Desktop clients.
In Windows 8.1 and Windows Server 2012 R2 we made some changes to Remote Desktop Connection (mstsc.exe) that greatly improve the experience for a few core scenarios that you might be using every day. In this blog, I discuss the improvements made to dynamically update the resolution and scaling level from the local system to the remote session and how this impacts your remote desktop experience.
Let’s start with the actual changes that we made in Windows 8.1 that will improve your remoting experience.
One of the changes we’ve made as part of RDP 8.1 is the addition of a new message that can be sent from the client to the server to dynamically update the resolution inside the remote session to match what is available on the client without the need to do a complete reconnect of the session. Previously, we only set the remote resolution during the initial connection. With this change, the resolution is set at connect time and can be updated when the client-side resolution changes while the app is in full screen mode, or when the app transitions from windowed mode to full screen. The resolution change is quick enough to be practically the same as a local change.
With the proliferation of High DPI devices (high resolution displays in a small screen size) such as the Microsoft Surface Pro 2 device, it is common for folks like me who need a little extra visual help to increase the size of the items on the screen by changing the scaling level in the Display options.
Figure 1: Changing the scaling level in the Display options in Control Panel
The second change I wanted to point out is that Remote Desktop Connection now also updates the scaling level in the remote session to match the client-side configuration. This includes the per-monitor scaling level, which is new in Windows 8.1 and makes it a lot easier to use monitors of different sizes such as a 10-inch Surface device connected to a 24-inch monitor.
In contrast to changing the display resolution, changing the system scaling level requires a logoff/logon so that non-dynamic DPI aware applications can load the appropriate resources for the new scaling level. Between the time you change the scaling level and log off your session, you will still notice a difference as Windows will dynamically scale applications to the new scaling level, but the result might vary slightly. For more details about this, see Windows 8.1 DPI Scaling Enhancements.
Similar to the resolution, the scaling level is sent to the remote system at connection time, when the app is entering full screen mode or when a change happens while it’s in full screen. When connecting to a new session, the scaling level is applied and applications in the session will load the appropriate resources. If connecting to an existing session that had a different scaling level than the client-side system or when the scaling level changes dynamically, the scaling level will be applied but will be handled by Windows as mentioned previously. Changing the scaling factor inside the remote session is disabled; you must change it on the local PC and it will automatically be updated in the session.
We’ve made a few changes around how Remote Desktop Connection handles full screen that are worth calling out.
To leverage the dynamic update features for resolution and scaling level, you must start the desktop session with a Display configuration set to Full Screen on the Display tab. Doing so tells Remote Desktop Connection to manage the resolution and scaling level for you and keep it in sync with changes happening locally.
Figure 2: Selecting the Display Configuration in Remote Desktop Connection
The Display tab also allows you to connect using a specific static resolution (by specifying a different resolution). If you connect with a specific resolution, you will not need to worry about the resolution changing during the session. This can be useful if you have applications or hosts that require a lower resolution.
Note: The dynamic update features are always enabled for RemoteApp programs.
We’ve also made it easier to go from having the remote session in windowed mode to full screen. First, the Ctrl+Alt+Break keyboard shortcut still allows you to switch between window and full screen mode. Next, you can simply maximize the window and it will go to full screen mode if the local and remote resolutions already match. Note that if the connection is started with a Display configuration of Full screen, the remote resolution is updated when maximizing and the app will automatically go into full screen mode on maximize. Lastly, for a more explicit action, there is a new Full screen menu item available in the system menu.
Figure 3: Full screen option in the system menu for Remote Desktop Connection
We’ve made a small change in the way we handle multi-monitor since we now support dynamically changing the resolution including adding and removing monitors. To handle this, the Use all my monitors for the remote session check box on the Display tab is always enabled (even if you only have a single monitor attached to your local PC), so you can choose whether you prefer single or multi-monitor mode at any point.
Figure 4: Use all my monitors for the remote session option in Remote Desktop Connection
This allows you to start a session in multi-monitor mode with only one monitor, attach a new monitor at a later time, and start using it in the session right away without requiring a disconnect and reconnect. You can still start a session in single monitor mode whether you have a single or multiple monitors attached if you only want the session to be using one monitor at a time.
The above changes are great, but what do they really mean for you during your day-to-day remote desktop usage? In this section, I cover 5 improved scenarios resulting from the features above.
In this scenario, you are using a system that has multiple monitors and at least two of them have a different resolution. You’ve also decided that you wanted the remote desktop to use only one monitor so you can continue using local applications or a different remote desktop on the second monitor. You did this by leaving the Use all my monitors for the remote session check box unchecked when connecting.
If after some time you decide to move the remote session to a new monitor with a different resolution, it’s as simple as dragging the session to the other monitor and going back to full screen mode. This will update the resolution and everything appears as expected for that monitor. No more letterboxing or dealing with scrollbars.
This scenario is often very common when using a laptop. For example, you come back to your office from a meeting and dock your laptop into a docking station that adds one or two external monitors. Or you arrive at a conference room already logged on to your laptop and connect it to the projector to share some content with the room. At the end of the meeting you detach from the projector to go back to your office.
Contrary to scenario 1 above, in this case you have started the remote session by checking the Use all my monitors for the remote session check box. This option now enables Remote Desktop Connection to dynamically add or remove monitors during the session.
So, you have an active remote session and add a new monitor. The first thing that happens is the session will go from full screen to windowed mode as Windows adjusts to the additional monitor (if the session was currently in full screen mode). Next, all you have to do is go back to full screen and a new virtual monitor will be added in the remote session and the session will be displayed in full screen mode across all the monitors. Follow a similar process to remove a monitor. No more need to disconnect and reconnect the session to leverage the new monitor.
RemoteApp now always uses all of your monitors (up to 16). If you are connected to a RemoteApp when you add the new monitor, you will immediately be able to move the app to the new monitor since the remote resolution is automatically updated to reflect the bigger desktop. Removing a monitor results in the RemoteApp program being moved back to one of the remaining monitors, similar to local applications. No more scenarios where RemoteApp programs are stuck on the first monitor or on a removed monitor.
With so many new form factors for devices including tablets, this is now a very common scenario. The dynamic resolution update now allows Remote Desktop Connection to handle rotations almost as fast as the local system does. If you are using a desktop session in full screen mode and rotate your device, the session will remain in full screen mode and the remote resolution will be updated accordingly so that everything appears the same as you’d expect locally.
If you have a RemoteApp program running in the maximized state and you rotate the device, the app remains maximized in the new orientation as the resolution is updated both locally and in the session. This is the same as local applications.
In both cases, no more waiting for the session to automatically do a full reconnect for each rotation, which can take a few seconds based on your network connection.
When connecting to a remote system, the scaling level will now be reflected in the remote session and applications in the session will appear the same as they do locally and be easier to read. No more squinting at the content inside the session because it appears smaller when connecting from a device with a higher scaling level.
On a system with a higher scaling factor, RemoteApp programs running side by side with a local application will now appear to be the same size and be just as easy to read. No more RemoteApp programs appearing smaller than local applications and being harder to read.
Windows 8.1 and Windows Server 2012 R2 provide improved remote desktop and RemoteApp experiences by dynamically updating the remote resolution and remote scale factor based on changes made locally (on the client PC), without the need to reconnect to the session. These features are enabled by default if both the client and the host are running Windows 8.1 or Windows Server 2012 R2. Dynamically updating the remote resolution is also available on Windows 7 clients connecting to Windows 8.1 or Windows Server 2012 R2 hosts with the Remote Desktop Protocol 8.1 Update for Windows 7 SP1 installed on the client.
Note: Questions and comments are welcome. However, please DO NOT post a request for troubleshooting by using the comment tool at the end of this post. Instead, post a new thread in the RDS & TS forum. Thank you!
Aggrr, I have a surface pro 3 waiting for me to pick up tomorrow. But I needed it as an RDP device. Thinking I'm not going to get it, if it's unusable. I'm guessing no update, not for a long time.
Is this update reflected in the MS-RDSOD documentation? Where can we get implementation details about this?
For most users this is a great feature. For those of us who manage multiple systems from a high-resolution system it is not desirable to have everything at full screen. We end up having to scroll all over. If we are not using rdp to connect, is there a way to disable this dynamic resolution update mode? Say thru gpo or the registry?
Thank you -
Can anyone confirm what is the maximum screen resolution for a single session with RDP 8.1? I recall it being 4096x2048 for previous versions of RDP. Has it been increased with this release? Thanks!
Gee, how difficult is it to just let me scale arbitrarily in the client? I'm not after some aesthetic experience; I just want it to be somewhat usable when managing 2008 R2 servers! A blurry zoom would have been enough. But nope, that remains impossible, and the time that could have been spent doing that, was spent making it neat for the latest and greatest server only.
For those who want to remote desktop to a machine and not have to live with the tiny text you can use the Remote Desktop Manager - see this post which explains all
I too purchased a new Surface 3 and faced a tiny font in the remote desktop to win 7 hosts.
For those who recommend Remote Desktop Manager, please read the requirements in its page:
MS don't support RDCM in win 8 anymore.
Iam using Windows 8.1 on a desktop and iam connecting via RDP to a remote session. The taskbar in the remote session is much bigger than on the host from which iam connecting. Both have the same resolution (1920x1080) and settings. If you are customizing the text sizes for elements, titles, menues etc., eg the taskbar menue text size will not be affected and stays very huge.
Is there a version requirment as there was for the multiple-monitors support in Windows 7's Remote Desktop was available only on Windows 7 Ultimate and Windows 7 Enterprise
multiple-monitors support in Windows 7's Remote Desktop was available only on Windows 7 Ultimate and Windows 7 Enterprise so I was wondering if there is a similar restriction for Windows 8.1
Windows 8 or 8.1 RDP to Windows 7 system (client) has a problem with the view being too small. Microsoft has a Hotfix for the Windows 7 client that allows you to resize the view. It works and it was tested with Surface Pro 3 and Windows 8.1
I hope this helps.
What you describe is true for the RDP client on a Surface but it isn't true for the RDP client for IOS and Android. It would be nice if those RDP clients worked the same as the RDP client on the Surface.
It is interesting how a critical application like RDP has so little "user experience" attention from Microsoft on a key platform like SP3 with w8.1. The lack of scaling up of the remote session so the fonts are readable makes w8.1 RDP unusable. I thought Microsoft went into hardware business to get the user experience first hand - according to Steve Balmer (Rose interview). I give Microsoft F mark for RDP client.
Many of us are using Microsoft technology such as the Surface Pro 3 but like it or not we still have Windows 7 and Windows Server 2008 systems that we need to RDP into.
We really need to be able to scale when using remote desktop from a high resolution screen to a Win7/Server 2008 system. It can be as simple a workaround as having a command-line switch that tells Windows it isn't DPI aware so that Windows 8.1 can do the scaling.
Some of us are using workarounds. I'm using mRemoteNG which allows Win8.1 to scale. Really though this needs to be something the native client can do.
this does NOT allow you to change the resolution of the desktop client, it only changes the size of the screen you see on your desktop. The resolution is still the same even if you go full screen the desktop itself stays tiny and is surrounded by black borders.
we need a way to be able to change the resolution, full screen, inside the remote desktop client...its unbelievable that MS failed to see that leaving out that feature would be a problem....and still is 4 years later. Essentially we have had to go back to VPN access for 3 clients because of this screw up...totally unacceptable.