101

I've recently upgraded my home workstation and now have four monitors on it. I work remotely most of the time and need some way to get remote desktop onto only two of those four monitors.

The top two monitors (monitors 4 & 3, going from left to right) each have a maximum resolution of 1680x1050. The bottom two monitors (1 & 2) each have a maximum resolution of 1920x1080.

In my .rpd file for this remote desktop connection, I have the following keys (I've clipped it for brevity) screen mode id:i:2 use multimon:i:1 desktopwidth:i:1920 desktopheight:i:2130 session bpp:i:32 winposstr:s:0,1,3,75,1655,675

Previously I was able to get away with just doing "mstsc /span" when I had only two monitors, but that isn't working now (and isn't desirable). I'd like for the new setup to only use two of my monitors. I don't really care which two. How do I alter the .rdp file to accomplish this?

2

13 Answers 13

64

Microsoft looks to have at least partially implemented this feature in the latest updates to Windows 10 MSTSC.exe using a .rdp connection file for a given server.

The key settings are

use multimon:i:1
selectedmonitors:s:0,1

As of now, selectedmonitors must be set from this file, but use multimon can also be set from command line or GUI.

To get a list of target monitors, you can use

mstsc.exe /l

to list current monitorIDs for use in your RDP file, results looking similar to: enter image description here

Caveats:

  1. You must select monitors that share a screen edge.
  2. Some users report that monitorIDs change between reboots.
7
  • 3
    I tried this, it seemed promising, but when I set "selectedmonitors" to any combination of my 3 monitors, it acts just like I have multimon turned off (1 monitor only).
    – k3davis
    Apr 20, 2020 at 0:13
  • 1
    maybe version related? mine currently shows as 10.0.18362 (Remote Desktop Protocol 10.7 supported) - (find by running mstsc.exe & clicking top left icon in window - select About) Apr 22, 2020 at 20:15
  • 1
    Wow I remember trying all sorts of things years ago before they added support for this, and could never get what I want. This worked the first time I tried the new setting. Finally. May 10, 2020 at 20:52
  • 2
    For me, the trick was "share a screen edge". I had a minor misalignment in the multi-display configuration that was blocking me from using two monitors out of three.
    – Fabricio
    Nov 5, 2020 at 7:10
  • 1
    Another detail: The monitor with top-left 0,0 is your "Primary Display" on the client. which doesn't necessarily match the numbers under "Identify" in Display Settings. If you cover your client's primary display, you may miss notifications from the client.
    – Leo
    Jul 29, 2021 at 2:40
23

I use RDP full screened on 2 of my 3 monitors, my solution is actually really simple:

  1. Setup a Windows 7 or 8 VM (I use VirtualBox and Windows 7 Ultimate)
  2. Set the VM to use 2 of your 3 monitors and full screen
  3. Setup your VPN and RDP connections on the VM (And have the RDP connection use all of your monitors (2 virtual monitors)).

That's it, kind of over the top, but it takes very little time to set up a basic Windows VM and is easy to start/suspend.

I use my 2 monitors do do dedicated work, and my third for entertainment/music/netflix/etc...

2
  • 19
    Interesting solution, but an unnecessary resource suck.
    – Nick
    Jan 14, 2016 at 20:57
  • 1
    The major draw back of going from vmware to windows' hyper v... all or nothing with rdp - and you cant run vmware because you are now using hyper v... Argg
    – ccook
    Feb 26, 2020 at 15:10
17

I too have been looking for a solution to this problem which can't be resolved by the windows RDP client.

I work mainly remotely via RDP in full screen mode with all my 4 monitors but would like a few programs to run locally.

Usually these programs would play music or video which is not suitable for the remote machine and I would keep them to one monitor.

So a simple hack for me is to force those programs to be "On Top" all of the time.

I am using Dexpot and just right click the program window and select "Always On Top".

Now even in full screen RDP mode I can view my program window.

6
  • This is my exact use case as well, and so far this is the best solution for me.
    – Garrett
    Jun 2, 2016 at 19:48
  • Upon some further research, Always On Top is a program written in one line of AutoHotKey script - I found the author's blog and downloaded AHK myself which I'm a little more comfortable with than some random exe.
    – Garrett
    Jun 2, 2016 at 19:57
  • 5
    AutoHotKey: ^SPACE:: Winset, Alwaysontop, , A Jul 14, 2017 at 9:16
  • This solution in tandem with the comments by Garret and Sam worked perfectly for me. Thanks.
    – Martin
    Oct 19, 2017 at 10:26
  • 1
    This PowerShell script works well for keeping specific windows (including RDP/VM connections) on top. I'm using this to span a Virtual Machine to all monitors and then have another Virtual Machine "on top" using a single monitor. This provides me with a 70/30 split on 3 monitors. github.com/bkfarnsworth/Always-On-Top-PS-Script
    – twconnell
    Jun 18, 2019 at 9:50
9

This is unfortunately not possible. Believe me, I tried really really hard. There are articles saying that you can limit the number of monitors, but that does not work. Microsoft obviously didn't test the functionality at all and they can't be bothered to fix it.

Until they fix the bug, it is either one monitor or all of them.

I will try some alternatives and see whether I can come up with some third party solution that actually works, other than switching to Linux/VNC, that is.

2
  • Are you sure "limit the number of monitors" by gpo wont work? where did you apply the gpo to? your local pc or target pc?
    – Root Loop
    Jun 6, 2017 at 0:11
  • @RootLoop: I actually tried both, but the behavior was still the same. This was a couple years ago, I think the systems I worked with at the time were Windows 7 and 8. Do you have a different experience? I would be happy to edit the answer if the behavior has changed.
    – JohnEye
    Jun 6, 2017 at 11:29
