V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ungrown
V2EX  ›  Windows

才知道, mstsc 可以自由设置分辨率和窗口位置

  •  
  •   ungrown · 2021-12-21 19:16:34 +08:00 · 5584 次点击
    这是一个创建于 1062 天前的主题,其中的信息可能已经有所发展或是发生改变。
    按理说其实官方给出了足够详细的文档:
    https://social.technet.microsoft.com/wiki/contents/articles/665.how-to-set-the-monitor-for-a-remote-desktop-session-in-a-multi-monitor-setup.aspx
    不过貌似大多数博客文章问答资料基本上都不提这个文档,我也是后来搜 winposstr 这个关键词的时候发现这份文档的。

    其实早在很多年前的菜鸟阶段我就挺喜欢 Windows 自带的远程桌面客户端 mstsc 的,觉得它功能全、连接快、性能流畅。
    但后来,也就几年前,真正开始对远程桌面有需求了,却发现 mstsc 不能满足需要。我需要让远端桌面尽可能占满屏幕,但同时在底端显示本地的任务栏,这样能时刻关注本机状态,及时处理事件。mstsc 窗口模式下不能自动设置“非整”分辨率,而是对整个画面进行失真缩放,全屏模式则更难用。
    以至于被迫安装了 mRemoteNG 作为替代,但这货经常出现“画面中某个动画内容的矩形范围冻结僵死并保持原位置遮盖”的问题,用得一点不顺心。
    今天再接再厉又一次查找让 mstsc 无失真窗口化并保留本地任务栏的方法,功夫不负有心人,在某个英文论坛里的帖子里看到了思路,举一反三后成功实现了。

    其实就是改 mstsc 的配置文件,比如那个默认的 Default.rdp:
    - 把 screen mode 改成 id:i:1
    - 把 desktopheight 适当减小,在屏幕高度的基础上减掉任务栏的高度 40 ,再减掉窗口标题栏的高度 23
    - 把 winposstr 那一行删掉,让 mstsc 的窗口位置固定在左上角
    搞定!
    13 条回复    2022-07-17 15:02:23 +08:00
    xyfan
        1
    xyfan  
       2021-12-22 01:33:19 +08:00
    mstsc 是可以自适应分辨率的,分辨率随窗口大小变化。包括手机端,mac 端等不同微软官方 rdp 客户端上都有这个功能,很久没有遇到过失真缩放了。
    ungrown
        2
    ungrown  
    OP
       2021-12-22 08:56:46 +08:00
    @xyfan 不,它不会,也没看到有对应的选项。移动端、Mac 平台我不知道,win 自带的 mstsc 是不会自动根据窗口大小来变更分辨率的,只会按照屏幕分辨率来自动设置(这是固定值
    root01
        3
    root01  
       2021-12-22 08:57:38 +08:00
    win 我用 SimpleRemote 这个远程工具
    ungrown
        4
    ungrown  
    OP
       2021-12-22 09:01:06 +08:00   ❤️ 1
    @xyfan 为什么有些人总喜欢顶着别人的真实的实践认识来唱反调,或者至少给出一些尝试性的建议,比如你完全可以跟我说“你试试在标题栏右键看看菜单里有没有自动变更分辨率的选项呢”,这好歹也算建设性发言。否则,如果我不是已经反复确认过 mstsc 确实没有这项功能的话,岂不是又要因为你这随口一说的错误二手经验而浪费不少时间精力?
    krixaar
        5
    krixaar  
       2021-12-22 09:53:50 +08:00
    我也记得很久以前就有 Smart Sizing 了,虽然没用过: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff393693(v=ws.10)?redirectedfrom=MSDN

    但是看描述好像确实是 OP 描述的这个意思?
    krixaar
        6
    krixaar  
       2021-12-22 09:58:13 +08:00
    @krixaar #5 手头没东西试,如果 Smart Sizing 不是,那么 mstsc 还有 /w: /h:两个启动参数直接用,稍微方便那么一点点。
    ungrown
        7
    ungrown  
    OP
       2021-12-22 11:38:37 +08:00
    @krixaar #6
    启动参数和配置文件里的宽高应该是一回事,命令行确实在某些场景下更方便灵活,但思路是一致的。
    那个 smart sizing 看描述就是变形缩放,甚至都不是锁定比例的缩放,所以没必要纠结 mstsc 能不能自适应分辨率这个问题了,可以认定它就是没有这个功能。
    Shilion
        8
    Shilion  
       2021-12-22 12:11:14 +08:00
    同样走 RDP 协议的 Remote desktop (我猜测 1 楼也用的这个客户端 https://www.microsoft.com/en-us/p/microsoft-remote-desktop/9wzdncrfj3ps )就可以自动适应分辨率。
    ungrown
        9
    ungrown  
    OP
       2021-12-22 12:12:18 +08:00
    @root01 #3
    https://github.com/beckzhu/SimpleRemote
    试用了一下,挺好的,比 mRemoteNG 好多了,但因为 mstsc 是自带的,所以这个就当个后备工具吧
    ungrown
        10
    ungrown  
    OP
       2021-12-22 12:15:55 +08:00
    @Shilion #8
    这个是知晓的,但是我装不了,我自己的设备都是 win10 LTSB 2015 或者 2016 ,版本太低了,更何况 LTSB 要装商店 app 还需要额外配置。
    话说我看这个 app 的平台要求,怎么 win10 需要 16299 及以上,但却支持 win8.1 ?
    Osk
        11
    Osk  
       2021-12-26 03:45:51 +08:00
    官方的 3 种:
    uwp remote desktop: 支持动态调整分辨率, 但垃圾, 证书指纹乱显示(或者说没文档说明), 其它平台此 app 是 sha1 指纹; 长时间链接会死掉. 不知道修复没有.
    mstsc: 不支持动态调整分辨率...
    Remote Desktop (MSRDC): 支持动态调整分辨率, 然而, 这鬼软件没有输入 ip:port 这种连接方式? 不过可以周转, 用 mstsc 存配置为 .rdp 文件, 然后用它打开就行.
    rdcman: 似乎就是 mstsc 套壳, 管理一堆服务器时很好用, 现在加入 sysinternal suits 了
    Osk
        12
    Osk  
       2021-12-26 03:50:22 +08:00
    对了, mstsc 最 6 的功能还是 RemoteApp (vail/rail), 远程窗口和本地程序窗口无缝整合, 只显示窗口内容, 而不是整个远程端的桌面, 远程程序就像跑在本机一样显示在窗口中, 大部分情况下比动态调整分辨率好用多了.
    hanssx
        13
    hanssx  
       2022-07-17 15:02:23 +08:00
    这样可以,mstsc /w:3840 /h:2160
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5817 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:31 · PVG 14:31 · LAX 22:31 · JFK 01:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.