远程桌面到 Windows 10 Pro 上的 DPI 问题

想从常用笔记本里远程桌面到另一台电脑上的 Windows 10 Pro 进行测试。遇到一些坑,最大的问题比如客户端 DPI 高而导致远程桌面显示的字太小,无法将本地的麦克风作为远程桌面上应用程序的声音输入,等等。花了很多时间查找问题,所以做个简单的记录。这篇记录 DPI 问题及解决方法。

先说较为简单的一个,DPI 的问题。Windows 10 Pro 似乎还是不支持将桌面上设置的 DPI 应用到远程桌面上。Superuser 问答网站上参考 1参考 2 的方法都没解决问题,因为,

  • 微软的那个 Remote Desktop Connection Manager (RDCMan) 2.7 现在已经没有了。顺便说一句,如果使用的客户端(Client)运行的是 Windows 10 系统的话,微软建议大家不要使用 RDCMan,而最好使用「远程桌面客户端 (MSTSC)」或者通用的 UWP 应用「微软远程桌面 (Microsoft Remote Desktop)」。因为前者过于老旧,没有跟上 Windows 前进的步伐(被抛弃了)。
  • 我觉得那个开源的远程桌面软件 mRemoteNG 应该会很有希望解决问题,但是我没有尝试。为啥不尝试呢,因为需要检查安装一些 Windows 7 补丁,而我这个运行 Windows 7 的「电脑」实际上是一个老朽的虚拟机,已经不适合联网升级了。
  • 更重要的是,我希望能直接在 Linux 桌面上解决问题而不是为了做这么点事情而单开一个虚拟机。
  • 当然还有最重要的,隔离期间因为烦躁而可劲儿折腾。

很可能是因为 Host 端的问题,Linux 里的 xfreerdp 虽然说是可以直接使用 /scale:140调节应用的 DPI 而使用 /scale-desktop:140 参数放大桌面来解决问题,可似乎实际上也没有效果。最后退而求其次,使用/w/h/smart-sizing配合着强制放大桌面,虽然看着粗糙但是能达到目的。比如 /w:1200 /h:800 /smart-sizing:1800x1200 就是放大 1.5 倍,将实际桌面像素 1200×800 显示到 1800×1200 大小的屏幕上。

当然前面提到的两个参考答案里也提到了一些其它的偏方,比如,

  • 直接将 Host 端的桌面分辨率调低,而不是调节 DPI(Host 上的 DPI 设置对远程桌面不管用,至少目前看来是这样)。这个方法应该跟上面说的 xfreerdp 里的 smart-sizing 视觉效果差不多。
  • 有人说是因为 Windows 7 (或者 Server 2008) 不支持 RDP protocol version 8,而远程 DPI 设定是在 RDP 8 中才引入的。解决方法是将服务器端(Host)升级到 Windows 7 SP1 (或者 Server 2008R2),并且安装补丁。但是我只想说,我的 Host 端是 Windows 10。所以可能客户端也需要升级并且打同样的补丁?

总之这是个让人烦躁的事情。如果不是经常用的话,还是挑一个能用的解决方法就算了吧。

然后,如果显卡不错,还可以将 Host 上的硬件解码打开。Host 上的 Windows 10 Pro 里的组策略(运行 gpedit.msc打开的那个配置程序),依次进入「计算机管理」,「管理模板」,「Windows 组件」,「远程桌面服务」,「远程桌面会话主机」,「远程会话环境」,将其中的「Config H.264/AVC hardware encoding support for Remote Desktop Connections」和「Prioritize H.264/AVC 444 graphics mode for Remote Desktop Connections」都打开。这里有张截图,英文版的。还可以将其中的「Use hardware graphic adapters for all Remote Desktop Services sessions」(也就是使用硬件显卡而不是 Microsoft Remote Display Adapter 这个软件显卡来处理远程桌面) 也打开。至于这么操作有没有实际的效果就很难说了。我目前还没有体会到。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/dpi-issue-with-rdp-to-windows-10-pro/>。转载请保留此信息及相应链接。

雁过留声,人过留名

电子邮件地址不会被公开。 必填项已用*标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据