The Illusion of Speed
The Remote Desktop Protocol (RDP) is an engineering marvel. It allows a user to interact with a server located thousands of miles away as if they were sitting directly in front of it. To achieve this illusion of zero latency over a slow WAN link, the RDP client (mstsc.exe) relies heavily on a feature called Persistent Bitmap Caching.
When you open the Start Menu on the remote server, the RDP client downloads the graphical bitmaps of the icons (the blue folders, the gear icons). It then saves these bitmaps to a local cache on your hard drive. The next time you open the Start Menu, the RDP client does not download the images again; it simply loads the cached bitmaps from your local SSD and pastes them onto the screen. This drastically reduces network bandwidth.
However, if this local Bitmap Cache becomes corrupted, the visual artifacts are severe. The remote screen might display black squares instead of icons, text might render as unreadable blocky chunks, or the entire RDP session might freeze and drop connection with an internal graphics error. Disconnecting and reconnecting does not fix the issue because the client immediately re-loads the corrupted cache from the hard drive. You must forcefully purge the RDP Bitmap Cache via PowerShell.
Locating the Bitmap Cache
The cache files are completely isolated to the local client machine (the laptop you are using to initiate the connection), not the remote server.
They are stored in a hidden AppData directory:
%LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache\
Inside this folder, you will find several files ending in .bin or .bmc (Bitmap Cache).
Purging the Cache via PowerShell
You cannot delete these files if an RDP session is currently active, as the mstsc.exe process holds a hard lock on the database.
Open PowerShell (Administrator privileges are not required, as these files reside in your local user profile) and execute the following script:
# 1. Forcefully terminate any hidden or hung Remote Desktop client processes
Stop-Process -Name "mstsc" -Force -ErrorAction SilentlyContinue
# 2. Define the path to the cache directory
$CachePath = "$env:LOCALAPPDATA\Microsoft\Terminal Server Client\Cache"
# 3. Verify the directory exists, then delete all cache files within it
if (Test-Path $CachePath) {
Remove-Item -Path "$CachePath\*" -Include "*.bin", "*.bmc" -Force
Write-Host "RDP Bitmap Cache successfully purged." -ForegroundColor Green
} else {
Write-Host "Cache directory not found. No action required." -ForegroundColor Yellow
}
Disabling the Cache (For Troubleshooting)
If you are on an incredibly fast LAN connection (e.g., 10 Gbps) and you want to completely eliminate the possibility of cache corruption in the future, you can configure the RDP client to never cache bitmaps to the hard drive, forcing it to render everything in real-time RAM.
- Open the Remote Desktop Connection client (
mstsc.exe). - Click Show Options.
- Navigate to the Experience tab.
- Uncheck the box that says Persistent bitmap caching.
- Return to the General tab and click Save to commit this setting to your
.rdpfile.
The next time you connect to the remote server, the screen will render flawlessly. The RDP client will automatically generate a fresh, uncorrupted .bin file on your local drive and resume normal bandwidth-saving operations.