You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现无人连接RDP时的正常屏幕共享?

如何实现无人连接RDP时的正常屏幕共享?

嗨,这个问题我之前帮朋友排查过,太懂这种尴尬了——RDP断开后会话默认会暂停桌面渲染,你的屏幕共享工具自然抓不到画面。给你几个亲测有效的解决思路:

思路一:修改RDP会话配置,让断开后保持会话活跃

Windows系统默认在RDP断开后会暂停或注销会话,我们可以通过组策略修改这个行为:

  • 按下Win+R输入gpedit.msc打开本地组策略编辑器
  • 依次展开:计算机配置 > 管理模板 > Windows组件 > 远程桌面服务 > 远程桌面会话主机 > 会话时间限制
  • 启用「设置断开连接的会话的时间限制」,选择「从不」
  • 再到「会话状态」选项里,设置「当会话断开连接时」为「保持会话处于活动状态」
  • 保存设置后重启远程桌面服务,断开RDP后会话就不会被暂停了

思路二:安装虚拟显示适配器,让系统认为始终有显示器连接

如果修改会话配置没用,那可以给服务器装个虚拟显卡驱动,这样哪怕没有物理显示器、RDP也断开,系统依然会维持一个虚拟桌面:

  • 找个靠谱的免费虚拟显示器工具(比如常见的虚拟显卡驱动工具),安装后在显示设置里就能看到新增的虚拟显示器
  • 设置这个虚拟显示器为默认显示,之后屏幕共享工具就能正常捕获画面了,哪怕没人连RDP

思路三:修改屏幕共享代码的捕获逻辑

如果上面的方法都不想用,那可以从代码层面解决——不要依赖用户会话的桌面,改用不绑定会话的捕获方式:

  • 比如在Windows下,放弃依赖当前活跃会话的GDI捕获,改用DirectX或者Windows Graphics Capture API来抓取虚拟桌面帧
  • 要是你的代码是跑在服务进程里(而不是用户会话进程),可以尝试使用服务级别的屏幕捕获权限(不过要注意权限配置,避免被系统拦截)

另外要注意:如果是Windows Server系统,要确认远程桌面服务的授权模式是「每用户」还是「每设备」,确保有足够的会话许可,不然系统可能会强制注销闲置会话。

备注:内容来源于stack exchange,提问作者Sphinx

火山引擎 最新活动