60

How do I open a remote desktop session on a secondary monitor (in full-screen)? It always seems to want to open on the primary one and I cannot find a switch which lets me choose.

Is there a known solution or workaround for this?

  • 4 years on and this is still a pain. Just a comment and not even proper full screen either (you get a tab bar at the top) but I started using RD Tabs instead of the built in RDP client and problem solved for me. Fab piece of free software if you spend most of your time in RDP sessions to multiple servers, etc. – Kez Mar 8 '14 at 12:24

19 Answers 19

62

I don't know if this helps, but in my experience, Windows tends to remember the monitor on which the app is maximized. Try opening RD on the second monitor, maximize it, close it, and see if it opens on the second monitor when you open it again.

| improve this answer | | | | |
  • 3
    Opened remote desktop, restored it, moved it to secondary monitor, closed it, reopened with the /f switch to make it open fullscreen on the secondary monitor. Works a treat, thanks. – Kez Jan 26 '10 at 10:15
  • 27
    You can also use Ctrl+Alt+Break to toggle full screen mode, once you have it on the secondary monitor according to @kez' comment above. – ehdr Oct 12 '12 at 12:09
  • 3
    Works when I run "mstsc /f" but not if I later connect to the same server via double-clicking on an *.rdp file. For some reason whenever I double-click on an *.rdp file it opens in the secondary monitor, regardless of whether when I was previously connected I'd moved the window and maximized it on my primary monitor before closing the session. – SimonTewsi Nov 19 '13 at 22:49
  • 3
    @SimonTewsi Inside the RDP file is a line called winposstr which you may be able to tweak. See Shane's answer below. – user3463 Nov 20 '13 at 18:00
  • 3
    this works for me, except that I also have to slide the resolution bar to "Full Screen" (away from full screen and back if it's already there). Sliding the resolution bar seems to trigger it to change the "full screen" monitor from the one it was previously set to to the one that it is opening on. Without this, while it does open in the new position, it still full screens to the old monitor. – Dave Cousineau Mar 6 '14 at 14:35
27

Here's complete guide from Microsoft on how to do it: http://social.technet.microsoft.com/wiki/contents/articles/665.how-to-set-the-monitor-for-a-remote-desktop-session-in-a-multi-monitor-setup.aspx

Try this:

winposstr:s:0,1,2142,150,2942,750

It worked for me

  • 9
    Despite the downvotes, @Ivan is right. In Windows 8, none of the other answers worked. Shane Vincent's answer was very close, but not quite there. It turns out, in Windows 8, the winposstr property works like this: "winposstr:s:0,1,xpos,ypos,xpos+width,ypos+height" The last four numbers are all absolute numbers, not "left, top, width, height" as you might expect. – JMD Jan 9 '13 at 23:18
  • This worked great for me using it to move it to my secondary, left monitor. Doing so required me to use negative values. I can also confirm that Windows 8 does require absolute numbers for the winposstr field. – Joshua Apr 17 '13 at 14:40
  • 1
    I still think something is missing in these explanations of the winposstr format. My primary monitor is 1680x1050 and my secondary is 1920x1200. Following oxyscythe's answer, below, I found the winposstr in the new RDP file was "winposstr:s:0,3,2160,0,2960,600". How do we get from xpos/xpos+width to 2160/2960 and from ypos/ypos+height to 0/600, given the dimensions of the two monitors? – SimonTewsi Apr 2 '14 at 21:38
  • Finally this problem is solved! Thank you very much! – Dan May 4 '15 at 12:41
  • This is the correct answer. Might want to specify that you should save a .rdp file to add these settings. The rdp file can be pinned in Windows 8+. – Jason Feb 6 '18 at 17:16
12

Open the RDP file in a text editor, find the

winposstr:s:0,1,xpos,ypos,width,height

Change the xpos and ypos in the RDP file and save it.

You can then have the window open consistently where you want it.

  • I'm playing with this on Windows 8 and the only time it obeys those numbers is when the window is a window, not fullscreen, using "screen mode id:i:1". (2=fullscreen) And no matter what I set xpos to it refuses to place the window on the second monitor. It's bizarre. Any xpos greater than my "main" monitor's width, i.e. to push it onto the second, is overridden back to 0 when I open the connection. Frustrating. – JMD Jan 9 '13 at 23:08
  • 3
    See JMD's comment on Ivan's answer. The format should be winposstr:s:0,1,xpos,ypos,xpos+width,ypos+height. This worked perfect for me. – awe May 8 '13 at 6:47
9

The other answers which mentioned editing the winposstr setting in the .RDP file seemed promising but I was confused by the explanation of how the position values should be calculated.

The TechNet article How to Set the Monitor for a Remote Desktop Session in a Multi-Monitor Setup has a good explanation.

By the way, the article uses clearer names for the positions, I think, that have been used in other answers here: "winposstr:s:0,1,left,top,right,bottom", where horizontal values are measured from left to right and vertical values from top to bottom.

As far as I can see, from the article and from experimenting with a RDP file in Windows 8.1, here's how to edit the .RDP file to maximize an RDP session on a particular monitor:

1) Determine the left and right edges of each of your monitors, based on their resolution and which monitor is the primary one. In my case, my monitors are:

