How to Fix “Windows cannot find C:\Windows\System32\mstsc.exe” / mstsc.exe.MUI Missing — Full Solutions (Many Ways)
Remote Desktop (mstsc.exe) problems usually come from one of three root causes: the mstsc.exe binary is missing, its supporting DLLs (mstscax.dll) are missin...
Remote Desktop (mstsc.exe) problems usually come from one of three root causes: the mstsc.exe binary is missing, its supporting DLLs (mstscax.dll) are missing / unregistered, or the language resource (.MUI) file for your system language is missing. Below is a complete, practical guide with every safe method I’d try — from quick checks to final, guaranteed fixes — plus the working final solution that restored Remote Desktop for you.
Quick summary of approaches (choose by urgency)
-
Quick check & run — look for
mstsc.exein System32 / SysWOW64. -
SFC / DISM — try automated system repairs.
-
Copy from WinSxS — extract the legit copies stored in Windows’ component store.
-
Restore .MUI — ensure the language resource (e.g.
en-US\mstsc.exe.mui) exists. -
Register DLL & fix App Path — register
mstscax.dll, add App Path registry key. -
Copy from another PC (same Windows build) — safe fallback.
-
Repair install (in-place upgrade) — guaranteed Microsoft-supported fix.
-
Third-party remote tools — temporary alternatives if you need access immediately.
1) Diagnose first — what to run now (Admin PowerShell / CMD)
Run these and copy their outputs if you need help:
-
Search for binary copies (PowerShell Admin):
Get-ChildItem -Path C:\ -Filter mstsc.exe -Recurse -ErrorAction SilentlyContinue | Select-Object FullName Get-ChildItem -Path C:\Windows\WinSxS -Filter mstsc.exe.mui -Recurse -ErrorAction SilentlyContinue | Select-Object FullName
-
Simple existence checks:
-
SFC / DISM quick health:
2) Fast fixes (try these in order)
A — Copy mstsc.exe from SysWOW64 → System32 (if present)
Sometimes 64-bit path is missing but 32-bit exists:
Run PowerShell as Administrator.
B — Run SFC then DISM
If files are corrupt or missing, these repair from the component store:
C — Re-register Remote Desktop ActiveX control
If mstscax.dll exists but isn’t registered:
D — Create App Path so Windows finds mstsc reliably
3) If mstsc.exe exists but shows:
“The system cannot find the file specified. C:\Windows\System32<LANG_NAME>\mstsc.exe.MUI”
That means the .MUI file for your system language (for example en-US) is missing. Windows expects it at C:\Windows\System32\<LANG>\mstsc.exe.mui.
Safe ways to restore the .MUI
A — Extract from WinSxS (best quick local source)
Windows stores component copies in C:\Windows\WinSxS. Use PowerShell (Admin) to locate & copy the correct .MUI:
B — If WinSxS lacks the English MUI — copy from another PC
Get C:\Windows\System32\en-US\mstsc.exe.mui from another Windows 11 Pro 22H2 machine with the same build (or same 22H2 family — builds close to 22621 usually work). Copy to your C:\Windows\System32\en-US\ (requires admin).
Do NOT download random mstsc.exe.mui files from the internet.
C — Fix file permissions to allow copy (TrustedInstaller-owner)
Protected folders belong to TrustedInstaller. Safe method to copy and restore ownership:
4) Automated script (the final working solution we used)
This is the full block that you can run as Administrator if you already have mstsc.exe.mui accessible locally (for example at C:\a\mstsc.exe.mui). It:
-
Ensures folders exist,
-
Takes ownership temporarily,
-
Copies to both System32 and SysWOW64
en-USfolders, -
Restores TrustedInstaller ownership,
-
Launches mstsc.exe if successful.
This is the final solution that worked: placing a valid
mstsc.exe.mui(English US) intoC:\Windows\System32\en-US, restoring ownership, then launchingmstsc.exe.
5) If you can’t get the MUI file (no other PC available)
Do an in-place Repair Install (Windows setup) — it will rebuild WinSxS and restore all official language resources without deleting apps or files:
-
Download Windows 11 ISO from Microsoft (official):
https://www.microsoft.com/software-download/windows11 -
Mount the ISO, run
setup.exe -
Choose Keep personal files and apps and proceed.
-
When finished,
mstscwill be restored.
This is the most reliable Microsoft-supported repair.
6) Temporary alternatives to get remote access now
While you fix mstsc, use:
-
Chrome Remote Desktop
-
AnyDesk
-
RustDesk
These are safe third-party remote-access tools that do not require mstsc.exe.
7) Safety & cautions
-
Never download
mstsc.exe,mstscax.dllor.muifiles from untrusted websites. Those can be malware. -
Only copy files from a trusted machine (same Windows edition/build) or extract from your own
C:\Windows\WinSxS. -
Take ownership temporarily only when necessary and restore
TrustedInstallerowner afterwards (commands above handle that).
8) Troubleshooting checklist (if still failing)
-
Confirm
C:\Windows\System32\en-US\mstsc.exe.muiexists (Test-Path). -
Confirm
mstsc.exeexists inC:\Windows\System32. -
Try
regsvr32 mstscax.dllin System32 and SysWOW64. -
Re-run
sfc /scannowafter copying MUI. -
Reboot after ownership/permission changes.
-
If errors remain, gather logs:
-
findstr /c:"[SR]" %windir%\logs\cbs\cbs.log > "%userprofile%\Desktop\sfclogs.txt" -
Get-Content "C:\Windows\Logs\DISM\dism.log" -Tail 80
-
Final recommendation (what worked for you)
-
You verified
mstsc.execame back but failed due to missingmstsc.exe.mui. -
The working fix was to obtain a valid
mstsc.exe.muifor en-US (either from WinSxS or another same-build PC) and copy it toC:\Windows\System32\en-US\mstsc.exe.mui. -
Use the PowerShell script above (or the single-block script I gave earlier) to safely take ownership, copy the file, restore TrustedInstaller, and launch
mstsc.exe. -
If you cannot obtain the MUI, perform a Microsoft in-place repair install — that will fix everything.
==================================
I created the PowerShell script and packaged it into a ZIP you can download and run.
-------------------------------
Restore-Mstsc-MUI.ps1
----------------------------
# Restore-Mstsc-MUI.ps1
# Safe, ready-to-run PowerShell script to copy mstsc.exe.mui into System32\en-US and SysWOW64\en-US
# Source file path is set to C:\a\mstsc.exe.mui - change $source if your file is elsewhere.
# Run this script AS AN ADMIN (right-click PowerShell -> Run as Administrator) or it will exit.
# --- Elevation check ---
$principal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Host "ERROR: This script must be run as Administrator. Right-click PowerShell and choose 'Run as administrator'." -ForegroundColor Red
exit 1
}
# --- Paths (edit $source if your .mui is in another location) ---
$source = "C:\a\mstsc.exe.mui"
$target64dir = "C:\Windows\System32\en-US"
$target32dir = "C:\Windows\SysWOW64\en-US"
$target64 = Join-Path $target64dir "mstsc.exe.mui"
$target32 = Join-Path $target32dir "mstsc.exe.mui"
Write-Host "Source file: $source"
if (-not (Test-Path $source)) {
Write-Host "ERROR: Source file not found. Place mstsc.exe.mui at $source or edit this script to point to the correct path." -ForegroundColor Red
exit 1
}
# --- Create target folders if missing ---
foreach ($d in @($target64dir, $target32dir)) {
try {
New-Item -Path $d -ItemType Directory -Force | Out-Null
Write-Host "Ensured folder exists: $d"
} catch {
Write-Host "Warning: Could not ensure folder $d : $($_.Exception.Message)" -ForegroundColor Yellow
}
}
# --- Take ownership & grant Administrators full control for the duration of the copy ---
foreach ($d in @($target64dir, $target32dir)) {
try {
Write-Host "Taking ownership (temporary) of $d ..." -ForegroundColor Cyan
& takeown /F $d /A /R | Out-Null
& icacls $d /grant Administrators:F /T | Out-Null
} catch {
Write-Host "Warning: Could not change permissions on $d : $($_.Exception.Message)" -ForegroundColor Yellow
}
}
# --- Copy the MUI to System32 (64-bit) ---
try {
Copy-Item -Path $source -Destination $target64 -Force -ErrorAction Stop
Write-Host "Copied to $target64" -ForegroundColor Green
} catch {
Write-Host "Failed to copy to $target64 : $($_.Exception.Message)" -ForegroundColor Red
}
# --- Copy to SysWOW64 (32-bit) if present ---
if (Test-Path "C:\Windows\SysWOW64") {
try {
Copy-Item -Path $source -Destination $target32 -Force -ErrorAction Stop
Write-Host "Copied to $target32" -ForegroundColor Green
} catch {
Write-Host "Failed to copy to $target32 : $($_.Exception.Message)" -ForegroundColor Yellow
}
} else {
Write-Host "SysWOW64 not present on this system; skipping 32-bit copy." -ForegroundColor Cyan
}
# --- Verification ---
$ok64 = Test-Path $target64
$ok32 = Test-Path $target32
Write-Host "`nVerification results:"
Write-Host "System32\en-US\mstsc.exe.mui : $ok64"
Write-Host "SysWOW64\en-US\mstsc.exe.mui : $ok32"
# --- Restore ownership to TrustedInstaller (best-effort) ---
try {
Write-Host "Restoring owner to TrustedInstaller for target folders (best-effort)..." -ForegroundColor Cyan
icacls $target64dir /setowner "NT SERVICE\TrustedInstaller" /T | Out-Null
if (Test-Path "C:\Windows\SysWOW64") {
icacls $target32dir /setowner "NT SERVICE\TrustedInstaller" /T | Out-Null
}
Write-Host "Ownership restored (best-effort)." -ForegroundColor Green
} catch {
Write-Host "Warning: could not restore ownership automatically: $($_.Exception.Message)" -ForegroundColor Yellow
}
# --- Launch mstsc if copy succeeded ---
if ($ok64) {
Write-Host "`nLaunching Remote Desktop..." -ForegroundColor Green
Start-Process "C:\Windows\System32\mstsc.exe"
exit 0
} elseif ($ok32) {
Write-Host "`nLaunching 32-bit Remote Desktop (SysWOW64)..." -ForegroundColor Green
Start-Process "C:\Windows\SysWOW64\mstsc.exe"
exit 0
} else {
Write-Host "`nERROR: MUI not copied to expected locations. Consider using another PC with the same Windows build or perform an in-place repair install." -ForegroundColor Red
exit 1
}
===================================================================================
How to use it:
Was this guide useful?
Your answer helps us keep BISONKB accurate and practical.