105

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?

Josh
  • 443
William Gant
  • 1,051

13 Answers13

72

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.
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...

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.

Adrian H
  • 323
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.

JohnEye
  • 1,534
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.

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
Synetech
  • 69,547
NoNo
  • 203
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.

Mogget
  • 1,353
Alexander
  • 29
  • 2
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.

guest
  • 3,419
Taj
  • 11
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).
Kingkong Jnr
  • 131
  • 5
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.

MJH
  • 1,155
Arnaud
  • 1
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

ghosh'.
  • 1,325
  • 1
  • 8
  • 7
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
-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