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!
Great post. These are features I have been looking for. I finally tested the Windows Store Remote Desktop app against a Windows 8.1 computer. Everything resizes as stated and scaling seems to carry through although it doesn't seem to override a Windows 8.1 desktop set to a fixed scaling percentage.
I find the Windows Store Remote Desktop Connection app to be a great replacement for the old RDCMan. It allows me to snap the remote window to whatever size I want on my screen and it never covers up my desktop, it just shares space with it. Plus, there is no chrome taking up RD space.
Pat, We're having the same problem, when using the same computer (Lenovo Yoga 2). When logging in the text and icons are small to the point of being unreadable. Very disappointing since we bought the computer solely to be used with Remote Desktop Connection.
We've tried adjusting the resolution on the computer as well as through RDC, but it made no difference. Any help would be greatly appreciated!
This has been a problem for me for 5 years. Nobody at MS bothered to fix this although there used to be a fix (llemarie.wordpress.com/.../tip-scaling-your-remote-desktop-session) which no longer seems to works for me in Windows 8 remoting to Windows 7, wheras the smart scaling:1 hack did work on Windows 7 -> Windows 7.
So actually this post should be title 'What we broke when we tried to fix something we should have fixed in 2007'
When redmond finally goes to fix it (because David wanted to use his high res laptop at home LOL) they only bother fixing it for 1 scenario and leave the others broken. Can you please tell me what is preventing Windows 7 scaling its display based on windows 8 RDP scale protocol information? Or even just scaling once the image is rendered on the client.
Very poor David, but at least you can work from home on your fancy high res laptop.
For all those struggling with Windows 7 RD and tiny fonts on their laptop, try downloading RDMan for some reason it is able to scale the display where mstsc cannot. www.microsoft.com/.../details.aspx
The fact that MS fail to fix this basic issue in their codebase and instead offer it in as a new feature of Windows 8 and Windows Server 2012 is at best lame.
Thanks for this information. What happens though when (as in my situation) I have windows server 2003 and windows 8,1 using my surface 2 pro and remote desktop. I can barely see files etc using the remote desktop application on my surface and ld love to increase the font size
This is terrible. I work with a Samsung ATIV at 1600x1048, at which my standard icons and workspace looks fine. In Remote desktop everything is miniscule, and I now have no option to override it. Please give an option to override so that things you didn't think would happen can be sorted out by users.
I also really need the ability to choose which monitors I want RDP to run in. I have a triple monitor setup (5760x1080) and I'd like to run RDP on 2 of those monitors (full screen) while leaving the third monitor for apps running locally. When can we expect this? Does anyone know of another app that can accomplish this? Thanks!
Windows 8.1 Remote Desktop apparently has a new bug which previous versions did not.
If you restart the remote computer and log in for first time with Remote Desktop, the remote computer apparently takes its font size settings from the local computer. This puts the settings on the remote computer out of whack when you are physically at that computer. You have to reboot the computer for the font sizes to return to normal.
Everything looks normal as far as Remote Desktop is concerned. So I applied updates to my boss's computer remotely, rebooted and logged in again with RD, and everything looked fine. But then he complained I broke his computer because his font sizes were too small.
This would be really cool if it worked!
I'm using RDP 8.1 from Windows 8.1 to Windows 8.1. My task bar in the RDP session is GIANT like it thinks I am blind. However, whe nI start SQL Management Studio the fonts in that app are so tiny I can't read them! These are not how my local machine is configured. This is a fantastic feature considering I just had to spend 2 hours reinstalling SQL Server because my 8.1 "upgrade" shutdown and jacked up my SQL Server so bad it wouldn't restart. Yay, can't wait for 8.2!
I really wish it would change the resolution when I snap to the sides in Windows 8.1! Smart scaling works well enough for this task, but since you have already put the code in to change the resolution, why not take it one step further (or at least give manual access to adjust the resolution afterwards). The Win8-Mode app tries, but it will not reduce the resolution below 1024x1080 on at 1920x1080 display. The resolution of the remote host will increase above 1024x1080 as I re-size the snapped app LARGER (1048x1080, 1420x1080, etc), but not below 1024x1080.
So any luck on remoting from surface2 to a win7 or 2008 r2 box? Or unusable font option is the only way to go? It seems RDP for Mac does a great job of scaling.
Scenario 4: Desktop sessions on high DPI devices
FALSE : The scaling level is not reflected except if a user made the initial logon process thru remote desktop ! so to get a comfortable dpi scaling users must logoff and logon again remotely to get a working resolution/dpi scaling ! PLEASE FIX IT !
David Bélanger: Je ne peux pas croire que les versions IOS/Android de remote desktop sont plus adapté au remote desktop que votre propre plate-forme !!
Please make this change to windows 7 also. This would make my work laptop so much better!
Please, there is no need to go on about improvements of any kind if we can't see the fonts.
I was forced to buy Windows 8 as XP is no longer supported but now I can't use RDC because I CANNOT SEE THE FONTS!!!
We need this problem fixed urgently!!!
I too have the "font is too small" problem. I have a laptop with 2560 x 1440. I have to set all items to 150% on the laptop. If I RDP to a windows 8.1 machine, text is readable. To Server 2008 or windows 7, text is too tiny to read.