Left hand = Primary, 1680x1050;

Right hand = Secondary, 1920x1200.

So the edges of the two monitors will be:

Primary (left) monitor: Left edge: 0, Right edge: 1679 (not 1680 because the horizontal position is 0-based, not 1-based);

Secondary (right) monitor: Left edge: 1680, Right edge: 3599 (1680 + 1920 - 1, since the position is 0-based).

Note that if the secondary monitor is to the left of the primary one, the left edge of the secondary monitor will be a negative value.

2) Edit the winposstr setting in your .RDP file to set both the left and right values to positions that are on the same monitor. It doesn't matter what those values are if the RDP window is always going to be maximized, as long as they are on the same screen. The top and bottom values aren't important, if you're just going to maximize the RDP window.

So to display the RDP window on my primary, left-hand, monitor I could set:

winposstr:s:0,3,700,0,1500,600

And to display it on my secondary, right-hand, monitor I could set:

winposstr:s:0,3,2000,0,3000,600

3) Edit the screen mode setting in your .RDP file to maximize the RDP window:

screen mode id:i:2

4) Try it out. If the RDP window still doesn't appear maximized, despite setting "screen mode", set the desktopwidth and desktopheight settings in your .RDP file to the same width and height as the monitor the RDP window is displayed on.

  • very detailed explanation, but requires quite some math though. – Hoàng Long Dec 17 '15 at 1:43
4

I am on Windows 7 and none of the above suggested methods worked for me. Mind you I was using a preconfigured RDP shortcut that I downloaded from Amazon EC2, which I guess is where the problem lies so if you're trying to fix this problem within a similar setup to mine here's the steps I took to fix it

  1. Run Remote Desktop Connection (do NOT use your preconfigured RDP session file)
  2. Move the RDP dialogue to the monitor you want your session to be appearing
  3. Click more options
  4. Manually input details (hostname, account etc)
  5. If you want to persist the fix so that your previously broken shortcut always works as you intended it to click Save As and overwrite the RDP session file that you want to fix
  6. Click connect to connect to the remote host

If you close the session and run your shortcut file the session should now come up in the desired monitor and the correct resolution (which was another problem I was having before, i.e. I could move the session between monitors but it'd be a pain to sort out the resolution)

Hope this helps!

| improve this answer | | | | |
  • 1
    This is the best solution IMHO. – Larry Sep 11 '13 at 6:54
  • 1
    This might seem a pretty low tech solution but it was the only one that actually worked for me. Several answers mentioned modifying the winposstr settings in the RDP file but those settings are not intuitive in Windows 8, despite the various explanations in other answers here. For example, the consensus is the format of winposstr is "winposstr:s:0,1,xpos,ypos,xpos+width,ypos+height" and yet what works for me, to maximize the session on my secondary monitor, is "winposstr:s:0,3,2160,0,2960,600", where my primary (left) monitor is 1680x1050 and my secondary (right) monitor is 1920x1200. ?? – SimonTewsi Apr 2 '14 at 21:31
  • @SimonTewsi: according to my calculation, your value should be 0,3, (1680, 0, 3599, 1200) The pitfall here is that when it calculate the position, you must pretend 2 monitor stand next to each other, and use the same (x, y) system. Credit goes to Simon's answer (oh, it's you). – Hoàng Long Dec 17 '15 at 1:50
  • No longer works on Windows 10. – Vojtěch Dohnal Nov 6 '16 at 6:58
2

A simpler way to do it is

  1. Run Remote Desktop Connection (DO NOT EDIT RDP FILE)

  2. Move the RDP dialogue to the monitor you want your session to be appearing

  3. Click 'DISPLAY' tab and drag the slider to the extreme right for a full screen view

... It was that easy

| improve this answer | | | | |
1

I found that if I move the remote desktop connection dialog to the second monitor and run it that it will open the session there. Then you can save that connection to a .rdp file and that should do it for you.

| improve this answer | | | | |
  • 2
    I expected this to work, and I'm sure I've seen this behaviour (maybe in XP?) but, fwiw, it's not working in Windows 8. – JMD Jan 9 '13 at 23:09
1

In Windows 8 it's pretty simple and I guess you can do the same in Windows 7: Simply set the size of the remote desktop to the resolution of the secondary screen, open session and drag the window to the secondary screen. Maximize. Done.

This worked for me, possibly you might also have to press Ctrl+Alt+Break as suggested in another comment to make the fullscreen work.

| improve this answer | | | | |
  • +1 This was necessary for me on Windows 7. Even changing the primary display to be the secondary screen did not make the "fullscreen" setting use the secondary display's resolution. However, bringing the slider down from "fullscreen" revealed that the secondary screen's resolution was available. – Adam Jensen Apr 21 '15 at 6:44
1

The solutions above didn't work for me, but the one below did:

RDP on W7 - need to always open on a second monitor

Run the client and get it set up the way you prefer, or Open your saved RDP file.

On the Display tab, choose a non-fullscreen resolution.

On the General tab, click "delete these credentials", if possible.

Click Connect.

