This page is not about how to connect. It is about the mstsc client’s own state: the Experience tab defaults, the display and redirection settings that get baked into a saved .rdp file, where that file lives and why it disappears after an upgrade, and how the client stores and replays credentials through Windows Credential Manager. If you can log in but the session is slow, blurry, or keeps asking for a password you already saved, the answer is in one of these five settings. Server-side images that match the defaults discussed here are listed under the Windows VPS plans at windows-vps.org.
Where Windows 10 Keeps Your Saved Sessions
The client writes two kinds of state to disk, and only one of them is a file you chose.
| Path | Content | Scope |
|---|---|---|
| %USERPROFILE%\Documents\Default.rdp | Settings used when you launch mstsc with no arguments | Per user, hidden file |
| Any .rdp you save via “Save As” | Full connection config, plain text | Anywhere you choose |
| %APPDATA%\Microsoft\Terminal Server Client\Default | MRU list of the last 10 hostnames (MRU0–MRU9) | Per user, editable |
| %APPDATA%\Microsoft\Terminal Server Client\Servers\<host>\UsernameHint | Remembered username per host | Per user, plain text |
| %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache | Persistent bitmap cache (bcache*.bmc) | Per user, per host |
The MRU list is the reason the Computer field suggests a hostname you deleted months ago. It is a registry key, not a file, and it survives profile roaming in some configurations:
reg query "HKCU\Software\Microsoft\Terminal Server Client\Default"
reg delete "HKCU\Software\Microsoft\Terminal Server Client\Default" /v MRU0 /f
Reading a .rdp File: The Settings That Actually Affect Speed
An .rdp file is an INI that the client parses on launch. Open it in Notepad and you can see exactly what the GUI wrote. The left column is the raw key, the right column is the GUI location that produces it.
| .rdp key | Values | GUI location |
|---|---|---|
| session bpp:i | 15, 16, 24, 32 | Display → Colors |
| desktopwidth / desktopheight | e.g. 1920 / 1080 | Display → Resolution |
| screen mode id:i | 1 = windowed, 2 = full screen | Display → Full screen |
| connection type:i | 1 modem, 2 low, 3 broadband, 4 LAN, 6 auto | Experience → Connection speed |
| bitmapcachepersistenable:i | 0 / 1 | Experience → Persistent bitmap caching |
| authentication level:i | 0 = connect and warn, 1 = don’t connect, 2 = warn | Advanced → Server authentication |
| administrative session:i | 0 / 1 | Advanced → Connect to admin session |
| redirectclipboard:i | 0 / 1 | Local Resources → Clipboard |
| audiomode:i | 0 local, 1 remote, 2 none | Local Resources → Remote audio |
The connection type:i value is the single biggest lever on perceived responsiveness over a WAN. Value 6 (auto) picks the profile from measured bandwidth, and it often decides you are on a “low speed” link and strips wallpaper and fonts. If the session looks worse than your connection deserves, pin it:
# In the .rdp file, force LAN profile
connection type:i:4
# Or check what is in effect inside the session
Get-ItemProperty 'HKCU:\Software\Microsoft\Terminal Server Client\Default'
The Experience Tab and What Each Checkbox Costs
Every unchecked box in the Experience tab removes a visual effect that otherwise has to be re-rendered server-side and pushed over the wire. On a 10 Mbit link the difference between “LAN” and “Modem” profiles is roughly 30 to 60 percent of the frame traffic at 1920×1080.
- Desktop composition — DWM/Aero effects. Off saves the most bandwidth on Windows Server 2012-era images; on Server 2019+ the visual difference is smaller.
- Font smoothing — ClearType. Turning this off is what makes text look “blocky” over RDP; keep it on above 5 Mbit.
- Desktop background / menu and window animation — pure eye candy; disable first on any link under 10 Mbit.
- Show window contents while dragging — off produces a wireframe outline instead of live redraw, which is smoother on high-latency links but feels broken to new users.
- Persistent bitmap caching — leave ON. It writes compressed tiles to disk and replays them on reconnection, cutting reconnection traffic substantially. Turning it off is only worth it if the local disk is failing.
Profile presets map to specific bit combinations. “Modem (56 kbps)” disables wallpaper, composition, animations and font smoothing but keeps bitmap caching. “Detect connection quality automatically” enables everything and lets the client degrade it dynamically — a reasonable default on a laptop that moves between networks.
Display Settings That Cause Blurry or Cut-Off Sessions
Two problems dominate. First, the session resolution exceeds the monitor after a dock or monitor change, and the session is clipped with no scrollbars. Second, text renders soft because the display scaling inside the session is 100 percent while the host is at 150 percent.
# Check display scaling inside the session
Get-ItemProperty 'HKCU:\Control Panel\Desktop' -Name LogPixels
Get-ItemProperty 'HKCU:\Control Panel\Desktop\WindowMetrics' -Name AppliedDPI
A value of 96 under AppliedDPI means 100 percent. On a 4K laptop you want 144 (150 percent) or 192 (200 percent) inside the session, or use the “Use all my monitors” option and let the client negotiate per-monitor DPI. For .rdp files, the multipurpose keys are:
desktopscalefactor:i:150
use multimon:i:1
selectedmonitors:s:0,1
Credential Handling and the Credential Manager Traps
“Remember me” writes a generic credential with the target TERMSRV/<host>. The client reads that entry on every subsequent connect, before it ever shows a prompt, which is why a changed server password produces an immediate failure instead of a fresh prompt. Enumerate and clean:
cmdkey /list | Select-String -Pattern 'TERMSRV'
cmdkey /delete:TERMSRV/203.0.113.10
cmdkey /generic:TERMSRV/203.0.113.10 /user:.\Administrator /pass
Two more details people miss. The username hint file under Servers\<host>\UsernameHint is plain text and is what pre-fills the User name field; editing it directly is faster than clearing the GUI. And on a domain-joined workstation, the client will attempt single sign-on with your domain identity unless the .rdp contains prompt for credentials:i:1, which is the cleanest fix for the “it logs in as my own account” complaint:
prompt for credentials:i:1
authentication level:i:1
Setting authentication level:i:1 makes the client refuse to connect to a server whose certificate it does not trust, rather than warning and continuing. On a self-signed VPS listener this will block every connection until you import the server’s certificate into Trusted Root on the client — which is the right trade for a production workstation and the wrong one for a one-off diagnostic.
Copying a Working Profile to Another PC
Because the .rdp file is plain text, the entire connection profile moves with it. The one thing that does not move is the credential, and that is deliberate. Copy the file, drop the credential, and let the new machine prompt once.
Copy-Item 'C:\Users\me\Documents\WorkVPS.rdp' -Destination '\\newpc\C$\Users\me\Documents\'
# Strip any saved password hash if present (password 51:b:...)
(Get-Content .\WorkVPS.rdp) -notmatch '^(password 51|alternate shell|shell working directory)' |
Set-Content .\WorkVPS.clean.rdp -Encoding ASCII
If an .rdp contains a password 51:b: line, it holds a DPAPI-encrypted blob tied to the original user profile and will not work elsewhere anyway. Remove it rather than copying it around. The same rule applies to exported connection settings in the Store Remote Desktop app, which stores per-PC entries in a package container under %LOCALAPPDATA%\Packages and cannot be edited as text at all.
Why Settings Vanish After an Upgrade or Profile Reset
Everything except the .rdp files you saved yourself lives under the user profile. A Windows feature update that creates a new profile, a domain roaming profile that does not sync %APPDATA%\Microsoft\Terminal Server Client, or a “Reset this PC” all wipe the MRU list, the username hints and the bitmap cache. Keep the .rdp files in a synced folder, keep a script for the cmdkey entries, and the recovery after any of those events is two minutes. Current server images and their default RDP listener configuration are documented on the windows-vps.org Windows VPS page.



