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.
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?).
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.
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
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
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.
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:
and let the defaults be.
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 :)
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.
Hope this helps.
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.
DWORD (32 bit) Value
PreferExternalManifest, and then press Enter.
PreferExternalManifest, and then click
Next is to provide a manifest file for a given application – the executable file name followed by
The RDP app is
%windir%\System32\mstsc.exe so the manifest file is
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="22.214.171.124" 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>
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.
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:
desktopwidth:i:1280 and desktopheight:i:1024(replacing those numbers with your desired resolution)
See this manual about options available in .rdp file. For example, I wanted a connection to open in fullscreen mode on the monitor that extends my laptop's screen. 2 parameters are responsible for that:
screen mode id:i:2 // fullscreen mode winposstr:s:0,<screen number>,<laptop screen width>,0,<laptop screen width + monitor screen width>,<monitor screen height>