6

For me mRemoteNG (https://mremoteng.org) is the solution. I stretch the panel on two monitors and set the RDP connection resolution to 'fit to panel'. I have two 1920x1200 monitors covered by the mRemoteNG and the 3rd monitor (the surface pro 3 main screen) with local content.

1
  • I like this ok - seems like the only decent workaround mentioned here. Thanks. May 10, 2019 at 0:05
4

Open the Run dialog (Win+R) and type desk.cpl. Then find the number of the screen you would like to edit.

Change the 1 in use multimon:i:1 to the screen number desired. Also, change the resolution:

desktopwidth:i:1920
desktopheight:i:2130

to

desktopwidth:i:1680
desktopheight:i:1050
2
  • 4
    Changing the number in 'multimon:i:1' doesn't help. See technet.microsoft.com/cs-cz/library/ff393695%28v=ws.10%29.aspx
    – JohnEye
    Sep 16, 2013 at 17:03
  • you may delete the rows 'desktopwidth', 'desktopheight','winposstr' at all, and these settings prevent the spanning if they are set too narrow. At least this helped me in my case
    – dba
    Mar 31, 2021 at 9:14
2

Well, I think it is a design flaw. They simply didn’t design the ability to use only some of the available monitors. There is a possibility to circumvent this though, by limiting the number of allowable monitors per session in the RDP-Tcp properties of the remote desktop services host. See this article.

Unfortunately, this is also an “all or nothing” option. It limits the number of monitors for all users of the RDS host. Then you must be able to control which monitors to use through the “desktopwidth” and “desktopheight” parameters of the rdp file. What really is needed, though, is to be able to define how many monitors you are willing to use in the RDP file on the client but currently this is not possible.

1
  • 1
    This doesn't actually work. Setting it to 2 on the host, and then connecting with a three monitor machine (with use all monitors turned on) forces it to use just one monitor. Nov 4, 2015 at 21:12
1

I found a workaround using

  1. RDP settings
  2. DisplayFusion on your desktop
  3. Splitview on your remote desktop

I have four monitors including the laptop screen and wanted to use just two of the four for rdp window.

  1. Used DisplayFusion to create a custom function (under settings >> Add custom Fuction
  2. Function Action = Manage Window
    Window Screen action = Move window to Window # and size proportionally
    Change Window width to Specified pixel value = 2560 (since my monitor was 1280X1024)
    Change Window height to Specified pixel value = 1024
    Added a shortcut

Now in RDP settings (edit as notepad add smart sizing:i:1 at the bottom)

Now once you open the window (use the shortcut to maximize or stretch it across two screens)
In your remote desktop use Splitview or other screen splitting apps to split the desktop into two.

It is not pretty, but a workaround.

1
  • This is the only solution that works for me. BTW, you can use DisplayFusion on the remote server and on the desktop, right click and select monitor configuration. Can create splits in there as well without using Splitview. Mar 9, 2020 at 3:38
1

This works as of Sept 2020. I am RDP'ing in 2/3 monitors.

  1. Determine your monitor ID - run->desk.cpl - On mine it was, From Left to Right it was 1,2,3.
  2. Use this info to create your own rdp config files. Read the trick below in Step 3, before clicking on that link. https://www.hanselman.com/blog/HowToRemoteDesktopFullscreenRDPWithJustSOMEOfYourMultipleMonitors.aspx
  3. Use selectedmonitors:s:1,2 to enable the left and middle monitors. The trick here is to not use the -1 index, like before. (0,1 did not work for me).
0

I've had this problem for a while and I have found a "hack" that solves it for me. Change the size properties in the .rdp file to a value that is nearly that of the two monitors you'd like to use. I Have three 1200*1920 monitors in portrait mode an theese values work for me:

use multimon:i:0 desktopwidth:i:2390 desktopheight:i:1840

This creates a window that i can position on two screens (with space set aside for the taskbar and the window borders. This leaves me with two minor issues:

  1. I've not found a way to start the RDP window full size (I must resize it after opening the connection)
  2. The host does not relaize that there are two screens so maximize will fill both screens and dialogs open across the screen border
0

I have found a work around that is clean enough for me:

  • Deselect option to use all screens
  • Edit in notepad and

    1. set the resolution width to be 2x your screen resolution minus few pixels (-30 works for me)
    2. set the resolution heights to be 1x your screen resolution minus about 50 pixels

Save and then go back into settings, de select the option to use all screens again and pick above your defined resolution.

Launch and extend manually the window to cover the 2 desired screens.

1
  • 1
    Does not work. Window will not resize onto the second screen. It's stuck to just the first one. May 4, 2018 at 17:10
0

For Mac, this is very straight forward.

Open Mission Control: Swipe up with three or four fingers on your Multi-Touch trackpad or Magic Trackpad.

Mission Control shows the Spaces bar at the top of the screen. You can select monitors for Windows RDP from the Spaces bar.

enter image description here

1
  • I have been trying to figure this out, you use the MC's Spaces to somehow assign RemoteDisplay client to use 2+ monitors?
    – lundman
    Jun 5, 2023 at 6:25
-1

A work around is to go into display settings and disable 2 monitors. Then connect using RDP to the remote host with the "use all my monitors for remote session" option enabled, this will connect you using only 2 monitors, and then come back to settings and re enable the rest of the monitors. Now your resolution on the remote session will be set to 2 monitors but you will have to stretch the window on the 4 monitor host to see both monitors

1
  • 3
    This does NOT work. Enabling the rest of the monitors after RDP is connected causes the RDP sessions to be "restored" and when they are maximized, it takes up all the monitors including the newly enabled/connected monitors
    – thilina R
    Mar 1, 2016 at 22:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .