47

Is there a way to change the default resolution that mstsc uses?

I dont want it to default to the full resolution of the client machine.

enter image description here

44

Sure, just slide that "Display Configuration" back a notch to whatever resolution you want. Then go back to the "General" tab and click on the "Save" button.

Hey presto, new default :-)

While you're at it, usually doesn't hurt to go to the Local Resources tab and uncheck Printers and review what else is shared (seriously, who ever prints over RDP?).

  • who ever prints over RDP? Folks of the Server Fault lot. – Twisty Impersonator Nov 26 '14 at 20:13
  • 1
    Oh, I was missing the "Save" button, quite confusing as it is on the General tab so it's not obvious that it affects settings of other tabs. – cprcrack Apr 9 '15 at 19:15
  • 1
    That makes things worse. Rather than a full screen with unreadably small characters, I now have little tiny window with unreadly small characters. – Dale Wilson Aug 26 '16 at 16:02
20

I personally work on a 1440x900 laptop screen and like my Remote Desktop windows to be a bit smaller than the screen when maximised so I run mstsc.exe switches /v: and /w: to set its height and width (see mstsc.exe /? for a full list). mstsc.exe /h:900 /w:1100 sets it to my preferred size, and it seems to keep this setting for future sessions.

  • +1. Although I think it should be /h:900 instead of /v:900 for height :) – Meleak May 17 '11 at 11:35
  • 4
    Thank you for this: I came here wanting to know how to set a custom resolution not offered by the slider, and this does the trick! – JHixson Jul 12 '16 at 19:51
7

You can also edit the .rdp file directly. I usually just open it in notepad. You can edit and save just like any regular text file. The properties that I most commonly edit are desktopwidth, desktopheight, and winposstr. This also allows you to choose any resolution, not just the predefined ones in the GUI slider. The only part that is a little confusing is the parameters for winposstr; leave the first two alone and the last four are left, top, right, bottom locations of the window respectively. I have a three monitor setup with 1600 X 1200 resolution, and here is what I use to display the session on my third monitor with no scroll bars.

full address:s:Win7VM
prompt for credentials:i:1
screen mode id:i:1
use multimon:i:0
desktopwidth:i:1590
desktopheight:i:1160
session bpp:i:32
winposstr:s:0,3,3200,0,4790,1160
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:7
networkautodetect:i:1
bandwidthautodetect:i:1
displayconnectionbar:i:1
enableworkspacereconnect:i:0
disable wallpaper:i:0
allow font smoothing:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
audiomode:i:0
redirectprinters:i:0
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
drivestoredirect:s:
autoreconnection enabled:i:1
authentication level:i:2
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:0
gatewaybrokeringtype:i:0
use redirection server name:i:0
rdgiskdcproxy:i:0
kdcproxyname:s:

If you want more details about winposstr, behind the scenes it is using the Windows API function SetWindowPos.

Edit:

I forgot to mention this. Another cool thing about editing it as a text file is you can open multiple documents in something like notepad++ and do mass replaces. So say I have ten .rdp files and I want to change winposstr to the same values in all of them. I can just dump them all into notepad++ and do a mass replace, much easier than mucking around that GUI and having to switch tabs to save.

  • Perfect answer for me. Also note it seems the winposstr includes the window frame so you should use a higher number than your resolution. You can have it much larger than the actual resolution and it will scale back to your wanted resolution. – rayzinnz Apr 27 '17 at 5:40
4

I like starting mstsc.exe from a PowerShell script. My scripts is named, "RDP.PS1" because RDP is easier to type than mstsc :)

There are some values that I usually almost always want the same: no printers, no drives and BASIC display settings so that the RDP session runs faster.

I have a combination of a "default.rdp" and the switches available with mstsc.exe. I did this because mstsc.exe does not allow complete configuration from the command line. By setting all my preferences in "default.rdp", then including a server name, /v: and display dimensions, /h: and /w:, I get a session the way I like.

Create a "default.rdp" and save it as this thread has described. then combine it with mstsc.exe switches:

mstsc.exe MyDefaultPrefs.RDP /v:MyServer /h:815 /w:1300

I used PowerShell to add in a few other switches if I care to use them. For the most part though, all I type is:

RDP MyServer

and let the defaults be.

2

The 1440x900 laptop issue is quite common. yes, you could choose a smaller resolution, say, 1024x768 or 800x600, and they would yield acceptable results - if what you're seeking is to avoid scroll bars withing the RDP instance itself.

