远程桌面融合技术
饱受毒瘤软件的侵蚀与蹂蹋?了解与虚拟机融合技术相似的远程桌面融合技术,彻底将你的毒瘤软件封杀在远程虚拟机里面吧!
安装虚拟机
- 以 Vmware 为例
-
安装
配置远程桌面
RDS
远程桌面服务 (RDS) 是一个卓越的平台,可以生成虚拟化解决方案来满足每个最终客户的需求,包括交付独立的虚拟化应用程序、提供安全的移动和远程桌面访问,使最终用户能够从云运行其应用程序和桌面。
默认情况下,Windows Server 允许最多两个用户同时登录。如果要支持更多的用户并发登录,则需要启用并配置远程桌面授权服务并从微软获取相应的 客户端访问许可证(Client Access Licenses,CALs) 了。如果没有授权,则第三个用户无法登录,报错如下:
安装 RDS
-
在服务器管理器中,点击 “添加角色和功能”,选择 “基于角色或基于角色的安装”。
-
在角色服务页面,勾选
远程桌面会话主机
和远程桌面授权
两项角色服务(缺一不可),在弹出的窗口中单击 “添加功能”,其他几项按需勾选,然后单击 “下一步”。
-
功能安装完成后,需要重启服务器才能完成安装。
激活 RDS
-
打开远程桌面授权管理器
-
选择激活服务器 > 下一步
-
确保服务器可以连接到互联网并正确配置 DNS,默认自动连接即可,点击下一步。
-
填写姓名字、公司,选择地区。任意填写即可。点击下一步。
-
下一步需要填写邮件等信息,无需填写。直接点下一步即可。
-
选择许可证计划为企业协议
-
协议号码填写为 6565792,点击下一步。
协议号码可以填写 6565792,4954438,6879321,5296992
-
产品版本选择为 Windows Server 2022 ,许可类型为 RDS 每用户 CAL,数量为 9999
-
至此激活完成
组策略
- 进入组策略
运行– gpedit.msc
会话时间限制
设置 RemoteApp 会话的注销时间限制
计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 会话时间限制 –> 设置 RemoteApp 会话的注销时间限制 -> 已启用 -> 立即
连接
限制连接的数量
计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 连接 –> 限制连接的数量 -> 已启用 -> 999999
限制到单独的远程桌面服务会话
计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 连接 –> 将远程桌面服务用户限制到单独的远程桌面服务会话 -> 已禁用
授权
使用指定的远程桌面许可证服务器
计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 授权 –> 使用指定的远程桌面许可证服务器 -> 已启用 -> 127.0.0.1
使用
127.0.0.1
就可以使用本机了
设置远程桌面授权模式
计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 授权 –> 设置远程桌面授权模式 -> 已启用 -> 按用户
远程会话环境
-
计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面服务 -> 远程桌面会话主机 –> 远程会话环境
-
将 将硬件图形适配器应用于所有远程桌面服务会话 和 配置远程桌面连接的 H.264/AVC 硬件编码 设为启用。
立即生效组策略
gpupdate /Force
注册表
启用 60 帧
默认远程桌面显示帧率只有 30FPS,更高需要修改注册便实现(最高有效 60FPS)。
- 也可以把下面代码部分复制到记事本,保存为 60fps.reg ,双击导入即可
- 60fps.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
"DWMFRAMEINTERVAL"=dword:0000000f
-
启动 注册表编辑器
-
转到以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
-
在 编辑 菜单上,选择 新建 ,然后选择 DWORD(32 位)值
-
键入
DWMFRAMEINTERVAL
,然后按 Enter。 -
右键单击
DWMFRAMEINTERVAL
,然后选择 修改 -
选择 十进制,在 值 数据框中键入
15
,然后选择 确定。 这会将最大帧速率设置为 60 FPS。 -
退出注册表编辑器,然后重新启动计算机。
在线测试帧率:https://testufo.com
融合软件
安装融合软件
设置融合软件
以 QQ 为例
非 server 版系统
非 server 版系统使用Remote App需要两个条件:
- 安装并配置 RDP Wrapper
- 设置多个用户,一个 app 一个用户。它不能像 server 版系统那样一个用户可以同时登录多个远程桌面
RDP Wrapper
- 安装:
install
- 配置:
RDPConf
- 点击
RDPConf
大概率不会显示绿色的字样,需要下载配置文件rdpwrap.ini
https://github.com/sebaxakerhtc/rdpwrap.ini/blob/master/rdpwrap.ini
rdpwrap.ini
配置文件路径:
"C:\Program Files\RDP Wrapper\rdpwrap.ini"
- 修改这个文件就行了
多用户运行
例如:
用 user1 运行 chrome
用 user2 运行 edge
创建用户
- 这样
user1
和user2
都能访问远程桌面了,都能使用 Remote Apps 了
在 Windows 的远程桌面连接中,如果同一 IP 地址(如 192.168.100.1)要用不同用户名进行多个会话,默认情况下会自动复用最近的用户名信息。这是因为 RDP 客户端在保存和重用 .rdp 文件时会缓存上次的凭据。
设置 hosts
- 软件设置
- 配置文件
配置文件
alternate full address:s:192.168.9.25
alternate shell:s:rdpinit.exe
full address:s:192.168.9.25
remoteapplicationmode:i:1
remoteapplicationname:s:WeChat
remoteapplicationprogram:s:||WeChat
alternate full address:s:192.168.9.25
指定备用的主机地址(IP地址或主机名),用于在 full address 无法连接时尝试连接的地址。s: 表示这是一个字符串类型的设置项。alternate shell:s:rdpinit.exe
指定远程会话开始时启动的初始程序。这里 rdpinit.exe 是默认的 RDP 初始化程序,用于远程桌面的初始化任务。可用于指定其他初始应用程序路径。full address:s:192.168.9.25
配置远程主机的主要 IP 地址或主机名,这是客户端尝试连接的地址。若无法连接此地址,则可能会转到 alternate full address 指定的备用地址。remoteapplicationmode:i:1
启用远程应用程序模式。设置为 1 表示启用,即在会话中运行特定的应用程序,而不是整个桌面。这对于仅需要访问特定应用的情况(例如使用 WeChat)非常有用。i: 表示这是一个整数类型的设置项。remoteapplicationname:s:WeChat
设置远程应用程序的显示名称(例如在任务栏或窗口标题中显示为 “WeChat”)。这与 remoteapplicationprogram 设置相对应,用于识别应用程序。remoteapplicationprogram:s:||WeChat
指定要在远程会话中启动的实际程序。这里的 ||WeChat 是远程应用的快捷名称,用于直接启动该程序(WeChat)。双竖线 || 表示这是一个远程应用的预定义名称,不是具体路径。
disableremoteappcapscheck:i:1
prompt for credentials:i:1
promptcredentialonce:i:0
redirectcomports:i:1
span monitors:i:1
use multimon:i:1
disableremoteappcapscheck:i:1
禁用远程应用程序的功能检查。设置为 1 时,客户端会忽略远程桌面服务器对远程应用程序兼容性和功能的检查。这个选项通常用于解决某些应用程序在远程模式下不兼容的问题。prompt for credentials:i:1
启用凭据提示。设置为 1 表示在连接之前会提示用户输入凭据(用户名和密码),即使 .rdp 文件中已经指定了凭据。这可以增加连接的安全性。promptcredentialonce:i:0
控制凭据提示的频率。设置为 0 时,每次连接都将提示输入凭据;设置为 1 时,连接期间只会提示一次。这通常与多应用程序会话有关。redirectcomports:i:1
启用 COM 端口重定向。设置为 1 表示允许将本地计算机的 COM 端口重定向到远程会话,使远程会话可以访问本地的 COM 端口设备(例如串口设备)。span monitors:i:1
启用显示器扩展。设置为 1 表示会话可以扩展到多个显示器上,但不是多显示器的全屏模式。这适用于希望将 RDP 窗口跨多个屏幕的场景。use multimon:i:1
启用多显示器支持。设置为 1 表示启用 RDP 的多显示器功能,使远程会话可以在多个显示器上以全屏模式显示。这适合多屏幕工作环境。
其他
开机自启 vmware 虚拟机
设置启动脚本
-
将vmware工具路径配置到环境变量,这样就能使用
vmrun
这个工具了
-
写一个 bat 脚本,将红色部分替换为自己的虚拟机路径
vmrun start "E:\Vmware\Windows Server 2025\Windows Server 2025.vmx"
- 写一个 vbs 脚本,将绿色部分替换为 bat 脚本所在路径
- 这一步主要是隐藏 bat 运行时的黑框
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "D:\RDP\2025\start_server2025.bat",0
vmware 开机启动
- 设置开机启动有多种方式,这里使用开始运行菜单
- 这种方法能在 任务管理器 里看到启动项目
-
先给 vbs 脚本创建一个快捷方式
-
Win + R 快捷键打开运行窗口;输入
shell:Common Startup
-
将快捷方式存放在启动菜单
-
完成,这样就能开机自动启动 vmware 虚拟机了
输入法指示器
如果你没在这次会话中隐藏它,结束 remote app 时远程桌面连接的进程不会完全断掉,而一直保留这个小小的 ime 指示器。这就让人感觉十分不爽了。
解决办法:用和 remote app 相同的用户远程连到服务器,在语言设置中关掉输入法指示器(本地登入后修改输入法设置并不能影响到 remote app 下的输入法展示行为)
每运行一个远程连接就会发现重新登录了一个用户
通知和托盘图标
remote app 的方式使用 chrome 的话,如果已经有一个会话打开了 chrome ,那么新的 remote app 会话就不能创建新的 chrome 窗口,基于 chromium 和 electron 的应用程序没有适配好 remote app 。
解决办法:
-
做好用户之间的隔离,比如用
wechat
用户登录微信,用qq
用户登录qq,但实测发现当你用wechat
登录微信后,后续运行qq的默认也是wechat
账户,这样的话qq 图标还是不会出现在托盘 -
创建多个虚拟机(目前用这个)
参考
- Windows Server 2022 RDS 配置授权激活服务
- windows server 2019 多用户远程桌面解决
- Windows Server 调整策略实现 999999 个远程用户用时登录
- 基于 Windows 的远程会话中的帧速率限制为 30 FPS
- 远程桌面优化避坑指南
- 解决运行 Remote App 时额外显示的输入法指示器
- 我的 AIO 进化史——探访 RemoteApp
- QQ electron 用 remote 拖出来没有通知和托盘图标
- VMware workstation设置 虚拟机开机启动_vmware自动开启虚拟机
- 绝对干货!使用远程桌面融合技术将你的毒瘤软件封杀在虚拟机中吧!
评论区