Chapter 2 covered enabling RDP on the host machine. This chapter goes
deeper into the client side — getting the most out of mstsc
(the built-in client), the Experience tab's performance presets, spanning
multiple monitors, audio and device redirection, and RemoteApp for running
individual Windows applications as if they were local. We also look at the
modern Microsoft Remote Desktop app from the Store, which
replaces mstsc for some workflows.
The Experience Tab — Performance Presets
The Experience tab in mstsc controls which visual effects
are enabled during the session. On a fast LAN, keep everything on. Over a
slower connection, disabling effects dramatically reduces bandwidth and
makes the session feel more responsive.
LAN (10 Mbps or higher)
Everything enabled
Desktop background, font smoothing, desktop composition, window animations, themes, bitmap caching. Full visual experience — looks identical to sitting at the machine.
Broadband (2–10 Mbps)
Themes + font smoothing only
Desktop composition and animations disabled. Looks slightly flatter but remains comfortable. Good preset for home broadband or a business VPN connection.
Modem / slow link (< 2 Mbps)
Bitmap cache only
Everything visual is stripped out. Only bitmap caching (storing frequently-used screen regions locally) remains. Functional but spartan. For mobile data or a slow VPN.
Custom
Pick and mix
Manually tick each option. Recommended: keep bitmap caching always on — it caches repeated UI elements and significantly reduces redraws at no perceptible quality cost.
The single best setting for slow connections: disable the
desktop background (wallpaper) and font smoothing — these two alone account
for a large fraction of bandwidth. Keep themes and bitmap caching. The session
will feel much snappier without looking completely bare.
Multi-Monitor Support
mstsc can span a remote desktop session across all your local monitors,
making the remote machine feel fully integrated with your workspace:
Monitor 2
Monitor 1 (primary)
→
Remote desktop spans both
# Use all monitors from the command line
mstsc /multimon /v:hostname# Or in a .rdp fileuse multimon:i:1screen mode id:i:2# 2 = full screen# Span specific monitors only (by monitor ID)# Use mstsc /l to list monitor IDs on your machine
mstsc /l
Monitor alignment matters. Windows requires all monitors
in a multi-monitor RDP session to be the same resolution, or the session
may only span correctly on matched displays. Mismatched resolutions can
cause the remote desktop to appear on only one monitor or scale oddly.
If this happens, switch to a single-monitor full-screen session and adjust
display settings on the remote machine first.
Selective monitor spanning — choose which monitors to use
# selectedmonitors — comma-separated list of monitor IDs from mstsc /lselectedmonitors:s:0,1# use monitor 0 and 1 only, skip monitor 2use multimon:i:1
Audio and Device Redirection in Depth
Audio — three modes
# In a .rdp file — audiomode controls where remote audio playsaudiomode:i:0# Play on this computer (default) — audio comes out your local speakersaudiomode:i:1# Play on remote computer — audio stays on the server's speakersaudiomode:i:2# Do not play — no audio at all# Microphone redirection — send your local mic to the remote sessionaudiocapturemode:i:1# 1 = redirect microphone, 0 = no mic
Drive redirection
# In a .rdp fileredirectdrives:i:1# enable drive redirectiondrivestoredirect:s:C:\;# share local C: drive onlydrivestoredirect:s:*# share ALL local drivesdrivestoredirect:s:DynamicDisks# share USB drives as they are plugged in# On the remote machine, shared drives appear in File Explorer under:# This PC → philip on LAPTOP-NAME (\\tsclient\C)
Other device redirection
# Clipboard — almost always want this onredirectclipboard:i:1# Printers — local printers appear in the remote sessionredirectprinters:i:1# Smart cards (for corporate authentication)redirectsmartcards:i:1# USB devices (requires RD Gateway or RemoteFX — not always available)usbdevicestoredirect:s:*# Webcam redirection (Windows 10 v1803+ with server support)camerastoredirect:s:*
The Complete .rdp File Reference
A .rdp file is plain text — every setting mstsc can save
is a key:type:value line. Here is a complete working file for a power-user
setup:
# work-pc.rdp — full-featured connection profile## Connectionfull address:s:192.168.0.50username:s:philipdomain:s: # blank for local accountprompt for credentials:i:0# 0=use saved creds, 1=always prompt## Displayscreen mode id:i:2# 1=windowed, 2=fullscreenuse multimon:i:1# span all monitorsdesktopwidth:i:1920desktopheight:i:1080session bpp:i:32# colour depthsmart sizing:i:0# 1=scale remote to fit windowdynamic resolution:i:1# resize remote when window resizes## Performanceconnection type:i:7# 1=modem … 7=LAN, auto-tunes experiencenetworkautodetect:i:1# auto-detect bandwidthbandwidthautodetect:i:1bitmapcachepersistenable:i:1# persist bitmap cache between sessions## Audio / Videoaudiomode:i:0# play audio locallyaudiocapturemode:i:1# redirect microphonevideoplaybackmode:i:1# optimise video playback## Devicesredirectclipboard:i:1redirectdrives:i:1drivestoredirect:s:C:\;redirectprinters:i:1redirectsmartcards:i:0camerastoredirect:s:*## Securityauthentication level:i:2# 0=no auth, 1=warn, 2=require NLAenablecredsspsupport:i:1# use CredSSP (NLA)disableconnectionsharing:i:0
RemoteApp — Running a Single Application Remotely
RemoteApp is an RDP feature available on Windows Server
(and Windows 10/11 Pro with a registry tweak) that lets you publish a specific
application instead of a full desktop. The app opens in a window on your local
machine — it looks like a local app but runs entirely on the remote server,
including all its data and processing.
RemoteApp — applications running on server, displayed locallyserver: 192.168.0.50
Instead of a full remote desktop, individual apps appear as windows alongside your local apps:
Each app appears in the taskbar, can be minimised, maximised, and Alt-Tabbed to — users can't tell it isn't running locally.
Enabling RemoteApp on Windows 10/11 Pro (registry tweak)
# On the HOST machine — run PowerShell as Administrator# Enable RemoteApp on Windows 10/11 Pro (not available by default)
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" `
-Name "fDisabledAllowList" -Value 1# Add an application to the allowed list
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\notepad" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\notepad" `
-Name "Path" -Value "C:\Windows\System32\notepad.exe"
# .rdp file for a RemoteApp sessionfull address:s:192.168.0.50remoteapplicationmode:i:1# enable RemoteApp moderemoteapplicationname:s:Notepad# display nameremoteapplicationprogram:s:notepad# the app alias in allowed listremoteapplicationcmdline:s:C:\docs\report.txt# optional: open a specific fileusername:s:philipredirectclipboard:i:1
Microsoft Remote Desktop App (Store) vs mstsc
Microsoft publishes a modern Remote Desktop app on the
Microsoft Store (free) alongside the classic mstsc.exe. They
connect to the same RDP servers — the difference is in the management
experience:
mstsc.exe
Built-in · Win32 · all Windows versions
The classic client. No installation needed, supports all .rdp file settings, full command-line control, every advanced option exposed. The right tool for power users and scripted connections.
✓ Always available — no install needed
✓ Full .rdp file and CLI support
✓ RemoteApp, admin session, all flags
⚠ UI feels dated on high-DPI displays
Microsoft Remote Desktop
Microsoft Store · modern UI · free
Modern, clean UI with a PC/workspace manager. Designed for managing multiple connections — add PCs, organise into groups, configure once and connect with one click. Better on touch screens and high-DPI monitors.
✓ Better multi-connection management
✓ Workspace/RemoteApp integration
✓ Cleaner high-DPI scaling
⚠ Fewer advanced settings exposed in UI
⚠ Doesn't use .rdp files directly
Recommendation: use mstsc for scripted,
automated, or advanced connections — particularly anything involving
RemoteApp, custom .rdp files, or command-line flags. Use the
Store app if you manage multiple RDP connections and want
a cleaner UI for day-to-day interactive use.
Quick Reference — .rdp Key Cheat Sheet
Key
Values
Purpose
full address:s:
host or host:port
Target machine
username:s:
philip
Login username
screen mode id:i:
1=windowed, 2=fullscreen
Window mode
use multimon:i:
0 or 1
Span all monitors
dynamic resolution:i:
0 or 1
Resize remote on window resize
session bpp:i:
16, 24, 32
Colour depth (bits per pixel)
connection type:i:
1–7 (1=modem, 7=LAN)
Network speed preset (sets experience flags)
audiomode:i:
0=local, 1=remote, 2=none
Where audio plays
audiocapturemode:i:
0 or 1
Redirect local microphone
redirectclipboard:i:
0 or 1
Clipboard sharing
redirectdrives:i:
0 or 1
Drive redirection
drivestoredirect:s:
C:\; or * or DynamicDisks
Which drives to share
authentication level:i:
0=none, 1=warn, 2=NLA required
NLA enforcement
remoteapplicationmode:i:
0 or 1
RemoteApp mode
remoteapplicationprogram:s:
app alias or full path
Which app to launch in RemoteApp mode
Next — Chapter 5: xRDP.
Windows has RDP built in. Linux doesn't — but xRDP adds
a full RDP server to Debian and Ubuntu, letting you connect from any RDP
client (mstsc, Remmina, the Store app) to a Linux desktop. Chapter 5 covers
installing xRDP, choosing a desktop session, connecting from Windows,
and fixing the most common colour/display issues.