想从常用笔记本里远程桌面到另一台电脑上的 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/>。转载请保留此信息及相应链接。
找到个方法,因为RDCMan版本过老,所以默认禁用了DPI设置,启用就行了
不过启用后好像有点模糊。。。
谢谢分享 :)
你说的这个有点模糊的现象,估计跟使用 xfreerdp 配合
/w
、/h
和/smart-sizing
来强制放大桌面的情况是一个道理。