1

So I recently upgraded my terminal server environment (remote desktop services) from 2008 R2 to 2016. Most of our staff connects to a terminal server through Windows 10 IOT thin clients, but some of our staff are older and don't have the best vision and require some DPI scaling on the 24 inch 1920x1080 monitors we have, so on 2008 R2 I applied the following hotfix.

https://support.microsoft.com/en-us/help/2726399/you-cannot-change-the-dpi-setting-through-a-remote-desktop-session-on

This allowed users to change the DPI settings on their account and it would follow them regardless of what thin client they logged into where some of the thin clients are shared workstations who are used by different users on different days.

From the limited information I have been able to find and my own testing the DPI settings on 2016 are now inherited from parent, so if I change the DPI scaling on the thin client then it will actually follow, but the issue I run into is everyone who uses that thin client would have to deal with the DPI which is not ideal where someone is going to have a user experience they are not happy with. The fact that we use thin clients with write filters also makes it, so it is not an easy change for the users to switch the DPI settings when it's their turn on the thin client. Does anyone have any ideas on how I can enable this on the new server? I also saw some post about forcing it through an OU in group policy which would follow users, but I would like to avoid getting that crazy if at all possible. Any suggestions would be greatly appreciated. Thank you.

3 Answers 3

6

I agree that the problem can be fixed under Win 2016, but I had to do 2 things in parallel:

Goto „HKEY_CURRENT_USER\Control Panel\Desktop\LogPixels“
    => if LogPixels does not exist then create a new DWORD-value
    => Type in Decimal Value:
        96 for Smaller 100%
        120 for Medium 125%
        144 for Larger 150%
Then Goto „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\IgnoreClientDesktopScaleFactor“
    => if IgnoreClientDesktopScaleFactor does not exist then create a new DWORD-value
    => Type in Decimal Value:
        Turn on     1
        (Turn off   0)
1

The W2012 hotfix seems to work with w2016 now

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\IgnoreClientDesktopScaleFactor to 1

0

Manually set the IgnoreClientDesktopScaleFactor key value as stated above in the registry on each RDP/RDS Session Server.

I created a batch file and put it in the \users\public\desktop folder. Some users required switching back and forth because some of them have surface tablets where they could see almost nothing because it was so tiny. But then came back to the office on their thin clients and it was terrible. This was easier.

cls
@echo off
color 0e
echo.
echo Choose a desired scale from the list.
echo.
echo Enter 96  for 100%%
echo Enter 120 for 125%%
echo Enter 144 for 150%%
echo Enter 192 for 200%%  (Good for 4K monitors)
echo Enter 288 for 300%%  (Good for Surface Tablets where someone normally needs 150%%)
echo Enter 384 for 400%%  (Cannot think of any ideal use for this.)
echo.
set /p scale=Set the number from the table above for the desired zoom scale: 
reg add "HKCU\Control Panel\Desktop" /v LogPixels /t REG_DWORD /d %scale% /f
echo.
echo You must log off in order for the settings to apply.  Close all programs and
pause
logoff

ChangeScale.bat ScreenShot

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .