侧边栏壁纸
博主头像
Narutoの博客

行动起来,活在当下

  • 累计撰写 45 篇文章
  • 累计创建 24 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

远程桌面融合技术

Naruto
2024-11-06 / 0 评论 / 0 点赞 / 85 阅读 / 0 字

远程桌面融合技术

饱受毒瘤软件的侵蚀与蹂蹋?了解与虚拟机融合技术相似的远程桌面融合技术,彻底将你的毒瘤软件封杀在远程虚拟机里面吧!

项目地址:https://github.com/kimmknight/remoteapptool

安装虚拟机

  • 以 Vmware 为例
  1. 安装 Vmware:VMware-workstation-full-17.6.1-24319023.exe

  2. 下载 iso:zh-cn_windows_server_2025_x64_dvd_1d93dd12.iso

  3. 安装
    安装虚拟机 1
    安装虚拟机 2
    安装虚拟机 3

配置远程桌面

RDS

远程桌面服务 (RDS) 是一个卓越的平台,可以生成虚拟化解决方案来满足每个最终客户的需求,包括交付独立的虚拟化应用程序、提供安全的移动和远程桌面访问,使最终用户能够从云运行其应用程序和桌面。

默认情况下,Windows Server 允许最多两个用户同时登录。如果要支持更多的用户并发登录,则需要启用并配置远程桌面授权服务并从微软获取相应的 客户端访问许可证(Client Access Licenses,CALs) 了。如果没有授权,则第三个用户无法登录,报错如下:

安装 RDS

安装 RDS1

  1. 在服务器管理器中,点击 “添加角色和功能”,选择 “基于角色或基于角色的安装”
    安装 RDS2
    安装 RDS3

  2. 在角色服务页面,勾选 远程桌面会话主机远程桌面授权 两项角色服务(缺一不可),在弹出的窗口中单击 “添加功能”,其他几项按需勾选,然后单击 “下一步”
    安装 RDS4

  3. 功能安装完成后,需要重启服务器才能完成安装。

激活 RDS

  1. 打开远程桌面授权管理器
    激活 RDS1
    激活 RDS2

  2. 选择激活服务器 > 下一步
    激活 RDS3

  3. 确保服务器可以连接到互联网并正确配置 DNS,默认自动连接即可,点击下一步。

  4. 填写姓名字、公司,选择地区。任意填写即可。点击下一步。
    激活 RDS4

  5. 下一步需要填写邮件等信息,无需填写。直接点下一步即可。

  6. 选择许可证计划为企业协议
    激活 RDS5

  7. 协议号码填写为 6565792,点击下一步。

协议号码可以填写 6565792,4954438,6879321,5296992

激活 RDS6

  1. 产品版本选择为 Windows Server 2022 ,许可类型为 RDS 每用户 CAL,数量为 9999
    激活 RDS7
    激活 RDS8

  2. 至此激活完成
    激活 RDS9

组策略

  1. 进入组策略

运行– gpedit.msc

组策略1

会话时间限制

设置 RemoteApp 会话的注销时间限制

计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 会话时间限制 –> 设置 RemoteApp 会话的注销时间限制 -> 已启用 -> 立即
设置 RemoteApp 会话的注销时间限制

连接

限制连接的数量

计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 连接 –> 限制连接的数量 -> 已启用 -> 999999

限制连接的数量

限制到单独的远程桌面服务会话

计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 连接 –> 将远程桌面服务用户限制到单独的远程桌面服务会话 -> 已禁用

限制到单独的远程桌面服务会话

授权

使用指定的远程桌面许可证服务器

计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 授权 –> 使用指定的远程桌面许可证服务器 -> 已启用 -> 127.0.0.1

使用 127.0.0.1 就可以使用本机了

使用指定的远程桌面许可证服务器1
使用指定的远程桌面许可证服务器2

设置远程桌面授权模式

计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面会话主机 -> 授权 –> 设置远程桌面授权模式 -> 已启用 -> 按用户

设置远程桌面授权模式

远程会话环境

  1. 计算机配置 –> 管理模板 –> Windows 组件 –> 远程桌面服务 –> 远程桌面服务 -> 远程桌面会话主机 –> 远程会话环境

  2. 将硬件图形适配器应用于所有远程桌面服务会话配置远程桌面连接的 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
  1. 启动 注册表编辑器

  2. 转到以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

  3. 编辑 菜单上,选择 新建 ,然后选择 DWORD(32 位)值

  4. 键入 DWMFRAMEINTERVAL ,然后按 Enter。

  5. 右键单击 DWMFRAMEINTERVAL ,然后选择 修改

  6. 选择 十进制,在 数据框中键入 15,然后选择 确定。 这会将最大帧速率设置为 60 FPS。

  7. 退出注册表编辑器,然后重新启动计算机。

