This is the twentieth first part of the Availability Anywhere series. For your convenience you can find other parts in the table of contents in Part 1 – Connecting to SSH tunnel automatically in Windows
I recently installed a set of November 23′ updates for Windows 10 and mstsc.exe disappeared! That was definitely unexpected and I couldn’t find a solution on the Internet. I decided to copy mstsc.exe from some other machine and it wasn’t as simple as possible.
TL;DR; Those are the files that you may need:
C:\Windows\System32\mstsc.exe
C:\Windows\System32\mstscax.dll
C:\Windows\System32\en-US\mstsc.exe.mui
C:\Windows\System32\en-US\mstscax.dll.mui
C:\Windows\System32\wbem\en-US\mstsc.mfl
C:\Windows\System32\wbem\en-US\mstscax.mfl
C:\Windows\SystemResources\mstsc.exe.mun
C:\Windows\SystemResources\mstscax.dll.mun
You may need similar files from C:\Windows\SysWOW64
or for different locales like pl-PL
.
When you skip files in SystemResources
, then your mstsc.exe will look like this (attaching this image so Google can index it and people have easier time finding things like “mstsc.exe no options” or “mstsc.exe UI broken” or “mstsc.exe no settings” or “mstsc.exe no show options”):
Copying files into C:\Windows\SystemResources
is not as simple as it may seem. That directory is owned by TrustedInstaller
and even SYSTEM
has no permissions to write there. You can run shell like in this StackOverflow answer which I copy here just in case (run this in PowerShell started as Administrator):
1 2 3 4 |
Install-Module -Name NtObjectManager Start-Service -Name TrustedInstaller $parent = Get-NtProcess -ServiceName TrustedInstaller $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent |
Even though whoami
shows nt authority\system
, this effectively runs as TrustedInstaller
.
If you wonder how I found out about these files, I used ProcessMonitor and looked for CreateFile
operation that failed.