How to fix Remote Desktop DPI scaling with high resolution laptops

More and more laptops are equipped with high-resolution screens, like the Microsoft Surfaces and (in my case) the Dell XPS devices. Do you also have a very high-resolution display on your laptop like I do? And is everything too small to see within your Remote Desktop Connection, I found the following solution very useful.

This issue is caused by lack of not being DPI scaling aware of the Remote Desktop Client. If you open a Remote Desktop connection to a server or other computer the native resolution of the computer is used instead of the scaling to 1920×1080, so you’ll get very small icons etc. There are (Remote Desktop/Management) tools available who seems to fix this issue also. But I was looking for a solution that works with my current mstsc.exe. The solution is to create a manifest file. A manifest file is a (XML) configuration file to configure special settings, in this case for mstsc.exe. Follow the steps below :

First, tell Windows to look for a manifest file for an application by default. This can be done by setting a registry entry.

Open regedit and navigate to the registry key:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
Right-click, select NEW -> DWORD (32 bit) Value
Type PreferExternalManifest and then press ENTER.
Right-click PreferExternalManifest, and then click Modify.
Enter Value Data 1 and select Decimal.
Click OK. Exit Registry Editor.

Next step is to make the manifest file, mstsc.exe.manifest. Copy the contents below and put it in Notepad or similar tool and save it to a file as %SystemRoot%\System32\mstsc.exe.manifest. Download of the file is also available, here. Important is that you save the file in the same directory as the Remote Desktop Client executable (mstsc.exe).

You can also copy/paste the following code into the manifest file :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>

There are a couple of things you have to keep in mind. The mouse pointer still stays small. I found this not so big an issue and still haven’t found a workaround for this. I’ve heard that updates like Microsoft 1709 overwrites the manifest file. So you have to re-apply the manifest file. I’ve also noticed that the warning do you trust this certificate warning doesn’t appear any longer 🙂

 

1 Comment

  1. Hi there, this helped me hugely. Thx heaps.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.