启用 60 帧1

在线测试帧率:https://testufo.com

启用 60 帧2

融合软件

安装融合软件

地址:https://github.com/kimmknight/remoteapptool

配置融合软件

设置融合软件

以 QQ 为例

设置融合软件1
设置融合软件2

非 server 版系统

非 server 版系统使用Remote App需要两个条件:

  1. 安装并配置 RDP Wrapper
  2. 设置多个用户,一个 app 一个用户。它不能像 server 版系统那样一个用户可以同时登录多个远程桌面

RDP Wrapper

项目地址:https://github.com/stascorp/rdpwrap

  1. 安装:install
  2. 配置:RDPConf
  1. rdpwrap.ini

配置文件路径:

"C:\Program Files\RDP Wrapper\rdpwrap.ini"

  • 修改这个文件就行了

多用户运行

例如:
user1 运行 chrome
user2 运行 edge

创建用户


  • 这样 user1user2 都能访问远程桌面了,都能使用 Remote Apps

在 Windows 的远程桌面连接中,如果同一 IP 地址(如 192.168.100.1)要用不同用户名进行多个会话,默认情况下会自动复用最近的用户名信息。这是因为 RDP 客户端在保存和重用 .rdp 文件时会缓存上次的凭据。

设置 hosts

这里使用 SwitchHosts
项目地址:https://github.com/oldj/SwitchHosts

  1. 软件设置
  2. 配置文件

配置文件

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 虚拟机

设置启动脚本

  1. 将vmware工具路径配置到环境变量,这样就能使用 vmrun 这个工具了

  2. 写一个 bat 脚本,将红色部分替换为自己的虚拟机路径

vmrun start "E:\Vmware\Windows Server 2025\Windows Server 2025.vmx"

  1. 写一个 vbs 脚本,将绿色部分替换为 bat 脚本所在路径
  • 这一步主要是隐藏 bat 运行时的黑框
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "D:\RDP\2025\start_server2025.bat",0

vmware 开机启动

  • 设置开机启动有多种方式,这里使用开始运行菜单
  • 这种方法能在 任务管理器 里看到启动项目
  1. 先给 vbs 脚本创建一个快捷方式

  2. Win + R 快捷键打开运行窗口;输入

shell:Common Startup

  1. 将快捷方式存放在启动菜单

  2. 完成,这样就能开机自动启动 vmware 虚拟机了

输入法指示器

如果你没在这次会话中隐藏它,结束 remote app 时远程桌面连接的进程不会完全断掉,而一直保留这个小小的 ime 指示器。这就让人感觉十分不爽了。

解决办法:用和 remote app 相同的用户远程连到服务器,在语言设置中关掉输入法指示器(本地登入后修改输入法设置并不能影响到 remote app 下的输入法展示行为)

每运行一个远程连接就会发现重新登录了一个用户
输入法指示器1
输入法指示器2
输入法指示器3
输入法指示器4

通知和托盘图标

remote app 的方式使用 chrome 的话,如果已经有一个会话打开了 chrome ,那么新的 remote app 会话就不能创建新的 chrome 窗口,基于 chromium 和 electron 的应用程序没有适配好 remote app 。

解决办法:

  1. 做好用户之间的隔离,比如用 wechat 用户登录微信,用 qq 用户登录qq,但实测发现当你用 wechat 登录微信后,后续运行qq的默认也是 wechat 账户,这样的话qq 图标还是不会出现在托盘

  2. 创建多个虚拟机(目前用这个)

参考

  1. Windows Server 2022 RDS 配置授权激活服务
  2. windows server 2019 多用户远程桌面解决
  3. Windows Server 调整策略实现 999999 个远程用户用时登录
  4. 基于 Windows 的远程会话中的帧速率限制为 30 FPS
  5. 远程桌面优化避坑指南
  6. 解决运行 Remote App 时额外显示的输入法指示器
  7. 我的 AIO 进化史——探访 RemoteApp
  8. QQ electron 用 remote 拖出来没有通知和托盘图标
  9. VMware workstation设置 虚拟机开机启动_vmware自动开启虚拟机
  10. 绝对干货!使用远程桌面融合技术将你的毒瘤软件封杀在虚拟机中吧!
0

评论区