Remote Desktop between two Windows 10 machines, how to disable DPI synchronization
Solution 1:
I found the best solution to a similar (but opposite?) issue was to use the UWP Remote Desktop app (via MS Store). It still uses the same RDP protocol, so should be able to connect to any machine the classic Remote Desktop client can.
Within the connection-specific settings, you have the option to specify an exact resolution and DPI scaling - the latter is not possible with the classic Remote Desktop client:
If you specify a fixed size, the UWP Remote Desktop app will instead stretch the display locally if you enter full screen mode. This is controllable via an app-global setting:
Solution 2:
I found an answer that works well. Posting it here in case anyone else has this problem in the future and is not familiar with the following.
Apparently (I didn't know this), in Windows 10 there are two different Remote Desktop applications. There is "Remote Desktop Connection" and "Remote Desktop App". You can see them if you do a search for "Remote":
These are not the same.
Remote Desktop Connection is the classic one that I have always used (and thought was the only one), looking like this:
And Remote Desktop App is a Windows 10 app that looks like this:
Remote Desktop Connection reads and writes .rdp files and does not give the option of adjusting the target scaling factor.
Remote Desktop App does not read .rdp files, you set up the target machines within it as "saved desktops", but it does give the option of adjusting the target scaling factor. In fact, the display settings are exactly the ones that were posted by Bob as used by UWP Remote Desktop, which makes sense if UWP is using the same RDP protocol, it's probably using the same app. However Remote Desktop App is free and comes with Windows.
Since I connect to both a Windows 10 machine and also to a Windows 7 machine, I tested both the Connection and App versions against both target machines, to compare behavior and performance.
The App was considerably slower connecting to the Windows 7 machine. But given that Windows 7 doesn't have a concept of "125% scaling" anyway, I don't need that feature, so I stayed with the Connection version.
The App and the Connection version were pretty much the same speed when connecting to the Windows 10 machine, so for that one I switched to the App.
Final result: I'm using Remote Desktop Connection to talk to Windows 7, and Remote Desktop App to talk to Windows 10. My client machine is at 125% scaling. The target machines are at 100% scaling. All running full screen.
The problem is now solved and I thank everyone for your assistance.
Solution 3:
If I'm understanding your goals correctly, there is a registry key called "IgnoreClientDesktopScaleFactor" that might do what you need. It's documented here, as part of a KB for a RemoteApp issue: https://support.microsoft.com/en-us/help/3026738/remoteapp-window-is-too-large-or-too-small-when-you-use-rdp-to-run-a-r
Basically, you would disable DPI synchronization by setting IgnoreClientDesktopScaleFactor to zero (edit: this has to be done on the server though - the client machine won't read this key). While the KB article is about RemoteApp, the registry key doesn't just apply to RemoteApp - it should work in full desktop sessions as well. It's worth noting that disabling synchronization doesn't automatically make the remote DPI configurable though - it apparently just reverts to 100%, though that happens to be what you want anyway.
After a quick check it looks like this key does still work as of Windows Server 2019 (roughly equivalent to Windows 10 1809).