Must more convenient is to choose to use your current desktop resolution, but in many clients this will yield less than desirable results (You get the scroll bars) unless you toggle full screen.

To have your RDP client (Since we appear to be talking about MSTSC.exe here) session occur in a window itself, while avoiding the scroll bars (or the afore mentioned resolutions which are less than optimum), the /h:900 /w:1100 parameters suggested above are a great starting point, but with all things YMMV, so play with it until you get it just so ;)

Many RDP clients also allow you to set a 'custom' res just prior to connect, and yes, most clients will remember your last sessions.

One major thing you should be aware of. For all of us UNIX folks, we're going to be using things like vcenter, putty, etc., in our remote windows sessions, and whatver you want to call your DOS-like consoles, well... They don't follow the same set of rules as the rest of your desktop, so just make a note of that when setting your resolutions, and set your preferences according to how nicely the Windows desktop fits into your workspace, because you're just going to have to get used to moving those DOS-like windows about, as they'll always be a bit clunky.

You can also set 24bit color with a hack, because it's disabled by default, although there's really no need for most folks, and although some people like to disable printing, I find that using remote apps and printing locally via RDP is not only a dream, but part of my regular tasks on a daily basis.

so remember, if you're local res is 1440x900, you either need to run your RDP client in full screen mode (appears as if it is your local desktop), or, in order to run it as an obvious windowed app, you'll need to adjust your custom screen resolution to something slightly smaller, which will yield a window about the size of your entire desktop, but without appearing as if it is your local desktop - this is what many prefer, as they find it confusing otherwise.

I hope that helps :)

1

I have a laptop that I connect to different external monitors at different locations, sometimes I connect to my laptop from a desktop machine so I get the benefits of a fullsized keyboard/mouse/monitor..

This causes me grief because they're all different resolutions and despite selecting "Full Screen", that doesn't seem to save for me. If I work at home at one resolution, then come to the office and use a monitor at a different resolution, I'd often have my RDP window end up the "full screen" resolution for the last monitor I was using. This means that it's either a little too big or little bit too small.

To fix this I used the "/f" switch directly in the start menu link.

  1. Right click on "Remote Desktop Connection" icon in the start menu
  2. Properties
  3. Change the "Target" value to : %windir%\system32\mstsc.exe /f

Hope this helps.

1

https://answers.microsoft.com/en-us/surface/forum/surfpro4-surfdrivers/surface-pro-4-windows-10-remote-desktop-other/d17d4321-0f04-4a64-95b4-1c6dd5de9c91

Here is what I did to solve the issue. It also works with older apps that don't handle high DPI scaling well.

First one must tell Windows to look for a manifest file for an application by default – a registry entry.

  • Open regedit and navigate to the registry key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSideBySide
  • Right-click, select NEWDWORD (32 bit) Value
  • Type PreferExternalManifest, and then press Enter.
  • Right-click PreferExternalManifest, and then click Modify.
  • Enter a Value Data of 1 and select Decimal.
  • Click OK. Exit the Registry Editor.

Next is to provide a manifest file for a given application – the executable file name followed by .manifest.

The RDP app is %windir%\System32\mstsc.exe so the manifest file is mstsc.exe.manifest.

I can't attach the manifest file so here is the contents:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>
0

The solution I found most useful was to set the properties of my local machine's task bar to "auto-hide" (right click on empty part of task bar, choose properties, I un-set the lock taskbar and checked the "auto-hide" property). The local task bar still appears when I mouse all the way down to the bottom of the screen. Otherwise, I see and can use the remote system's task bar. Hope this is helpful.

  • It took me a second to figure out what this is talking about. It doesn't sound like an answer to the original question, but could be a useful tip. I believe this answers the question "How do I keep the host task bar from covering up the RDP session Window when the remote session window is not set to Fullscreen mode?" Not positive but that is what it sounds like. – Justin Pavatte Feb 11 '16 at 22:02
0

You can also use Smart Resizing in the rdp file as outlined here.

This allows you to have a custom default size, but it also allows you to resize your remote desktop window on the fly without introducing unwanted scroll bars.

Long story short:

  • Set your desired default resolution using desktopwidth:i:1280 and desktopheight:i:1024 (replacing those numbers with your desired resolution)
  • Add the following line to the bottom of the RDP file:
    smart sizing:i:1

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.