Windows OS Hub
  • Windows Server
    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 R2
    • Windows Server 2008 R2
    • SCCM
  • Active Directory
    • Active Directory Domain Services (AD DS)
    • Group Policies
  • Windows Clients
    • Windows 11
    • Windows 10
    • Windows 8
    • Windows 7
    • Windows XP
    • MS Office
    • Outlook
  • Virtualization
    • VMWare
    • Hyper-V
    • KVM
  • PowerShell
  • Exchange
  • Cloud
    • Azure
    • Microsoft 365
    • Office 365
  • Linux
    • CentOS
    • RHEL
    • Ubuntu
  • Home
  • About

Windows OS Hub

  • Windows Server
    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 R2
    • Windows Server 2008 R2
    • SCCM
  • Active Directory
    • Active Directory Domain Services (AD DS)
    • Group Policies
  • Windows Clients
    • Windows 11
    • Windows 10
    • Windows 8
    • Windows 7
    • Windows XP
    • MS Office
    • Outlook
  • Virtualization
    • VMWare
    • Hyper-V
    • KVM
  • PowerShell
  • Exchange
  • Cloud
    • Azure
    • Microsoft 365
    • Office 365
  • Linux
    • CentOS
    • RHEL
    • Ubuntu

 Windows OS Hub / Windows 10 / RDP Scaling Issue on High-DPI Displays in Windows 10

December 16, 2021 Windows 10

RDP Scaling Issue on High-DPI Displays in Windows 10

Windows 10 users often complain that on high-resolution (4k HiDPI) monitors text, icons and other elements of legacy applications (that are incompatible with High-DPI screen modes) become too small, blurry and unreadable.

This problem has been partially fixed in the Windows 10 Fall Creators Update (1703) due to extra support of dynamic DPI scaling, however, when you connecting to the desktop of a remote computer using RDP, the scaling problem still persists (normal scaling for mstsc.exe client is still not supported).

In Windows 8.1 and Windows 10, the local DPI is sent to the RDP connection, as a result, the icons and text in this window become very small and hard to read.

High DPI issues with RDP on Windows 10

As a workaround, you can use RDCMan application (by Microsoft) for RDP connections, but there is a solution for the native mstsc.exe client.

The point is that you can create a separate manifest file (.manifest) for the specific applications.

To make this feature work and in order Windows to get data from this manifest file first when starting the application, create a DWORD parameter (32-bit) with the name PreferExternalManifest and decimal value 1 in the following registry key: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide.

PreferExternalManifest - rdp scaling

You can create this registry parameter using the command:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f

Then in the % SystemRoot%\System32\ directory (it contains the mstsc.exe file), you need to create the mstsc.exe.manifest file with the following code:

<?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>

Note. You can get these values for the manifest file yourself using Resource Hacker. To do it, open mstsc.exe with Resource Hacker. Copy the data from Manifest->1 : 1033 section and add the section with the dpiAware flag and the value false.

Resource Hacker - mstsc.exeRestart Windows and try to connect to the remote desktop computer or server using mstsc.exe. As you can see, the contents of the RDP window is displayed normally now.

In the same way, you can create a manifest file for any application that doesn’t support the native scaling.

4 comments
0
Facebook Twitter Google + Pinterest
previous post
Configure Storage Spaces Direct (S2D) on Windows Server 2016
next post
Auto-Mount a VHD/VHDX File at Startup in Windows 10, 8.1

Related Reading

How to Connect VPN Before Windows Logon

November 14, 2023

Using WPAD (Web Proxy Auto-Discovery Protocol) on Windows

November 7, 2023

Zabbix: How to Get Data from PowerShell Scripts

October 27, 2023

Tracking Printer Usage with Windows Event Viewer Logs

October 19, 2023

How to Use Ansible to Manage Windows Machines

September 25, 2023

4 comments

Jordan Gilchriest February 25, 2020 - 5:10 pm

I have tested this on 3 windows 10 machines. The steps above work fine although for some reason we cant move the AX window from one screen to the other on any screen which is sitting on the right hand side of the laptop monitor. it works fine form right to left but not the left.

Reply
Miklos February 26, 2020 - 3:27 pm

It is not working on a Dell XPS 7390 13.3UHD with 300% scale. It worked on a thinkpad t470p 2560×1440 half year ago. I dont get it. Is the 300% scale the problem? It is very funny to login to a 2k8 r2 rdp with the 13.3 uhd resolution.

Reply
Harold.Julia June 15, 2020 - 4:39 am

Those who are unmotivated are always determined, those who are willing to stand up, and those who bite a goal are the most likely to succeed

Reply
this July 31, 2020 - 4:02 am

❤️ thanks

Reply

Leave a Comment Cancel Reply

Categories

  • Active Directory
  • Group Policies
  • Exchange Server
  • Microsoft 365
  • Azure
  • Windows 11
  • Windows 10
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • PowerShell
  • VMWare
  • Hyper-V
  • Linux
  • MS Office

Recent Posts

  • How to Connect VPN Before Windows Logon

    November 14, 2023
  • Removing Azure Arc Setup Feature on Windows Server 2022

    November 9, 2023
  • Using WPAD (Web Proxy Auto-Discovery Protocol) on Windows

    November 7, 2023
  • Send Emails with Microsoft Graph API and PowerShell

    November 6, 2023
  • Zabbix: How to Get Data from PowerShell Scripts

    October 27, 2023
  • Tracking Printer Usage with Windows Event Viewer Logs

    October 19, 2023
  • PowerShell: Configure Certificate-Based Authentication for Exchange Online (Azure)

    October 15, 2023
  • Reset Root Password in VMware ESXi

    October 12, 2023
  • How to Query and Change Teams User Presence Status with PowerShell

    October 8, 2023
  • How to Increase Size of Disk Partition in Ubuntu

    October 5, 2023

Follow us

  • Facebook
  • Twitter
  • Telegram
Popular Posts
  • Booting Windows 7 / 10 from GPT Disk on BIOS (non-UEFI) systems
  • Removable USB Flash Drive as Local HDD in Windows 10 / 7
  • How to increase KMS current count (count is insufficient)
  • How to Disable UAC Prompt for Specific Applications in Windows 10?
  • Managing Printers and Drivers with PowerShell in Windows 10 / Server 2016
  • Managing Printers from the Command Prompt in Windows 10 / 8.1
  • Fix: RDP Authentication Error Has Occurred – The Function Requested Is Not Supported
Footer Logo

@2014 - 2023 - Windows OS Hub. All about operating systems for sysadmins


Back To Top