How to remote desktop fullscreen RDP with just SOME of your multiple monitors
I saw this over on the Microsoft Remote Desktop Uservoice
Allow ability to choose subset of local monitors for RDP session (full screen)
Allow ability to select a subset of current monitors with full screen. Currently can choose all or 1 but cannot choose for instance 2 of 3 (full screen).
That seems useful, I wish it did that. I know about this checkbox that says "Use all my monitors" but I can't say just use 1 and 2 but not 3, right?
Turns out that you CAN span n monitors but it's just buried/internal and has no UI.
Save your RDP file, and open it in Notepad. Everyone's RDP file is different but yours may look like this:
full address:s:x.x.x.x:3389 prompt for credentials:i:1 administrative session:i:1 screen mode id:i:2 span monitors:i:1 use multimon:i:1 selectedmonitors:s:0,1
I can put on selectedmonitors:s:x,y
and then use the zero-based numbers to indicate my monitors. To get a list of monitors, I can run mstsc /l
to LIST out all my monitors on my machine. I can also use mstsc /multimon as a command line to use multiple monitors.
So I set my selectedmonitors:s:0,1 to use my left and middle monitor and skip my right one.
In this picture, I'm RDP'ed into a remote Windows 10 machine in Azure on Monitors 1 and 2 while Monitor 3 is my local one.
Sweet.
Sponsor: Protect your apps from reverse engineering and tampering with PreEmptive, makers of Dotfuscator. Dotfuscator has been in-the-box with Microsoft Visual Studio since 2003. Mention HANSELMAN for savings on a professional license!
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
It's also impressive how much more demands and requests there about same feature rose over past 2 weeks (me including). Remote work is doing its' job.. ;)
I've been wanting this for years, and I opened a suggestion for just that on the Windows Insiders page years ago, and it got a few hundred upvotes.
At first I couldn't get it to work as I only had added the "selectedmonitors" line to an .RDP file I already have. It's only after I've added the half-dozen other lines you mentioned that it started working for me.
Worth a mention: mstsc /l doesn't show the same monitor indexes as the applet that comes up when you right-click on the desktop and select Display Settings (even if you subtract 1 from everything to make the indexes 0-based).
Also worth a mention: This does *NOT* work for non-adjacent monitors. In my case, mstsc /l shows indexes 0, 3 and 4 (why they're not contiguous, I don't know but it doesn't matter; they're physically laid out in that order, left to right). 0 and 4 don't work together, but 0 and 3 (or 3 and 4) do.
Command 'mstsc /l' is not recognized and selectedmonitors parameter doesn't work on my work laptop (Win 8.1). Is there any alternative? Thanks in advance.
The sentence toward the bottom says "So I set my selectedmonitors:0,1 to use my left and middle monitor and skip my right one." but should be "So I set my selectedmonitors:s:0,1 to use my left and middle monitor and skip my right one." That extra "s:" is required.
Now if only it were as easy to mix & match remoted MacOS machines and PCs and switch around the number of monitors each gets...
If I have two screens, and I want to use them both in my RDP session, I can no longer see my host taskbar.
So to interact with anything on my host, I have to restore down the RDP session, at which point I can't see most of the screen real estate in the remote session.
A common use case for that is playing music, for example. When I'm working on something remotely, I'm playing audio locally, and to pause or adjust volume or change tracks the host needs focus.
Conferencing apps are in the same boat.
This is disruptive enough to my workflow that Hyper-V's reliance on RDP is the reason I don't use it for virtualization, and in fact I have a bare-bones VM set up in VirtualBox (which is happy to have a resizable window per each virtual monitor, and set the guest screen dimensions to exactly whatever the windows get resized to on the host) just so I can use it to RDP to other boxes and have the screen experience I want. Which is a ridiculous and inefficient workaround 🙄
RDP is capable of showing a session in a window and not having to use the whole screen, and mouse capture across the edge of that window works exactly as one would expect.
It's also capable of setting an arbitrary screen resolution for that window on the guest if you edit the .rdp file.
It's also capable of using multiple monitors, and as you now have demonstrated, is capable of not using ALL the multiple monitors available...
So why can't we just have two windows. And why can't they resize accordingly when we maximize them.
Because of all of those pieces, it feels to me like the protocol might already be fully capable of this but the client app is not?
Adding in as well that I discovered you can configure your primary monitor by changing the order the monitors are listed:
<b>selectedmonitors:s:0,1,2</b>
To something like:
<b>selectedmonitors:s:2,0</b>
This has been useful for me dealing with different sized monitors and is simpler than the most common instructions for this I found online that involve changing the <b>winposstr:s:</b> values.
Unexpectedly this becomes a requirement instead of a nice to have on Windows.
Also: "Oldie but goodie" ;)
will always bookmark your blog and definitely will come back later
in life. I want to encourage you to continue your great posts, have
a nice holiday weekend! https://anunturi-parbrize.ro/index.php?cauta=luneta+subaru
post. They are really convincing and will definitely work.
Nonetheless, the posts are very short for newbies.
Could you please extend them a bit from next time?
Thanks for the post. https://anunturi-parbrize.ro/luneta-fiat-22.html
I have users with 3 displays and they want 1 for Mac, with 2 and 3 for remote PC.
It's been driving me crazy!
I suspect that's because we're still running build 1803. Is there a way to update mstsc independently of the build I'm stuck on?
Comments are closed.