76

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?

12 Answers 12

21

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

| improve this answer | |
  • 14
    Interesting solution, but an unnecessary resource suck. – Nick Jan 14 '16 at 20:57
  • 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 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.

| improve this answer | |
  • This is my exact use case as well, and so far this is the best solution for me. – Garrett Jun 2 '16 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 '16 at 19:57
  • 5
    AutoHotKey: ^SPACE:: Winset, Alwaysontop, , A – Sam Mackrill Jul 14 '17 at 9:16
  • This solution in tandem with the comments by Garret and Sam worked perfectly for me. Thanks. – Martin Oct 19 '17 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 '19 at 9:50
13

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.
| improve this answer | |
  • 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 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) – FocusedWanderer Apr 22 at 20:15
  • Works perfectly for me, thanks! MSTSC Version 10.0.18362 (Remote Desktop Protocol 10.7 supported) (running on OS 10.0.18363.778). Interestingly, my monitors are currently listed as 0, 3, 4, and 5 (not sure what happened to 1 and 2). Haven't reboot yet so not sure if they'll get re-ordered per mentioned caveat 2. – Sepster May 4 at 0:51
  • 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. – madamission May 10 at 20:52
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.

| improve this answer | |
  • 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 '17 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 '17 at 11:29
3

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
| improve this answer | |
3

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.

| improve this answer | |
  • I like this ok - seems like the only decent workaround mentioned here. Thanks. – SamAndrew81 May 10 '19 at 0:05
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.

| improve this answer | |
  • 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. – BrainSlugs83 Nov 4 '15 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.

| improve this answer | |
  • 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. – shadowz1337 Mar 9 at 3:38
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
| improve this answer | |
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.

| improve this answer | |
  • 1
    Does not work. Window will not resize onto the second screen. It's stuck to just the first one. – Brian Knoblauch May 4 '18 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

| improve this answer | |
-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

| improve this answer | |
  • 2
    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 '16 at 22:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.