You will immediately get a local login dialog. Leave it blank and click OK . When you are connected and the remote login dialog appears, drag the window to the desired monitor. On the remote login dialog, click Cancel . The settings dialog should reappear locally. On the Display tab, you can now choose fullscreen. You can now save your session with the Save button on the General tab, as well as save your login credentials.

1

Try WiLMA - it has a "live layout" capability that can force certain application windows into desired layouts (such as on a second monitor).

0

Delete the old RDP settings (.rdp file) and re-create it using the monitor you need.

So if you want it to appear on the second monitor, drag the RDP setup dialog to that monitor and when connected to RDP, minimize and drag the window which has the remote content to the second monitor, then close it.

This worked for me. Other described methods failed.

Notice that you might have to go to the Display tab before connecting and move the screen resolution slider all the way to the right to get full screen, on my machine it was configured to match the display resolution on my laptop.

  • I tried this as well, to no avail in Windows 8. – JMD Jan 9 '13 at 23:10
0

Edit the RDP file with any text editor and search for

winposstr:s:0,showcommand,xpos,ypos,xpos+width,ypos+height

In my example I use [1920x1080] on the first monitor and [1440x900] on the second, both aligned top

winposstr:s:0,1,1920,0,3360,900

| improve this answer | | | | |
0

I came across this question whilst searching for a solution to the same problem...turns out for me that what was required was - because my dual monitors have differing resolutions - to have an RDP file whose Display settings matched the resolution exactly of the target monitor (i.e. fullscreen was not selected). That way, when I maximized the window, it fullscreened. The downside is that you need two RDP files, one for each monitor.

| improve this answer | | | | |
0

In Win XP I overwrote settings as oxyscythe suggested

  1. (Run Remote Desktop Connection (do NOT use your preconfigured RDP session file)
  2. Move the RDP dialogue to the monitor you want your session to be appearing
  3. Click more options Manually input details (hostname, account etc)
  4. If you want to persist the fix so that your previously broken shortcut always works as you intended it to click Save As and overwrite the RDP session file that you want to fix
  5. Click connect to connect to the remote host)

  6. and then I checked what happened with rdp file in notepad.

  7. Here it goes:


    screen mode id:i:2
    desktopwidth:i:1920
    desktopheight:i:1080
    session bpp:i:32
    winposstr:s:0,1,-1280,-74,-480,526


So maybe check if it is the same with win 7 and 8...

0

I got results in Win7 64 without hacking the .RDP file. I had to try multiple times though.

The tricky part seems to be clearing down enough stuff in the Remote Desktop Connection config dialog to actually lose the cached bit of config.

Delete your RDP, clear your credentials, remove fullscreen, and save a new RDP. Persevere with that until your non-fullscreen session opens on the correct monitor. Then set fullscreen and you're golden.

Side note, possibly coincidence, but it didn't work until I cleared "share smart cards" from the More... button on the Local Resource tab and set the Experience tab to LAN. Maybe these have some effect too...

| improve this answer | | | | |
0

Using Windows 8.1 on an HP laptop screen on the left coupled with a large screen monitor on the right.

Problem: Connecting via RDP always opened a smaller window on my smaller laptop screen 1366x768.

Solution:
Open Control Panel -> Display -> Screen Resolution Under "Change the appearance of your Displays", highlighting the large monitor 2 graphic and select "Make this my main display" Click Apply

Now when I connect via RDP, I can raise the resolution under Options to match the 2nd monitor and it opens on the 2nd monitor or "main display"

Note: This also brought my task bar (pinned items, tray, and clock) over to the big monitor which was not a deal-breaker for me.

| improve this answer | | | | |
  • 1
    So your solution to making it appear on the a Secondary display instead of always displaying on the Primary, is to change which display is Primary? Interesting approach. ;) – Ƭᴇcʜιᴇ007 Feb 22 '14 at 3:49
0

For me, I had to uncheck the option on the "Display" tab that says "Use all my monitors for the remote session". After unchecking that and connecting, I could maximize the RDP session on any monitor and it would not "stick" to one like before. One would think by the way it is worded you would want that checked, but I guess not in my case. Hope this helps someone else.

| improve this answer | | | | |
0

I tested this approach under windows 10 and linux systems. There is no need to install or modify any files.

  1. Set your secondary screen as your main screen.

  2. Open RDP. It will open in the main (secondary screen) and you will be allow to display in full screen mode.

  3. If it's not the case, check your parameters in rdp and set full resolution.

Simple as that!

| improve this answer | | | | |
-1

Very Simple

  1. Connect to the server via rdp
  2. exit the full screen mode by clicking the "restore down button" the two squares icon near the close button of the window.
  3. move the RDP window to the preferred screen
  4. maximize the RDP window (by clicking the maximize button) on the preferred screen.
  5. close the RDP by clicking the X (close/disconnect) button while it is maximized on the preferred screen
  6. reopen RDP
  7. reconnect to the server .... VWALLAH it opens on the preferred screen :)
| improve this answer | | | | |
  • How does this answer differ from @user3463 answer? Please delete it. – Davidenko Oct 13 '15 at 20:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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