Windows Remote Desktop Licensing (RDL) 服务起源于 Microsoft 的远程桌面服务(Remote Desktop Services, RDS),最初被称为终端服务(Terminal Services)。以下是一些关键的历史背景和发展过程:

Windows Remote Desktop Licensing (RDL) 服务可能面临的漏洞包括:

  1. 未经授权的访问:攻击者可能利用漏洞绕过许可证验证,非法访问远程桌面服务。

  2. 许可证伪造:漏洞可能允许伪造或篡改许可证信息,从而绕过许可证要求。

  3. 服务中断:漏洞可能导致许可证服务器的服务中断或崩溃,影响远程桌面服务的可用性。

  4. 数据泄露:如果许可证数据库未妥善保护,敏感许可证数据可能被泄露或盗取。

  5. 远程执行:攻击者可能通过利用服务漏洞执行远程代码,获得对服务器的控制权。

  6. 信息泄露:漏洞可能使攻击者能够获取系统配置或许可证信息,从而进行进一步的攻击。

  7. 权限提升:某些漏洞可能允许普通用户提升权限,获取管理级别的访问权限。

  8. 服务劫持:攻击者可能通过特定漏洞劫持许可证服务,干扰正常操作或获取非法收益。

    1. 配置错误:错误的配置可能导致许可证服务的安全性降低,如开放不必要的端口或未启用适当的安全设置。

    2. 拒绝服务攻击:攻击者可能利用服务漏洞进行拒绝服务攻击,使远程桌面服务不可用。

    3. 社会工程学攻击:攻击者可能利用社交工程技巧来获取许可证信息或管理权限,从而绕过技术控制。

    4. 补丁管理不足:未及时应用安全补丁可能使系统暴露在已知的安全漏洞之下。

    5. 日志篡改:攻击者可能试图篡改许可证服务的日志文件,掩盖非法活动或进行审计绕过。

    6. 加密弱点:如果许可证通信未使用强加密协议,攻击者可能通过中间人攻击获取敏感数据。

    7. 接口漏洞:许可证服务的接口可能存在漏洞,攻击者可以利用这些漏洞进行未经授权的操作或数据访问。

    要保护远程桌面许可证服务免受这些风险的影响,管理员应采取以下措施:

    • 定期应用系统和服务的安全补丁。
    • 使用强加密协议和安全配置。
    • 实施强密码策略和多因素认证。
    • 监控和分析日志,以检测异常活动。
    • 定期进行安全评估和渗透测试。

    这些措施有助于提高系统的安全性,减少漏洞带来的风险。

这些漏洞可能会影响远程桌面服务的安全性和稳定性,因此需要及时更新和补丁管理。

Windows Remote Desktop Licensing(RD Licensing / RDL,远程桌面授权服务)完整拆解解构

术语澄清
 
官方名称:Remote Desktop Licensing(RD Licensing),旧称 Terminal Server Licensing;业内常简称 RDL。
 
作用:统一管理、分发 RDS CAL(远程桌面客户端访问许可证);为 RDS 会话主机 (RDSH)、VDI 虚拟桌面提供授权票据校验。
 
重要区分:Windows 单机自带 2 个管理员远程连接通道不依赖 RD 授权服务;多用户 RDS/VDI 场景必须部署 RD 授权服务器。

一、底层原理

1. 整体架构模型

三层协作模型
  1. RD 会话主机(RDSH/RDVH):运行TermService,接收 RDP 连接,发起许可证查询;
  2. RD Licensing Server(授权服务器):进程lserver.exe,维护 CAL 许可证池、发放临时 / 正式 CAL 票据;
  3. Microsoft Clearinghouse(微软清算中心):互联网云端授权验证节点,用于服务器激活、导入 CAL 许可包。
通信协议:MS-TLS(RPC over TCP),默认端口 TCP 135 + 动态 RPC 端口;域环境可通过 SCP、DNS 自动发现授权服务器。

2. 两种 CAL 核心机制

(1)每设备 CAL(Per Device,LicensingMode=2)

  • 强制校验,有完整票据生命周期;
  • 首次接入发放临时 CAL(有效期 90 天);第二次成功连接升级为正式 CAL;
  • 正式 CAL 有效期随机 52~89 天,到期前 7 天自动续期;
  • 支持手动吊销(最大可吊销总量 20%);
  • 客户端本地注册表持久存储 CAL 票据:HKLM\SOFTWARE\Microsoft\MSLicensing

(2)每用户 CAL(Per User,LicensingMode=4)

  • 无技术强制阻断;仅做记账跟踪,许可证耗尽依然允许连接(合规风险);
  • CAL 绑定 AD 用户对象,不保存在终端;
  • 无法手动吊销 CAL。

3. 宽限期(Grace Period)机制

全新部署 RDSH 拥有 120 天宽限期,无需授权服务器即可正常发放临时许可;
 
宽限期倒计时存储在受保护注册表路径:
 
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod
 
宽限期结束后,若无可用授权服务器,新会话将被拒绝。

4. 授权服务器发现顺序(优先级由高到低)

  1. 组策略强制指定授权服务器;
  2. RDSH 注册表SpecifiedLicenseServers静态配置;
  3. AD 站点内 SCP 服务连接点自动发现;
  4. DNS 查询_msw._tcp授权记录;
  5. 子网广播搜索(仅工作组)。

二、依赖文件与核心组件

【RD Licensing 服务端(License Server)】

  1. lserver.exe(核心进程,Terminal Server Licensing)
     
    负责 RPC 侦听、CAL 发放、数据库读写、与微软清算中心通信
  2. tssrvlic.dll:许可证逻辑核心库
  3. licmgr.exe:远程桌面授权管理器(图形管理控制台)
  4. lrwizdll.dll:服务器激活向导、CAL 安装向导组件
  5. 许可证数据库目录
     
    C:\Windows\System32\LServer\TLSLic.edb(ESE 嵌入式数据库,存储 CAL 清单、发放记录)

【RD 会话主机 RDSH 侧】

  1. termsrv.dll:TermService 核心库,发起许可证请求
  2. mstlsapi.dll:RDSH 与授权服务器 RPC 通信接口
  3. 关键注册表(RDSH 授权配置)
plaintext
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\LicensingMode
HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers\SpecifiedLicenseServers

【客户端 mstsc 侧】

HKLM\SOFTWARE\Microsoft\MSLicensing 存储设备 CAL 票据缓存;删除该键可清除本地许可证缓存。

网络依赖

  • RPC:TCP 135 + 动态 RPC 端口范围;防火墙建议固定 RPC 端口简化策略;
  • 互联网激活:TCP 443,访问微软 Clearinghouse;
不使用 3389 端口;3389 仅为 RDP 会话通道。

三、依赖关系

硬性强制依赖

  1. 服务依赖
     
    RD Licensing 服务依赖:Remote Procedure Call (RPC)、Windows Event Log;
  2. 版本匹配约束
     
    RDSH 系统版本 ≤ 授权服务器支持的最高系统版本;高版本 CAL 无法向低版本 RDSH 发放;
  3. 模式一致性约束
     
    单台 RDSH只能选择一种许可模式(每设备 / 每用户);授权服务器可同时承载两种 CAL 池,但 RDSH 不能混用模式;
  4. 域环境依赖(Per User CAL)
     
    用户 CAL 必须依托 Active Directory,读取 AD 用户对象属性完成绑定;工作组环境不推荐 Per User。

可选依赖

  1. AD 域 SCP 对象:实现授权服务器自动发现;
  2. 公网访问:用于服务器激活、在线导入 CAL;离线支持电话 / Web 激活;
  3. RD Connection Broker:RDS 场环境统一分发授权策略。

不依赖

  1. 不依赖 RD 网关、RD Web 访问;可独立部署;
  2. 与 Hyper-V、VDI 无强制绑定;物理服务器 RDSH 同样适用;
  3. 不依赖 TermService 运行在同一台服务器;授权服务器可独立服务器部署。

互斥 / 风险约束

  1. 一台授权服务器不能同时为多个不互通 AD 林提供 Per User CAL;
  2. 宽限期重置不受重启影响;删除 GracePeriod 注册表项仅用于修复异常冻结倒计时(非合规绕过手段);
  3. CAL 无法跨授权服务器自由迁移,迁移必须通过微软清算中心解绑。

四、完整逻辑链路(标准会话流程,Per Device 场景)

plaintext
1. 用户 mstsc 发起RDP连接至RDSH(3389);
2. RDP握手、NLA身份验证,会话建立;
3. RDSH内部termsrv.dll判断:需要请求RDS CAL;
4. RDSH按照发现策略定位RD Licensing Server;
5. RDSH 通过RPC向 lserver.exe 发送许可证申请(携带客户端设备唯一标识);
6. 授权服务器查询TLSLic.edb数据库:
   分支A:设备已有有效正式CAL → 返回票据,会话正常继续;
   分支B:首次接入 → 发放临时CAL写入数据库;
   分支C:有临时CAL且存在空闲正式CAL → 升级为永久CAL;
   分支D:CAL耗尽 → 仅临时CAL可用(剩余90天倒计时);
7. CAL票据下发给RDSH;RDSH允许维持会话;
8. 客户端将CAL持久化写入本地注册表MSLicensing;
9. 后续重连:客户端主动出示本地CAL;RDSH校验有效期;到期前7天触发自动续期请求;

异常分支:
① 无法找到授权服务器 → 使用本机120天宽限期;
② 宽限期耗尽且无可用授权服务器 → 拒绝新RDP会话;
③ 许可模式不匹配(RDSH每设备,授权服务器只有用户CAL)→ 授权失败;
④ 授权服务器未激活 → 无法发放任何正式CAL。

授权服务器激活 & CAL 导入链路

plaintext
licmgr.exe → 激活向导 → lserver.exe → HTTPS 443连接Microsoft Clearinghouse
→ 获取服务器证书,标记服务器为已激活;
再通过协议号/零售密钥导入CAL许可包,写入TLSLic.edb数据库。

五、配套运维链(命令、配置、排查闭环)

1. 角色安装 PowerShell

powershell
# 安装RD授权角色+管理工具
Install-WindowsFeature RDS-Licensing -IncludeAllSubFeature -IncludeManagementTools

2. RDSH 配置授权服务器与许可模式

powershell
# 设置为每设备CAL
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core" -Name LicensingMode -Value 2
# 指定授权服务器FQDN
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" `
-Name SpecifiedLicenseServers -Value "rdslic01.contoso.com" -PropertyType MultiString
Restart-Service TermService -Force

3. 常用管理工具

  1. licmgr.exe:远程桌面授权管理器(查看 CAL 占用、吊销、生成报表)
  2. rdsdiagnostics.msc:RDS 诊断器,自动检测授权服务器连通、模式不匹配故障
  3. WMI 查询 CAL 使用情况
powershell
Get-WmiObject Win32_TSLicenseKeyPack | Select ProductVersion,TypeAndModel,AvailableLicenses,IssuedLicenses

4. 标准故障排查顺序

  1. RDS 诊断器一键检测;
  2. 网络连通:RPC 端口 135 + 动态端口访问授权服务器;
  3. 检查 RDSH 许可模式与授权服务器 CAL 类型一致;
  4. 确认授权服务器已激活、CAL 库存充足;
  5. 事件日志:Microsoft-Windows-TerminalServices-LicenseServer
  6. 客户端故障:删除HKLM\SOFTWARE\Microsoft\MSLicensing清除本地缓存;
  7. 检查 AD SCP 对象 / 组策略是否正确下发授权服务器地址。

六、关键风险与运维预警

  1. Per User CAL 无强制阻断陷阱
     
    许可证超额依然允许连接,仅日志告警,极易引发合规违规。必须定期导出 CAL 使用报表对账。
  2. 宽限期误区
     
    120 天是一次性评估期;迁移重装 RDSH 不会自动重置;不要尝试注册表篡改作为长期绕过方案。
  3. 端口策略常见疏漏
     
    仅开放 3389 远远不够;RDSH 与授权服务器之间需要 RPC 端口互通,大量防火墙策略遗漏导致 “找不到许可证服务器”。
  4. 数据库损坏风险
     
    TLSLic.edb为 ESE 数据库,定期备份整个 LServer 目录;磁盘异常断电极易损坏许可证库。
  5. CAL 迁移限制
     
    CAL 不能随意复制;更换授权服务器必须通过微软清算中心迁移,直接拷贝 edb 数据库无效。
  6. VDI 场景特殊规则
     
    VDI 虚拟机优先使用 Per Device CAL;虚拟机克隆时注意清理虚拟机内部 MSLicensing 缓存,避免 CAL 冲突占用。

七、横向对比:RD Licensing 在 RDS/VDI 生态位置

组件 作用 是否依赖 RD Licensing
单机 2 管理员远程桌面 系统内置通道 ❌ 不依赖
RDS 多会话主机 (RDSH) 多用户共享服务器桌面 ✅ 必须
VDI(Remote Desktop Virtualization Host) 一对一虚拟机桌面 ✅ 必须
RemoteApp 发布单一应用 ✅ 必须

 


Windows Remote Desktop Licensing (RDL) 服务起源于 Microsoft 的远程桌面服务(Remote Desktop Services, RDS),最初被称为终端服务(Terminal Services)。以下是一些关键的历史背景和发展过程:

1. 早期背景

  • Windows NT 4.0 Terminal Server Edition:在1998年,微软推出了 Windows NT 4.0 Terminal Server Edition,这一版本的服务器引入了远程桌面功能,允许用户通过终端设备访问服务器上的桌面和应用程序。

2. 终端服务到远程桌面服务

  • Windows 2000:终端服务的功能在 Windows 2000 中得到了改进,并且开始提供对会话和应用程序的远程访问。
  • Windows Server 2003:在这个版本中,终端服务得到了显著更新,支持更多的远程桌面功能,并引入了对多用户会话的改进。
  • Windows Server 2008:Microsoft 将终端服务重新命名为远程桌面服务,并引入了远程桌面服务许可证(RDS CALs)的概念,以帮助管理用户访问。

3. 远程桌面服务许可证 (RDS CALs)

  • 许可证管理:随着远程桌面服务的使用逐渐增加,微软引入了 RDS CALs 作为一种管理许可证分发的机制。RDL 服务(Remote Desktop Licensing Service)作为一个关键组件,用于管理和分发这些许可证。
  • Windows Server 2008 R2:在这个版本中,RDL 服务的角色和功能得到了进一步的完善,使其能够更好地支持企业和组织在使用远程桌面服务时的许可证需求。

4. 现代化

  • Windows Server 2012 和以后的版本:微软继续增强远程桌面服务及其许可证管理功能,包括更好的集成、扩展性和安全性。RDL 服务的功能和管理方式也随之升级,以适应新的操作系统版本和技术需求。

总结

Windows Remote Desktop Licensing (RDL) 服务的起源可以追溯到 Microsoft 早期的终端服务,随着技术的发展和远程桌面需求的增加,RDL 服务成为了远程桌面服务的核心组成部分。它负责确保远程桌面服务的合法使用,通过管理许可证来维持服务的合规性和连续性。


Windows Remote Desktop Licensing (RDL) 服务的发展经历了几个关键阶段,每个阶段都伴随着技术和功能的演进。以下是 RDL 服务主要的发展阶段:

1. 早期阶段

  • Windows NT 4.0 Terminal Server Edition (1998)
    • 功能:最早的远程桌面技术,允许用户通过终端设备访问服务器上的应用程序和桌面。
    • 许可证:当时并没有独立的许可证管理服务,使用了简单的会话管理。

2. 终端服务到远程桌面服务

  • Windows 2000 Server
    • 功能:改进了远程桌面功能,引入了终端服务,但仍缺乏完整的许可证管理系统。
  • Windows Server 2003
    • 改进:增强了远程桌面的会话和应用程序管理功能。
    • 许可证管理:引入了基本的许可证管理概念,但没有独立的许可证服务。

3. 远程桌面服务和 RDL 服务

  • Windows Server 2008
    • 改名:终端服务被重新命名为远程桌面服务(Remote Desktop Services, RDS)。
    • RDL 服务:引入了远程桌面服务许可证(RDS CALs)的管理,RDL 服务被专门用于管理和分发这些许可证。
    • 功能:提供了集中管理和合规性检查,确保用户和设备的远程桌面访问符合许可证要求。

4. 功能增强

  • Windows Server 2008 R2
    • 改进:对 RDL 服务进行了优化,增强了许可证管理的灵活性和功能,包括改进的报告功能和更好的用户管理。
  • Windows Server 2012
    • 功能扩展:引入了新的功能,如远程桌面会话主机(Remote Desktop Session Host, RDSH)的增强、虚拟桌面基础结构(VDI)的支持,以及更高级的许可证管理和分发功能。
  • Windows Server 2012 R2
    • 进一步改进:增加了对远程桌面服务的虚拟化支持,并改进了许可证服务器的稳定性和可管理性。

5. 现代化和集成

  • Windows Server 2016
    • 现代化:进一步优化了远程桌面服务的功能,包括增强的安全性和对新的连接协议的支持。
    • RDL 服务:改进了许可证激活和管理流程,支持更灵活的许可证分发和报告功能。
  • Windows Server 2019 和 2022
    • 功能增强:继续改进远程桌面服务的性能和安全性,增强了许可证管理的功能。
    • 云集成:支持与 Azure 等云服务的集成,以便于远程桌面服务的混合部署和管理。

6. 未来展望

  • 持续发展:随着技术的不断演进,微软预计会继续对 RDL 服务进行改进,可能会引入更多基于云的功能、自动化管理工具以及更高效的许可证分发机制。
  • 安全性:未来的版本可能会加强对许可证和连接安全性的支持,以应对不断变化的网络安全威胁。

 Windows Remote Desktop Licensing (RDL) 服务的发展反映了远程桌面技术的演变,从最初的基本功能到现在的复杂和集成的管理系统,确保了远程桌面服务的有效管理和合规使用。


Windows Remote Desktop Licensing (RDL) 服务是 Windows 服务器环境中的一个关键组件,用于管理和分发远程桌面服务的许可证。它主要涉及以下几个方面:

1. 功能

  • 许可证管理:RDL 服务负责管理远程桌面服务的客户端访问许可证(CALs)。这包括分发、跟踪和确保合规性。
  • 许可证颁发:当用户连接到远程桌面服务时,RDL 服务会颁发适当的许可证。
  • 许可证激活:它还负责将许可证激活到服务器上,确保它们有效并可以使用。

2. 工作原理

  • 许可证服务器:在远程桌面环境中,许可证服务器负责存储和管理所有远程桌面许可证。它会与客户端通信以分配许可证。
  • 客户端请求:当客户端连接到远程桌面服务时,它会向许可证服务器请求许可证。如果许可证服务器提供了合适的许可证,客户端可以继续连接。

3. 为何重要

  • 合规性:确保远程桌面服务的使用符合微软的许可政策。
  • 无缝访问:通过正确管理和分发许可证,RDL 服务帮助用户平稳、无缝地访问远程桌面服务。

4. 如何管理

  • 安装和配置:在安装和配置远程桌面服务时,需要设置许可证服务器。这可以通过服务器管理工具完成。
  • 监控和维护:管理员需要定期检查许可证服务器的状态,确保它正常运行,并且许可证数目足够。

5. 常见问题

  • 许可证到期:如果许可证到期或出现激活问题,可能会影响远程桌面服务的使用。管理员需要及时解决这些问题以避免服务中断。
  • 许可证不足:当连接请求超过许可证数量时,新的用户可能无法连接。这需要通过购买更多的许可证来解决。

Windows Remote Desktop Licensing (RDL) 服务在远程桌面环境中扮演着至关重要的角色,确保用户能够合法且顺利地使用远程桌面服务。


Windows Remote Desktop Licensing (RDL) 服务依赖于一些系统 DLL 和 SYS 文件,主要用于其运行和管理。以下是一些关键的文件:

  1. licensing.dll:用于处理许可证相关的功能。
  2. rdpsrvc.dll:涉及远程桌面服务的核心功能。
  3. licensing.sys:负责许可证服务的系统驱动程序部分。

这些文件对 RDL 服务的正常操作至关重要,确保许可证的管理和验证功能正常运行。


Windows Remote Desktop Licensing (RDL) 服务的底层原理涉及几个关键方面:

  1. 许可证管理:RDL 服务通过许可证服务器管理远程桌面服务的许可证(CALs)。当用户或设备连接到远程桌面时,RDL 服务验证其许可证状态。

  2. 许可证颁发和分发:许可证服务器处理许可证请求并将许可证分配给客户端。它保持有关已分配许可证的记录,以确保合规性。

  3. 客户端与服务器的通信:RDL 服务通过网络与远程桌面客户端和服务器进行通信,使用加密协议确保数据传输的安全性。

  4. 数据库管理:RDL 服务通常依赖于 Windows 注册表或本地数据库存储许可证信息和配置数据。

这些机制共同确保远程桌面访问的合法性,并提供了集中管理和合规性检查的功能。


Windows Remote Desktop Licensing (RDL) 服务的架构包含几个核心组件和功能模块:

  1. 许可证服务器:中央组件,负责管理、分发和跟踪远程桌面服务许可证。它处理来自远程桌面客户端和服务器的请求。

  2. 许可证数据库:存储许可证配置、分发记录和客户端信息。通常是 Windows 注册表或本地数据库。

  3. 客户端组件:包括远程桌面客户端和远程桌面会话主机 (RDSH),它们向许可证服务器请求许可证以进行连接。

  4. 许可证管理服务:负责接收、处理和响应客户端许可证请求,确保请求的合规性。

  5. 报告和监控:提供许可证使用情况的报告和监控功能,确保许可证的有效使用和合规性。

这些组件协同工作,确保远程桌面服务的许可管理和合规性。


Windows Remote Desktop Licensing (RDL) 服务的功能可以分为以下几类:

  1. 许可证颁发:分配并管理远程桌面服务客户端访问许可证 (CALs),确保每个连接的客户端有有效的许可证。

  2. 许可证验证:验证远程桌面客户端和服务器的许可证请求,确保它们符合许可协议。

  3. 许可证跟踪:记录和追踪许可证的使用情况,包括已分配、已过期和未使用的许可证信息。

  4. 许可证续订:处理许可证续订请求,确保现有许可证在有效期内得到更新。

  5. 报告和合规性:生成许可证使用报告,帮助管理员监控许可证的使用情况,确保合规性。

这些功能确保了远程桌面服务的合法访问和有效管理。


Windows Remote Desktop Licensing (RDL) 服务的主要作用包括:

  1. 管理许可证:负责颁发、分发和跟踪远程桌面服务许可证 (CALs),确保合规使用。

  2. 验证访问:在客户端连接远程桌面时,验证其是否有有效的许可证。

  3. 合规监控:监控和报告许可证使用情况,确保远程桌面服务的合法性和合规性。

  4. 支持续订:处理许可证续订请求,确保许可证在有效期内持续有效。

这些作用确保远程桌面服务的顺利运行并符合许可协议。

RDS Remote Desktop Services 完整拆解解构

术语沿革
 
旧名称:Terminal Services(终端服务);Windows Server 2008R2 正式更名 Remote Desktop Services(RDS)
 
RDS ≠ RDP:
  • RDP:远程桌面传输协议
  • RDS:整套多会话远程桌面服务栈,依靠 RDP 交付会话;
重要边界:Windows 自带 2 个并发管理员远程连接不属于 RDS 会话,不消耗 RDS CAL;启用多用户共享桌面 / RemoteApp/VDI 虚拟化主机,才属于 RDS 业务场景。

一、底层原理

1. RDS 整体分层架构

plaintext
【客户端层】mstsc.exe / 第三方RDP客户端
        ↓ RDP协议(TCP3389,可选EDT UDP)
【接入层】RD Gateway(可选,外网SSL代理)
        ↓
【调度层】RD Connection Broker(连接代理,会话负载均衡、会话重连)
        ↓
【计算层】RD Session Host(RDSH) 多会话主机(核心负载节点)
【支撑组件】
    RD Licensing:发放、校验RDS CAL许可证
    RD Web Access:浏览器Web门户启动RemoteApp/桌面
    RD RemoteApp:单一应用发布,不交付完整桌面
两大工作模式:
  1. RD Session Host(RDSH):一台 Windows 服务器同时承载多名用户会话(多用户共享 OS);
  2. RD Virtualization Host(RDVH):对接 Hyper-V,实现一对一 VDI 虚拟机桌面。

2. 会话核心运行机制

  1. 会话隔离模型
     
    Windows 依靠会话空间 (Session Space) 隔离不同用户:Session 0 系统服务会话;Session 1+ 为交互式用户会话。RDSH 同时创建多个交互式会话。
  2. 图形渲染链路
     
    用户应用 GDI/GDI+/DWM 绘图 → RDP 显示驱动 rdpdd.dll 捕获帧缓冲区脏矩形
     
    → 编码(RFX / H.264 / HEVC RemoteFX)→ 通过 RDP Display 通道下发客户端渲染。
  3. 虚拟通道(Virtual Channel)
     
    RDP 基于 MCS 多路复用,扩展各类业务通道:
  • cliprdr:剪贴板同步
  • rdpdr:磁盘、打印机重定向
  • rdpsnd:音频播放
  • drdynvc:动态虚拟通道(RemoteFX USB、传感器重定向等)
  1. 授权协作机制
     
    RDSH 宽限期 120 天;宽限期到期后必须和 RD Licensing Server 通信获取 RDS CAL,否则拒绝新建会话。

3. RD Connection Broker(连接代理)核心逻辑

  • 会话跟踪:记录用户在哪台 RDSH 存在会话,实现会话漫游重连
  • 负载均衡:根据会话数量、CPU 内存分配新用户;
  • 支持持久化 / 非持久 VDI 桌面池调度。

二、依赖文件与核心组件清单

1. RD Session Host(RDSH 核心节点)

  1. termsrv.dll —— TermService 服务核心 DLL(ServiceDll)
  2. TermService(服务名):远程桌面服务,监听 3389
  3. lsm.exe Local Session Manager:会话创建、销毁、权限隔离
  4. rdpdd.dll:RDP 显示驱动
  5. rdpwd.sys:内核输入 / 显示驱动
  6. rdpclip.exe:剪贴板通道进程(cliprdr)
  7. tsvipsrv.exe:虚拟通道服务进程
  8. mstlsapi.dll:与 RD Licensing 服务器 RPC 通信
     
    注册表关键路径
plaintext
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM

2. RD Licensing(配套授权组件)

  • lserver.exe 授权服务进程
  • TLSLic.edb ESE 数据库,存储 CAL 池(独立角色,可分离部署)

3. RD Connection Broker

  • tssdis.exe 连接代理主进程
  • 依赖 SQL 数据库(内置 Windows 内部数据库或外部 SQL)持久会话信息

4. RD Gateway(网关)

  • tsgateway.exe
  • 基于 HTTPS 443 封装 RDP 流量,外网无需直接开放 3389

5. RD Web Access

IIS 网站 + rdweb.dll,提供浏览器门户

6. 客户端组件

mstsc.exemstscax.dll(RDP ActiveX 核心控件)

三、依赖关系

硬性强制依赖

  1. RDSH 必须开启 TermService
  2. 生产长期运行:必须部署 RD Licensing,获取 RDS CAL;120 天宽限期结束无授权服务器阻断新会话;
  3. Per User CAL 依赖 Active Directory;Per Device CAL 不强制 AD;
  4. 会话负载均衡 / 漫游场景:必须部署 RD Connection Broker;
  5. 外网安全接入:推荐 RD Gateway,禁止裸放 3389 公网;
  6. RemoteFX 图形编码需要两端系统版本支持对应 RDP 版本。

可选依赖

  1. RD Web Access:按需提供浏览器门户;
  2. Hyper-V:仅 RDVH VDI 场景需要;纯 RDSH 多会话不需要虚拟化;
  3. 文件服务器、FSLogix:用户配置文件容器,解决非持久会话配置丢失;
  4. 证书:TLS 加密 RDP、RD Gateway HTTPS。

不依赖

  1. RDSH 与 RD Licensing不必部署在同一服务器,支持分布式架构;
  2. 不强制依赖 RD Gateway;内网环境可直连 3389;
  3. 区分:RDSH 多会话 ≠ VDI;RDSH 不需要虚拟机,直接跑在物理 / 宿主机 Windows Server 上。

互斥与约束

  1. Windows 桌面系统(Win10/11 专业版)无法安装 RDSH 角色,仅 Server 系统支持多会话;
  2. 单台 RDSH 只能配置一种许可模式(每设备 / 每用户 CAL),不能混用;
  3. RemoteFX vGPU 组件已永久移除,不可用于新版 Server 做 3D 加速。

四、完整逻辑链路(标准 RDS 场会话流程)

plaintext
1. 用户mstsc发起连接 → 可选经由RD Gateway HTTPS代理;
2. TCP握手、TLS协商、NLA身份验证;
3. 【启用连接Broker场景】
    客户端请求Broker查询:用户是否存在已有会话;
    分支A:存在会话 → 调度至原有RDSH服务器,恢复会话;
    分支B:无会话 → 根据负载策略分配一台空闲RDSH;
4. 客户端与目标RDSH建立RDP会话;
5. RDSH内部TermService(lsm.exe)创建新交互式会话;
6. termsrv.dll检查授权状态:
    ① 宽限期有效 → 直接允许会话;
    ② 宽限期耗尽 → 通过RPC寻找RD Licensing服务器申请CAL;
    CAL校验成功 → 继续;无可用CAL → 拒绝连接;
7. 会话启动,加载用户配置文件;
8. 建立多条RDP虚拟通道:显示、键鼠、剪贴板、音频、设备重定向;
9. 应用程序运行,画面持续编码推送至客户端;
10. 用户注销/断开:会话可选择保留(断开重连)或直接销毁;

异常分支:
① 无法连通RD Licensing + 宽限期过期 → 禁止新建RDS会话;
② 许可模式不匹配(RDSH每设备,授权服务器只有用户CAL)→ 授权失败;
③ 防火墙阻断RPC端口 → RDSH无法获取CAL;
④ 客户端RDP版本过低 → RemoteFX高级编码自动降级。

RemoteApp 简化链路

不加载完整 Explorer 桌面,仅启动指定应用进程;RDP 通道只推送该应用窗口,体验如同本地软件。

五、配套运维链(部署、配置、排查闭环)

1. PowerShell 安装 RDS 角色(标准场最小组件示例)

powershell
# 安装RD会话主机
Install-WindowsFeature RDS-RD-Server -IncludeManagementTools

# 安装RD连接代理
Install-WindowsFeature RDS-Connection-Broker
# 安装RD网关
Install-WindowsFeature RDS-Gateway
# 安装RD授权
Install-WindowsFeature RDS-Licensing

2. 关键组策略路径

计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务
  • 限制远程桌面用户;
  • 配置 RemoteFX 图形、带宽策略;
  • 指定 RD 授权服务器;
  • 会话超时、断开会话行为控制。

3. 常用管理控制台

  1. tsconfig.msc(旧版)/ 服务器管理器 → 远程桌面服务;
  2. rdsdiagnostics.msc RDS 诊断器(授权故障首选工具);
  3. licmgr.exe RD 授权管理器;
  4. tssadmin.exe 命令行查看会话、注销会话
cmd
tssadmin list sessions
tssadmin reset session /id:会话ID

4. 标准故障排查顺序

  1. 3389 连通性;检查 TermService 是否正常运行;
  2. rdsdiagnostics.msc 自动检测授权、许可模式;
  3. RDSH ↔ RD Licensing 之间 RPC 端口(135 + 动态端口)连通;
  4. 事件日志:Microsoft-Windows-TerminalServices-RemoteConnectionManager
  5. 核对 RDSH 许可模式与 CAL 类型一致;
  6. 用户配置文件异常排查(FSLogix/UPM 日志)。

六、关键风险与运维预警

  1. CAL 合规风险
     
    Per User CAL 无技术阻断,超额依旧允许接入,只能依靠报表审计;
  2. 安全风险
     
    3389 直接暴露公网极易遭受暴力破解;优先使用 RD Gateway+MFA;
  3. 会话风暴风险
     
    大量用户同时登录造成 CPU、磁盘 IO 突增;配合 Broker 负载均衡;
  4. 配置文件丢失
     
    非持久会话场景,务必部署 FSLogix 配置文件容器;
  5. 版本兼容坑
     
    旧瘦客户端 RDP 版本过低,无法协商 H.264/HEVC,画面卡顿;
  6. 架构误区
     
    很多人混淆:
     
    RDSH = 多用户共享一台服务器 OS
     
    VDI RDVH = 一人一台独立虚拟机
     
    两者部署架构、授权场景、资源模型完全不同。

七、生态横向定位对比

组件 核心作用 是否依赖 RD Licensing 典型场景
单机 2 管理员 RDP 系统内置管理通道 ❌ 不依赖 服务器运维
RDSH(Remote Desktop Session Host) 多用户共享服务器桌面 / RemoteApp ✅ 必须 呼叫中心、应用发布
RDVH(VDI 主机) 一对一虚拟桌面 ✅ 必须 安全办公、设计桌面云
RD Connection Broker 会话调度、负载均衡 可选,规模化部署推荐 RDS 场、VDI 桌面池
RD Gateway 外网安全接入代理 可选 互联网远程访问

RD Session Host(RDSH)完整拆解解构

术语说明
 
RD Session Host(简称 RDSH),前身:Terminal Server。
 
核心定位:Windows Server 多用户会话承载组件,允许一台操作系统同时运行多个独立交互式 RDP 用户会话;
 
重要区分:
  • Windows 桌面系统(Win10/11 专业版 / 企业版)不能安装 RDSH 角色
  • 服务器原生 2 个管理员远程连接通道 ≠ RDSH 会话,不消耗 RDS CAL;
  • RDSH = 多用户共享 OS;VDI = 一人一台独立虚拟机,二者架构完全分离。

一、底层原理

1. 核心会话隔离模型

Windows 依靠会话空间(Session Isolation)实现多用户隔离:
  1. Session 0:系统服务会话(无交互桌面);
  2. Session 1、2、3……:RDP 交互式用户会话;
     
    每个会话拥有独立 Win32 窗口站、桌面对象、进程命名空间、注册表用户配置单元。
     
    同一服务器内所有用户共享内核、驱动、系统全局资源。

2. 完整 RDP 会话数据流模型

plaintext
客户端 mstsc ←TCP3389(可选EDT UDP)→ TermService → LSM → 用户会话进程空间
  1. 连接协商层
     
    TCP 握手 → TLS 加密 → NLA 网络级别身份验证 → MCS 通道能力协商;
     
    协商编码能力:RFX / H.264 AVC / HEVC、音频、USB 重定向、多显示器。
  2. 图形渲染链路
     
    应用程序 GDI/DWM 绘图 → rdpdd.dll(RDP 显示驱动)捕获屏幕脏矩形
     
    → 启用 RemoteFX 编码器做帧压缩 → 通过 Display 虚拟通道下发客户端解码渲染。
光标由 Cursor 通道单独推送,客户端本地渲染光标,降低往返延迟。
  1. 虚拟通道多路复用(RDP 核心扩展机制)
     
    RDP 在单一 TCP 流内虚拟多条独立业务通道:
  • cliprdr:剪贴板双向同步
  • rdpsnd:音频下行(服务器→客户端播放)
  • rdpdr:磁盘、打印机、串口重定向
  • drdynvc:动态虚拟通道调度(RemoteFX USB、触控、传感器)
  • rail:RemoteApp 窗口隔离通道
  1. 授权校验机制
     
    RDSH 内置 120 天宽限期(Grace Period)
     
    宽限期内无需 RD Licensing 服务器即可新建会话;
     
    宽限期耗尽后,新建会话前必须通过 RPC 连接 RD Licensing 服务器申请 RDS CAL;
     
    无有效 CAL 票据直接拒绝新建 RDP 会话。
  2. 会话生命周期策略
     
    组策略可控:空闲超时、断开会话自动注销、活动会话时限;
     
    断开连接(Disconnect):会话进程保留,用户可随时重连恢复;
     
    注销(Logoff):销毁会话所有进程、卸载用户配置。

二、依赖文件与核心组件清单

核心服务

服务名称:TermService(远程桌面服务)
 
可执行文件路径:%SystemRoot%\System32\termsrv.dll(ServiceDll)

关键二进制组件

  1. termsrv.dll
     
    RDSH 核心逻辑:监听 RDP、会话调度、虚拟通道管理、授权校验入口
  2. lsm.exe Local Session Manager(本地会话管理器)
     
    会话创建、销毁、安全隔离核心进程,所有交互式会话由 LSM 生成
  3. rdpdd.dll:RDP 显示驱动(用户模式)
  4. rdpwd.sys:内核 RDP 输入 / 显示驱动
  5. rdpclip.exe:Clipboard 剪贴板通道进程(cliprdr)
  6. tsvipsrv.exe:终端服务虚拟通道进程
  7. mstlsapi.dll:RDSH ↔ RD Licensing Server RPC 通信库
  8. wfshell.exe:RDP 会话默认外壳(Explorer 替代方案可选)

关键注册表路径

reg
# RDSH全局核心配置
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server

# 许可模式、宽限期配置
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM

# 指定RD授权服务器
HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers
  • LicensingMode:2 = 每设备 CAL;4 = 每用户 CAL

日志路径

事件查看器 →
 
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational

三、依赖关系

硬性强制依赖

  1. 操作系统版本约束
     
    仅 Windows Server 支持安装 RDSH 角色;桌面系统无法启用多会话。
  2. 系统基础服务依赖
     
    TermService 依赖:RPC、Windows Event Log、LSM 服务。
  3. 长期稳定运行必备:RD Licensing Server
     
    120 天宽限期到期后,无法新建会话;RDSH 通过 RPC(TCP135 + 动态端口)与授权服务器通信。
  4. 网络端口
  • RDP 会话:TCP 3389;RDP8.0 + 可选 EDT UDP 3389 降低延迟
  • RDSH ↔ RD Licensing:RPC 端口(TCP135 + 动态 RPC 端口)

可选依赖

  1. RD Connection Broker
     
    规模化 RDS 场部署:实现负载均衡、会话漫游重连;单机 RDSH 不需要。
  2. RD Gateway
     
    外网接入,HTTPS 封装 RDP 流量,避免公网裸放 3389。
  3. FSLogix / UPM 用户配置文件容器
     
    解决用户会话配置持久化、漫游问题;非必需,但生产环境强烈推荐。
  4. 证书
     
    用于 RDP TLS 加密、RD Gateway HTTPS。

不依赖

  1. 不依赖 Hyper-V 虚拟机;RDSH 直接运行在物理服务器或宿主机上;
  2. 不强制依赖 Active Directory;工作组环境可部署(仅推荐 Per Device CAL);
  3. 不需要 RD Web、RemoteApp 组件,仅单纯发布桌面亦可运行。

互斥与约束

  1. 单台 RDSH 只能配置一种许可模式:Per Device / Per User,不可混用;
  2. RemoteFX vGPU 已永久移除;新版 Server 无法使用该组件;
  3. 不要同时充当域控 + 大规模 RDSH 节点(资源竞争、安全风险);
  4. 修改 termsrv.dll 绕过多会话限制属于违规操作,不支持、存在安全漏洞。

四、完整逻辑链路(标准 RDP 会话建立流程)

plaintext
1. 客户端发起TCP连接至服务器3389;
2. TCP链路建立 → TLS握手;
3. NLA身份验证(客户端先提交账号密码,未通过不创建空会话);
4. MCS层能力协商:
   协商RDP版本、图形编码、音频、设备重定向、多显示器参数;
5. TermService请求LSM创建新交互式会话;
6. RDSH执行授权校验逻辑:
   分支①:宽限期有效 → 允许继续;
   分支②:宽限期耗尽 → 通过RPC查询RD Licensing服务器申请CAL;
      CAL有效 → 会话继续;无可用CAL → 断开连接,拒绝接入;
7. 加载用户配置文件(本地/FSLogix容器);
8. 启动会话外壳(explorer.exe / wfshell.exe / RemoteApp应用);
9. 并行初始化多条RDP虚拟通道:显示、键鼠、剪贴板、音频等;
10. 用户操作上行输入指令;屏幕变化区域编码下行推送客户端;
11. 用户断开/注销:
    - 断开:会话进程保留,等待重连;
    - 注销:终止所有会话进程,释放资源。

异常分支:
① 无法连通RD授权服务器 + 宽限期过期 → 阻止新建会话;
② RDP客户端版本过低 → 自动降级图形编码,画面卡顿;
③ 许可模式不匹配(RDSH每设备,授权服务器仅有用户CAL)→ 授权失败;
④ 防火墙拦截RPC端口 → RDSH无法获取CAL票据。

RemoteApp 特殊链路

不启动完整 Explorer 桌面,仅启动指定应用进程;通过 RAIL 通道窗口虚拟化,客户端仅呈现独立应用窗口。

五、配套运维链(部署、配置、排查闭环)

1. PowerShell 安装 RDSH 角色

powershell
Install-WindowsFeature RDS-RD-Server -IncludeManagementTools
# 安装完成必须重启服务器
Restart-Computer

2. 配置 RD 授权服务器与许可模式

powershell
# 设置许可模式:2=每设备CAL
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core" -Name LicensingMode -Value 2
# 指定授权服务器FQDN
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" `
-Name SpecifiedLicenseServers -Value "rdslic01.contoso.local" -PropertyType MultiString

# 重启远程桌面服务生效
Restart-Service TermService -Force

3. 常用管理工具

  1. rdsdiagnostics.msc:RDS 诊断器,优先排查授权故障
  2. 服务器管理器 → 远程桌面服务面板
  3. tssadmin.exe 会话管理命令
cmd
tssadmin list sessions
tssadmin list users
tssadmin reset session /id:会话ID
  1. licmgr.exe:RD 授权服务器管理器(部署在授权服务器)

4. 标准故障排查顺序

  1. 检查 TermService 服务状态;端口 3389 连通性;
  2. rdsdiagnostics.msc 一键检测授权、许可模式异常;
  3. 确认 RDSH 与 RD Licensing 服务器 RPC 互通;
  4. 核对许可模式与 CAL 类型保持一致;
  5. 查看 TerminalServices-RemoteConnectionManager 事件日志;
  6. 用户配置丢失问题,排查 FSLogix 日志、权限、配置容器挂载。

六、关键运维风险与预警

  1. CAL 合规风险
     
    Per User CAL 无技术阻断,超额依然允许接入,只能依靠报表审计;
  2. 资源争抢风险
     
    多用户共享服务器 CPU / 内存;并发量大时出现 CPU、磁盘 IO 风暴;合理规划单服务器最大会话数;
  3. 安全风险
     
    3389 直接暴露公网极易遭受暴力破解,优先使用 RD Gateway+MFA;
  4. 宽限期误区
     
    120 天宽限期一次性生效,重装系统以外手段无法重置,注册表篡改不建议作为长期方案;
  5. 配置文件丢失
     
    断开会话后配置不持久,大规模场景务必部署 FSLogix;
  6. 架构误区区分
     
    ✅ RDSH:多用户共享一台 Windows Server(节省授权,适合轻量办公、应用发布)
     
    ✅ RDVH VDI:一对一独立虚拟机(隔离性强,适合安全管控、设计场景)

七、生态定位对比

对象 会话模型 是否需要 RDS CAL 典型场景
服务器内置 2 管理员 RDP 系统内置管理通道 ❌ 不需要 运维管理服务器
RDSH(RD 会话主机) 多用户共享 OS ✅ 必须 呼叫中心、RemoteApp 应用发布、轻办公桌面
RDVH VDI 主机 一对一独立虚拟机 ✅ 必须 安全办公、涉密桌面、3D 设计桌面云

 

RemoteApp 完整拆解解构

术语定义
 
RemoteApp 是微软 RDS 体系内的应用虚拟化技术,全称 Remote Application。
 
传统 RDP 交付完整桌面;RemoteApp 只推送单个应用窗口,不交付完整 Windows 桌面环境。用户感知如同程序运行在本地,实际进程执行在远端 RD Session Host(RDSH)
 
⚠️ 重要区分:
  1. RemoteApp 运行载体只能是 RDSH(多会话主机),不能直接跑在 VDI 虚拟机;VDI 内也可以发布应用,但不属于标准 RemoteApp;
  2. RemoteApp 依托 RDP RAIL(Remote Application Integrated Locally)虚拟通道
  3. 依旧消耗 RDS CAL,遵循整套 RDS 授权规则。

一、底层原理

1. 核心机制:RAIL(Remote Application Integrated Locally)

普通 RDP 会话流程:
 
建立会话 → 启动explorer.exe完整桌面 → 在桌面内启动应用。
RemoteApp 流程:
 
建立 RDP 会话 → 不启动完整 Explorer,直接启动目标应用进程;
 
依靠 RAIL 通道,把远端应用窗口信息(窗口句柄、位置、大小、绘制指令)传输到本地客户端;
 
客户端 mstsc 将远端窗口嵌入本地窗口管理器,和本地应用窗口并列、自由切换、任务栏融合。

2. 图形与窗口协同模型

  1. 远端 RDSH:应用正常 GDI/DWM 绘图,窗口消息循环保持运行;
  2. rdpdd.dll捕获窗口绘制内容;
  3. 通过 RAIL 通道传递:窗口元数据、更新脏矩形、光标、窗口激活 / 最小化 / 拖拽消息;
  4. 本地 mstsc 创建容器窗口,渲染远端画面;Windows shell 把该窗口纳入本地窗口 Z 序、任务栏、Alt+Tab 列表。

3. 本地与远端交互打通

  • 剪贴板 cliprdr:本地 ↔ RemoteApp 双向文本 / 文件复制;
  • 文件重定向 rdpdr:本地磁盘映射到远端应用读写;
  • 打印机、音频、USB 重定向依托标准 RDP 虚拟通道;
  • 多显示器:RAIL 支持窗口跨本地多显示器拖动。

4. 会话复用逻辑(关键优化点)

用户启动第一个 RemoteApp → 创建完整 RDS 会话;
 
同一用户再次启动其他已发布 RemoteApp:复用同一个 RDP 会话,不再新建会话;
 
只有当所有 RemoteApp 窗口全部关闭,会话才会根据策略断开 / 注销。

5. 授权继承逻辑

RemoteApp 运行在 RDSH,完全复用 RDS 授权体系:
 
RDSH 需要 RD Licensing、RDS CAL、120 天宽限期机制,规则与普通远程桌面完全一致。

二、依赖文件与核心组件

【RDSH 服务端组件】

  1. termsrv.dll
     
    TermService 核心,负责 RDP 连接、RAIL 通道初始化
  2. rdpdd.dll:RDP 显示驱动,捕获应用窗口画面
  3. rdpclip.exe:剪贴板通道进程
  4. tsvipsrv.exe:虚拟通道调度
  5. RemoteApp 发布配置存储
reg
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList
  • Applications子项:存储所有已发布 RemoteApp 路径、图标、参数;
  • fAllowUnlistedRemotePrograms:是否允许未列入清单程序启动(安全风险,默认关闭)。

【客户端组件】

  1. mstsc.exe RDP 客户端
  2. mstscax.dll RDP ActiveX 控件,实现 RAIL 窗口融合逻辑
  3. .rdp 文件:文本配置文件,标记启动 RemoteApp 模式、应用程序路径
rdp 文件关键参数:
plaintext
remoteapplicationmode:i:1
remoteapplicationname:s:程序名称
remoteapplicationprogram:s:C:\xxx.exe

【配套 RDS 生态组件】

  • RD Connection Broker:多台 RDSH 场环境,负载均衡、会话复用漫游;
  • RD Web Access:网页门户生成 RemoteApp 启动链接与 rdp 文件;
  • RD Gateway:外网安全接入;
  • RD Licensing:CAL 授权校验。

三、依赖关系

硬性强制依赖

  1. 载体必须是 RD Session Host (RDSH)
     
    无法在普通 Windows 桌面、RDVH 虚拟机原生发布 RemoteApp;
  2. TermService 必须正常运行;
  3. 客户端 RDP 版本最低支持 RDP7.0 以上才能完整支持 RAIL;
  4. 网络:TCP 3389(可选 EDT UDP3389);多服务器场环境 RDSH 与 Broker 互通 RPC 端口。

可选依赖

  1. RD Connection Broker:多 RDSH 集群负载均衡、会话漫游;单机 RDSH 不需要;
  2. RD Web Access:提供浏览器门户,简化用户启动;
  3. RD Gateway:外网接入,不裸放 3389;
  4. FSLogix:持久用户配置文件,保存应用配置。

不依赖

  1. 不需要 Hyper-V,和 VDI/RDVH 无绑定
  2. 不强制启用完整桌面;RemoteApp 会话默认不加载explorer.exe

约束与安全限制

  1. 默认只允许启动 TSAppAllowList 内登记程序;管理员放开fAllowUnlistedRemotePrograms会造成逃逸风险(用户可运行任意程序);
  2. 部分依赖桌面 Shell、全局钩子、DWM 特殊渲染的软件,RemoteApp 模式下容易异常;
  3. 单用户所有 RemoteApp 共享同一个 RDS 会话内存空间;一个应用崩溃可能影响同会话其他 RemoteApp。

四、完整逻辑链路

链路 A:用户通过 rdp 文件 / RDWeb 启动 RemoteApp

plaintext
1. 用户打开 .rdp 文件或RDWeb点击应用;文件标记 remoteapplicationmode:i:1;
2. mstsc发起TCP连接RDSH 3389,TLS握手、NLA身份验证;
3. RDP协商阶段启用RAIL通道;
4. 身份校验通过,TermService通知LSM创建用户会话;
5. RDSH读取TSAppAllowList校验请求程序是否允许发布;
   不允许 → 直接断开连接;
6. 不启动explorer.exe,直接启动目标应用进程;
7. 应用窗口创建,画面数据、窗口消息通过RAIL通道下发客户端;
8. mstsc将远端窗口嵌入本地桌面窗口管理器,实现和本地程序无缝切换;
9. 同时建立cliprdr、rdpdr、音频等辅助虚拟通道;
10. 用户关闭应用窗口:
    - 还有同会话其他RemoteApp → 会话保持;
    - 全部应用关闭 → 根据组策略:断开会话 / 直接注销会话。

链路 B:会话复用场景

plaintext
用户已运行一个RemoteApp(会话保存在RDSH)
再次启动另一款同服务器发布RemoteApp
→ Broker识别已有会话
→ 直接在现有会话内启动第二个应用进程
→ 不再新建RDP连接,资源开销更低

异常分支

① 程序不在 TSAppAllowList 清单 → 启动拒绝;
 
② 客户端 RDP 版本过低,不支持 RAIL → 降级为完整桌面模式;
 
③ RDSH 宽限期到期且无法连通 RD Licensing → 拒绝建立会话;
 
④ 应用依赖 Explorer Shell 组件,无桌面环境运行报错。

五、配套运维链

1. PowerShell 发布 RemoteApp 示例

powershell
# 添加RemoteApp程序
New-RDRemoteApp -Alias Notepad -DisplayName "记事本" `
-FilePath "C:\Windows\notepad.exe" -CollectionName "RDSCollection"
# 查询已发布应用
Get-RDRemoteApp -CollectionName "RDSCollection"

2. 常用管理工具

  1. 服务器管理器 → 远程桌面服务集合 → RemoteApp 程序管理器;
  2. rdsdiagnostics.msc:诊断 RDP 连接、授权故障;
  3. RDWeb 站点管理(IIS);
  4. 手动编辑注册表TSAppAllowList(不推荐,优先使用官方模块)。

3. 标准故障排查顺序

  1. 核对 rdp 配置 remoteapplicationmode:i:1 是否开启;
  2. 确认程序路径存在、权限允许 RDS 用户读取执行;
  3. 检查程序是否在 TSAppAllowList 允许清单;
  4. 查看 TermService 事件日志;
  5. 兼容性问题:尝试开启 “在完整桌面中启动 RemoteApp” 做对比测试。

六、关键运维风险预警

  1. 安全逃逸风险
     
    不要开启fAllowUnlistedRemotePrograms,用户可通过各类对话框唤起命令行、资源管理器;
  2. 应用兼容性坑
     
    大量工业软件、带全局钩子、托盘常驻、依赖 Shell 扩展程序在 RAIL 模式异常;
  3. 会话共享风险
     
    同一用户所有 RemoteApp 共用会话,进程相互影响;
  4. 配置持久化问题
     
    应用配置保存在远端 RDSH 用户配置文件,多 RDSH 节点务必部署 FSLogix 实现漫游;
  5. 授权误区
     
    RemoteApp 属于 RDS 业务,必须 RDS CAL,不可使用管理员 2 通道。

七、横向对比:RemoteApp vs 完整 RDS 桌面 vs VDI

模式 运行载体 交付形态 资源开销 典型场景
RemoteApp RDSH 单一应用窗口 最低 ERP、办公软件、业务客户端发布
完整 RDS 桌面 RDSH 完整共享桌面 中等 呼叫中心统一办公桌面
VDI(RDVH) Hyper-V 虚拟机 独立完整桌面 最高 安全隔离、涉密、3D 设计

RDWeb 启动 RemoteApp 完整拆解解构

术语说明
 
RD Web Access(简称 RDWeb):RDS 体系 Web 门户组件,基于 IIS 搭建。
 
核心作用:浏览器提供入口,展示已发布 RemoteApp / 虚拟桌面列表;用户点击应用后,生成并下发预配置 .rdp 文件,本地 mstsc 读取文件拉起 RemoteApp 会话。
 
⚠️ 关键边界:
 
RDWeb不承载 RDP 数据流,不代理图形流量;只做展示、身份认证、生成 rdp 配置文件;真正 RDP 通道依然是客户端直连 RDSH(或经由 RD Gateway)。

一、底层原理

1. 整体交互模型

plaintext
浏览器 ←HTTPS 443→ IIS + RDWeb站点
        ↓(查询应用清单)
RDWeb ←RPC/WMI→ RD Connection Broker
        ↓(下发应用元数据)
浏览器点击应用 → RDWeb动态生成包含RAIL标识的.rdp文件 → 下载到本地
本地mstsc.exe加载rdp配置 → 发起RDP连接至后端RDSH,启动RemoteApp

2. 核心技术点

  1. 身份认证两层体系
    • 第一层:RDWeb 站点 IIS 身份验证(Forms 身份验证 / Windows 集成认证);
    • 第二层:RDP NLA 网络级别身份验证(rdp 文件携带票据 / 凭据,或本地弹窗输入账号)。
  2. rdp 文件核心标记(RemoteApp 开关)
ini
remoteapplicationmode:i:1
remoteapplicationprogram:s:C:\xxx.exe
remoteapplicationname:s:应用显示名
remoteapplicationmode:i:1 告知 mstsc 启用 RAIL 通道,不加载完整桌面,以 RemoteApp 模式运行。
 
3. 应用清单获取机制
 
RDWeb 后台通过 RDS PowerShell 提供程序 / WMI/RPC,向 RD Connection Broker 查询目标集合下所有已发布 RemoteApp、虚拟桌面元数据(路径、图标、别名、参数)。
 
4. 网关自动注入
 
如果部署 RD Gateway,RDWeb 会自动在 rdp 文件写入网关地址参数,客户端 RDP 流量自动通过 HTTPS 封装转发。
 
5. 单点登录可选机制
 
部署 RD Web SSO 组件时,将 Web 认证凭据安全传递给 RDP NLA,实现一次登录浏览器,启动 RemoteApp 无需二次输密码;无 SSO 则打开 mstsc 弹窗重新认证。

3. SSO 工作原理(可选增强)

RD Web SSO 依靠pktspx.dll、CredSSP 协议扩展:
 
浏览器登录完成后,生成加密凭据包写入本地凭据管理器;mstsc 建立 RDP 连接时调用 CredSSP 读取票据完成 NLA 认证,消除二次弹窗。

二、依赖文件与核心组件

1. IIS & RDWeb 站点文件

站点物理路径默认:
 
C:\Windows\Web\RDWeb\Pages\
  • Default.aspx:门户主页
  • Desktops.aspx:虚拟桌面列表
  • RemoteApps.aspx:RemoteApp 应用列表
  • rdp.aspx动态生成 rdp 文件的核心页面(用户点击应用时被调用)
  • web.config:RDWeb 站点配置、认证模式、SSO 开关

2. 关键程序集

  1. Microsoft.TerminalServices.Publishing.dll
     
    RDWeb 后台核心库,与 Connection Broker 通信、拉取应用发布信息
  2. TsWeb.dll RDWeb 辅助组件
  3. pktspx.dll:RDWeb SSO CredSSP 扩展(单点登录必需)

3. 后端 RDS 组件

  • RD Connection Broker(数据源,存储应用集合、RemoteApp 清单)
  • RDSH(RemoteApp 实际运行载体)
  • RD Licensing(会话授权校验)
  • 可选:RD Gateway

4. 客户端侧

  • 浏览器(Chrome/Edge 等,负责访问 HTTPS 门户、下载 rdp 文件)
  • mstsc.exe + mstscax.dll:解析 rdp 配置、建立 RDP、RAIL 窗口渲染

5. 注册表关键路径

reg
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSWeb
HKLM\SYSTEM\CurrentControlSet\Services\W3SVC

三、依赖关系

硬性强制依赖

  1. IIS Web 服务器角色;必须启用ASP.NET、.NET 框架;
  2. RD Connection Broker
     
    RDWeb 无法独立获取 RemoteApp 清单,所有应用元数据由 Broker 统一提供;单机 RDS 场也必须对接 Broker;
  3. 客户端系统具备 mstsc(RDP 客户端);浏览器允许下载并打开.rdp文件;
  4. 网络:
    • 用户 ↔ RDWeb:HTTPS TCP 443;
    • RDWeb ↔ RD Connection Broker:RPC 端口;
    • 客户端 ↔ RDSH/RD Gateway:TCP 3389 或 Gateway 443。

可选依赖

  1. RD Gateway:外网场景,rdp 文件自动注入网关参数,避免公网开放 3389;
  2. RD Web SSO:实现门户与 RDP 单点登录;不部署则 RDP 弹窗二次认证;
  3. 证书:HTTPS 证书加密 RDWeb 访问;生产禁止使用自签名证书;
  4. FSLogix:远端 RDSH 用户配置持久化。

不依赖

  1. RDWeb 服务器不需要安装 RDSH 角色;可独立部署 Web 门户;
  2. RDWeb不参与 RDP 图形数据流传输;应用画面不走 443 Web 站点;
  3. 不强制 Hyper-V(仅发布 RemoteApp 场景,VDI 才需要)。

约束与风险

  1. 浏览器本身无法原生运行 RDP,必须调用本地 mstsc;纯 Web 端无插件不能直接渲染远程画面;
  2. 部分浏览器策略阻止自动打开 rdp 文件,需要手动允许文件启动;
  3. SSO 依赖 CredSSP 协议,存在安全攻击面,内网可控环境推荐,外网需叠加 MFA;
  4. RDWeb 仅展示 Broker 已发布应用,不能直接在 RDWeb 新增 / 编辑 RemoteApp。

四、完整逻辑链路:浏览器 RDWeb 启动 RemoteApp

plaintext
1. 用户浏览器访问 https://rdweb.contoso.com
2. IIS加载RDWeb站点,触发身份验证(表单认证/Windows集成认证);
3. 账号密码校验通过,RDWeb后台通过RPC连接RD Connection Broker;
4. Broker查询该用户有权访问的应用集合,返回RemoteApp列表、图标、启动参数;
5. 页面渲染应用图标列表展示给用户;
6. 用户点击某RemoteApp:浏览器请求 rdpp.aspx,并携带应用唯一别名;
7. rdpp.aspx 执行核心逻辑:
   ① 向Broker查询该应用完整配置;
   ② 在内存动态生成rdp文本,写入 remoteapplicationmode:i:1 等RAIL参数;
   ③ 如果配置RD Gateway,自动填充网关地址参数;
   ④ 将rdp文件以附件形式下发浏览器;
8. 浏览器下载 xxx.rdp 文件;弹出提示:使用远程桌面连接打开;
9. 本地 mstsc.exe 加载rdp配置文件;
10. mstsc发起连接:
    分支A(内网直连):TCP 3389 → RDSH
    分支B(外网带网关):HTTPS 443 → RD Gateway,隧道封装RDP流量转发至RDSH
11. TLS握手、NLA身份验证;启用RAIL虚拟通道协商;
12. RDSH校验应用在TSAppAllowList允许清单,启动目标程序,不加载Explorer;
13. RAIL通道传输应用窗口画面,客户端窗口融合呈现RemoteApp;
14. 用户关闭应用:同会话其他RemoteApp保留;全部关闭后按策略断开/注销会话。

带 SSO 增强链路差异

步骤 2 登录 RDWeb 成功后,服务器下发加密凭据包写入本地 Windows 凭据存储;
 
步骤 11 建立 RDP NLA 时,mstsc 自动读取凭据,无需再次输入账号密码。

异常分支

① RDWeb 无法连通 Broker → 页面空白、看不到应用列表;
 
② 浏览器阻止打开 rdp 文件 → 下载后手动双击运行;
 
③ rdp 文件缺失 remoteapplicationmode:i:1 → 错误启动完整桌面而非 RemoteApp;
 
④ RDSH 授权过期无法联系 RD Licensing → RDP 会话被拒绝;
 
⑤ 证书不受信任 → HTTPS 页面告警、RDP 连接告警。

五、配套运维链

1. PowerShell 安装 RDWeb 角色

powershell
Install-WindowsFeature RDS-Web-Access -IncludeAllSubFeature -IncludeManagementTools

2. 关键管理位置

  1. IIS 管理器 → 网站 → Default Web Site → RDWeb 虚拟目录;
  2. 服务器管理器 → 远程桌面服务集合控制台(发布 RemoteApp、管理权限);
  3. rdsdiagnostics.msc 诊断 RDS 基础链路故障;
  4. RDWeb 日志:IIS 日志 + Windows 事件日志 Microsoft-Windows-RemoteDesktopServices-WebAccess

3. 标准故障排查顺序

  1. 确认 IIS、W3SVC 服务正常,RDWeb 站点启动;
  2. RDWeb 服务器网络可访问 RD Connection Broker;
  3. 核对用户在 RDS 集合具备访问 RemoteApp 权限;
  4. 下载 rdp 文件,用记事本打开检查是否存在 remoteapplicationmode:i:1
  5. 排查证书、HTTPS 绑定、浏览器安全策略;
  6. SSO 故障:检查 pktspx 组件、CredSSP 组策略配置。

六、关键运维风险预警

  1. 认知误区
     
    很多管理员以为 RDWeb 可以直接推送远程画面;RDWeb 只下发 rdp 文件,图形流量不走 Web;外网必须配套 RD Gateway。
  2. 文件下载拦截
     
    企业浏览器终端策略经常阻止自动打开 rdp,需要终端组策略放行。
  3. 凭据安全
     
    RDWeb 表单认证密码经过网页传输,必须强制 HTTPS,禁止 HTTP 访问。
  4. 权限隔离
     
    RDWeb 仅按 Broker 下发权限展示应用;不要直接修改 RDWeb 页面硬编码应用清单。
  5. 单点登录 (CredSSP) 安全风险
     
    外网环境单纯 SSO 容易遭受暴力攻击,建议叠加 RD 网关 MFA 多因素认证。

七、组件定位横向对比

组件 数据流角色 传输端口 核心产出物
RDWeb Access 门户展示、配置下发 HTTPS 443 动态生成.rdp 文件
RD Gateway RDP 流量封装代理 HTTPS 443 RDP 隧道转发
RDSH RemoteApp 运行载体 TCP 3389 应用进程、RAIL 图形流
mstsc 客户端 解析 rdp、渲染远端窗口 3389 / Gateway443 本地窗口融合展示

RD Web Access(RDWeb)完整拆解解构

术语概述

RD Web Access(RDWeb),远程桌面 Web 访问,属于微软 RDS 服务栈前端门户组件,基于 IIS ASP.NET构建。
 
核心职能:提供浏览器访问入口,查询 RD Connection Broker 获得用户可用资源(RemoteApp、VDI 虚拟桌面);用户点击资源后动态生成标准.rdp配置文件下发客户端
核心关键认知:
 
RDWeb不传输 RDP 图形流量、不代理远程桌面画面;仅负责认证、资源列表展示、生成 rdp 配置;真正 RDP 连接由本地 mstsc 发起,直连 RDSH / 虚拟机,或经由 RD Gateway 隧道转发。

一、底层原理

1. 整体架构模型

plaintext
终端浏览器 <--HTTPS(443)--> IIS + RDWeb站点
          ↓(RPC/WMI查询资源清单)
RDWeb 后台 ←→ RD Connection Broker
          ↓
浏览器下载动态生成的.rdp文件 → mstsc.exe加载配置发起RDP会话

2. 核心工作机制

  1. 双层身份验证架构
    • 第一层:RDWeb 站点身份验证(表单认证 / Windows 集成认证),控制能否进入门户看到应用列表;
    • 第二层:RDP NLA 网络级别身份验证(在 mstsc 建立 TCP 连接阶段执行);
       
      可选部署RDWeb SSO:打通两层认证,Web 登录凭据安全传递给 CredSSP,消除 RDP 二次密码弹窗。
  2. 资源清单获取逻辑
     
    RDWeb 本身不存储应用、桌面发布信息;所有资源元数据(应用路径、图标、别名、启动参数、权限)统一由RD Connection Broker维护。
     
    RDWeb 通过 RDS 托管程序集调用 RPC/WMI 接口,向 Broker 拉取当前授权用户可见的资源集合。
  3. 动态 RDP 文件生成(RDWeb 核心能力)
     
    用户点击 RemoteApp / 虚拟桌面时,后端rdp.aspx动态组装 rdp 文本配置:
  • RemoteApp 模式自动写入:remoteapplicationmode:i:1 开启 RAIL 通道;
  • 已配置 RD Gateway 时,自动填充网关地址、网关认证参数;
  • 填充目标后端服务器地址、资源别名、显示参数;
  • 以附件形式下发浏览器,交由本地 mstsc 解析执行。
  1. RDWeb SSO 单点登录原理(可选扩展)
     
    依赖组件pktspx.dll,基于 CredSSP 协议扩展:
     
    浏览器登录成功后,服务端生成加密凭据包下发至终端 Windows 凭据管理器;mstsc 建立 RDP 连接时自动读取凭据完成 NLA 认证。
风险:CredSSP 历史存在协议漏洞,外网环境建议搭配 MFA 多因素认证。
  1. 数据流边界区分
  • RDWeb 流量:HTTPS 443,仅网页、资源列表、rdp 文件下载;
  • RDP 业务流量:TCP 3389 或封装在 RD Gateway HTTPS 443;
     
    两类流量相互独立,不能混淆

二、依赖文件与核心组件

1. RDWeb 站点静态文件

默认物理路径:
 
C:\Windows\Web\RDWeb\Pages\
文件 作用
Default.aspx 门户首页
RemoteApps.aspx 展示用户可用 RemoteApp 列表
Desktops.aspx 展示 VDI 虚拟桌面列表
rdp.aspx 核心页面,动态生成.rdp 文件
web.config 站点认证、SSO、安全策略配置

2. 关键二进制程序集

  1. Microsoft.TerminalServices.Publishing.dll
     
    RDWeb 核心业务库,负责与 RD Connection Broker 通信、查询发布资源;
  2. TsWeb.dll RDWeb 辅助 Web 组件;
  3. pktspx.dll RDWeb SSO CredSSP 扩展组件(单点登录必备);

3. Windows 系统服务依赖

  • W3SVC(万维网服务,IIS 主服务)
  • ASP.NET运行时、.NET Framework
  • RPC(用于 RDWeb ↔ Connection Broker 通信)

4. 注册表关键配置路径

reg
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSWeb
HKLM\SYSTEM\CurrentControlSet\Services\W3SVC

5. 配套后端 RDS 组件

  • RD Connection Broker(强制,资源元数据中心)
  • RD Session Host(承载 RemoteApp) / RDVH(承载 VDI 虚拟机)
  • RD Licensing(会话 CAL 授权校验)
  • 可选:RD Gateway(外网接入隧道)

6. 客户端组件

浏览器(Edge/Chrome) + mstsc.exe + mstscax.dll(RDP ActiveX 控件,实现 RAIL、远程桌面渲染)

6. 日志位置

事件查看器:Microsoft-Windows-RemoteDesktopServices-WebAccess/Operational
 
原始访问日志:C:\inetpub\logs\LogFiles IIS 日志

三、依赖关系

硬性强制依赖

  1. IIS 角色 + ASP.NET + .NET 框架,RDWeb 依托 IIS 站点运行;
  2. RD Connection Broker,RDWeb 无法独立获取已发布应用 / 桌面清单;单机 RDS 部署同样必须对接 Broker;
  3. 网络连通:RDWeb 服务器能够访问 Broker RPC 端口;
  4. 终端本地必须具备 mstsc 客户端;浏览器允许下载并打开 rdp 附件;

可选依赖

  1. RD Gateway:外网场景,rdp 文件自动注入网关参数,无需公网开放 3389;
  2. RDWeb SSO:实现门户与 RDP 单点登录,消除二次认证弹窗;
  3. SSL/TLS 证书:生产环境强制 HTTPS 加密;禁止裸 HTTP;
  4. FSLogix:远端 RDSH/VDI 虚拟机用户配置持久化(和 RDWeb 本身无关,属于后端会话配套)。

不依赖

  1. RDWeb 服务器不需要安装 RDS-RD-Server(RDSH),支持独立部署门户;
  2. RDWeb 不参与 RDP 图形数据流,无法单独实现远程桌面渲染;
  3. 仅发布 RemoteApp 场景不需要 Hyper-V;Hyper-V 仅 RDVH VDI 场景需要。

约束与安全限制

  1. RDWeb 仅做资源展示,不能新增、编辑 RemoteApp / 虚拟桌面,发布操作统一在 Broker 端管理;
  2. 浏览器无法原生运行 RDP,必须调用本地 mstsc;无本地客户端则无法启动会话;
  3. 不要手动硬编码应用清单到页面,所有权限控制由 Broker 统一管理;
  4. SSO 基于 CredSSP,攻击面更大,互联网访问建议叠加多因素认证。

四、完整逻辑链路

标准访问链路(无 SSO)

plaintext
1. 用户浏览器访问 https://rdweb.domain.com
2. IIS加载RDWeb虚拟目录,触发身份验证(表单/Windows集成认证);
3. 账号密码校验通过,RDWeb后台通过RPC连接RD Connection Broker;
4. Broker校验用户权限,返回该用户可访问RemoteApp、虚拟桌面元数据;
5. 页面渲染应用图标列表展示给用户;
6. 用户点击指定资源,浏览器请求rdp.aspx并携带资源唯一别名;
7. rdp.aspx执行:
   ① 查询Broker获取资源完整配置;
   ② 在内存动态生成rdp配置文本;
   ③ 如果配置RD Gateway,自动填充网关相关参数;
   ④ 将rdp文件作为附件下发浏览器;
8. 浏览器下载*.rdp文件,调用本地mstsc.exe打开;
9. mstsc读取rdp配置,发起连接:
    内网直连:TCP3389 → RDSH/VDI虚拟机
    外网场景:HTTPS443 → RD Gateway,隧道封装RDP流量转发后端;
10. TLS握手、NLA身份验证;协商RDP虚拟通道(RemoteApp启用RAIL通道);
11. 后端RDSH/虚拟机执行授权校验,成功后启动会话/应用;
12. 远端画面通过RDP通道推送客户端渲染。

启用 RDWeb SSO 链路差异

步骤 2 登录 RDWeb 成功后,下发加密凭据包写入终端凭据管理器;
 
步骤 10 建立 RDP NLA 时,mstsc 自动读取凭据,无需再次输入账号密码。

典型异常分支

① RDWeb 无法连通 Broker → 页面空白,看不到任何应用;
 
② rdp 文件缺失remoteapplicationmode:i:1 → 错误打开完整桌面而非 RemoteApp;
 
③ 浏览器策略拦截 rdp 文件自动打开,需要手动双击下载文件;
 
④ 证书不受信任,HTTPS 告警或 RDP 连接告警;
 
⑤ 后端 RDSH / 虚拟机无法连通 RD Licensing,宽限期过期,会话拒绝接入。

五、配套运维链

1. PowerShell 安装 RDWeb 角色

powershell
Install-WindowsFeature RDS-Web-Access -IncludeAllSubFeature -IncludeManagementTools

2. 核心管理入口

  1. IIS 管理器 → 默认网站 → RDWeb 虚拟目录(绑定证书、修改认证方式);
  2. 服务器管理器 → 远程桌面服务集合(发布 RemoteApp、配置访问权限);
  3. rdsdiagnostics.msc:RDS 整体链路诊断工具;

3. 标准故障排查顺序

  1. 确认 W3SVC 服务正常,RDWeb 站点正常启动;
  2. 验证 RDWeb 服务器网络可达 RD Connection Broker;
  3. 确认用户在 RDS 集合拥有资源访问权限;
  4. 下载 rdp 文件,记事本打开校验关键参数是否完整;
  5. 排查 HTTPS 证书绑定、浏览器安全策略;
  6. SSO 故障:检查 pktspx 组件、CredSSP 相关组策略。

六、运维风险与认知误区

  1. 重大误区
     
    RDWeb ≠ RD Gateway。RDWeb 只管网页门户与下发 rdp;外网远程访问必须同时部署 RD Gateway 代理 RDP 流量,不能只靠 RDWeb。
  2. 安全风险
     
    必须强制 HTTPS;HTTP 传输账号凭据极易被窃听;
  3. 终端兼容问题
     
    部分终端浏览器安全策略阻止自动打开 rdp 文件,需要组策略放行;
  4. 权限管控
     
    所有资源权限统一在 Broker 配置,不要直接修改 RDWeb 页面硬编码资源;
  5. 扩展性
     
    大规模环境可独立部署 RDWeb 服务器,无需和 RDSH、Broker 部署同一台主机。

七、RDS 前端组件横向对比

组件 传输流量 端口 核心作用
RD Web Access 网页、rdp 文件下载 HTTPS 443 门户展示、动态生成 rdp 配置
RD Gateway 封装 RDP 业务流量 HTTPS 443 外网安全隧道代理 RDP 数据流
mstsc 客户端 RDP 图形、键鼠、虚拟通道 TCP3389/Gateway443 解析 rdp、渲染远端桌面 / RemoteApp

RD Gateway(远程桌面网关,RDGW)完整拆解解构

术语概述

RD Gateway (Remote Desktop Gateway),远程桌面网关,微软 RDS 体系外网接入安全网关。
 
核心定位:在公网只开放 HTTPS 443,将 RDP 协议流量封装在 HTTPS 隧道(RPC over HTTP / HTTP 隧道封装),代替直接对公网暴露后端 3389 端口。
关键认知:
 
RDGW 是流量转发代理,不参与 RDP 会话协商、不渲染画面;负责终端身份校验、连接策略控制、解封装 / 封装 RDP 数据流;可配合 RDWeb、RD Connection Broker 协同工作。

一、底层原理

1. 整体架构模型

plaintext
 
 
 
外网终端 mstsc
    ↓ HTTPS(443) 封装RDP流量
RD Gateway(TSGateway.exe)
    ↓ 解封装 → 内网TCP 3389
后端目标:RDSH / VDI虚拟机
 
RDWeb 场景联动流程:
 
RDWeb 生成 rdp 文件,自动写入 gatewayhostname:s:rdgw.domain.com;mstsc 读取参数,优先建立 HTTPS 隧道连接网关,再通过隧道转发 RDP 至内网资源。

2. 核心封装机制

RDGW 使用 RDP over HTTPS(基于 HTTP 隧道封装):
  1. 客户端与网关先建立标准 TLS 握手;
  2. 在 HTTPS 会话内部建立虚拟通道,原始 RDP 二进制数据流被封装进 HTTP 请求体;
  3. RDGW 接收报文,剥离外层 HTTP 封装,还原原生 RDP 流量;
  4. RDGW 以内网身份主动发起 TCP 连接到后端 RDSH / 虚拟机 3389;
  5. 双向流量持续封装转发,形成隧道。
和反向代理区别:
 
普通 IIS/Nginx 反向代理无法原生解析 RDP over HTTPS 隧道;RDGW 具备专用协议解析、连接授权策略、CAP 客户端访问策略引擎。

3. 三层访问控制模型

  1. 网关身份认证
     
    客户端连接网关时执行认证:域账号、智能卡、可叠加 MFA。
  2. CAP(连接授权策略)
     
    校验账号是否允许通过 RDGW 接入;约束认证方式、允许接入时段、设备组成员。
  3. RAP(资源授权策略)
     
    控制该用户隧道建立后,可以访问内网哪些后端服务器(RDSH、VDI 虚拟机列表);
     
    即使隧道打通,RAP 不允许目标地址,则拒绝转发流量。

4. 与 RD Connection Broker 协同逻辑

外网场景完整链路:
 
mstsc → RDGW 隧道 → RD Connection Broker → CB 调度返回后端地址 → RDGW 建立通往后端 RDSH / 虚拟机的连接。

5. 会话监控与超时管控

RDGW 跟踪所有活跃隧道连接,强制空闲超时、会话超时;可记录完整连接审计日志(用户、源 IP、接入时间、访问目标主机)。

二、依赖文件与核心组件

1. 核心服务

服务名称:TSGateway
 
可执行程序:%SystemRoot%\System32\TSGateway.exe

2. 关键二进制组件

  1. TSGateway.exe:网关主进程,TLS 侦听、隧道封装、CAP/RAP 策略执行
  2. TSGatewayPolicy.dll:CAP/RAP 策略引擎
  3. TSGatewayRpc.dll:RDGW 内部 RPC 管理接口
  4. CryptSsp.dll:支撑 TLS、凭据加密协商

3. IIS 绑定配套

RDGW 依赖 IIS 虚拟目录 RPC,默认站点绑定 443;
 
物理路径:C:\Windows\System32\tsgateway\web
客户端 RDP over HTTPS 访问路径:https://rdgw.domain.com/rpc/rpcproxy.dll

4. 注册表关键路径

reg
 
 
 
HKLM\SYSTEM\CurrentControlSet\Services\TSGateway
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Gateway
 

5. 事件日志

Microsoft-Windows-RemoteDesktopServices-Gateway/Operational
 
审计日志记录连接建立、拒绝、断开、策略拦截信息。

三、依赖关系

硬性强制依赖

  1. IIS + RPC 代理组件(RPC Over HTTP)
     
    RDGW 必须依托 IIS 发布 RPC 虚拟目录处理隧道请求;
  2. SSL/TLS 证书:443 端口绑定证书;公网环境必须可信证书;
  3. AD 域(标准企业部署):CAP/RAP 基于域用户 / 组进行权限控制;
  4. 网络端口:
    • 外网侧:TCP 443(入站)
    • 内网侧:RDGW 主动访问后端 3389;同时 RDGW 可与 RDWeb、CB 互通 RPC 端口。

可选依赖

  1. RD Connection Broker:外网会话调度、负载均衡、VDI 虚拟机路由;
  2. RDWeb:自动在 rdp 文件注入网关地址,简化终端配置;
  3. MFA 多因素认证插件(第三方):强化外网接入安全;
  4. RD Licensing:网关本身不消耗 CAL,后端 RDS 会话依旧需要 RDS CAL。

不依赖

  1. RDGW 服务器不需要安装 RDSH 角色;可独立部署;
  2. 不承载用户 RDP 会话进程,会话运行在后端 RDSH / 虚拟机;
  3. 不需要 Hyper-V(仅 VDI 后端需要)。

约束与安全限制

  1. 禁止公网同时开放 3389;接入统一走 RDGW 443 隧道;
  2. CAP/RAP 必须最小权限配置,不要配置 “允许所有用户访问所有内网资源”;
  3. RDGW 不能直接充当负载均衡器;负载均衡由 RD Connection Broker 实现;
  4. 客户端最低支持 RDP7.0 以上才能完整支持 RDP over HTTPS。

四、完整逻辑链路

场景:外网用户通过 RDWeb 下载 rdp,经由 RDGW 启动 RemoteApp

plaintext
 
 
 
1. 用户浏览器HTTPS访问RDWeb,登录认证;
2. RDWeb向RD Connection Broker查询可用RemoteApp,生成rdp文件,自动写入网关参数;
3. 用户下载rdp文件,mstsc读取配置;
4. mstsc发起连接:先建立TLS会话至RDGW 443,启动RDP over HTTPS隧道;
5. RDGW接收连接请求,触发身份认证(密码/智能卡/MFA);
6. RDGW加载CAP策略:判断该账号是否允许接入网关;
   CAP拒绝 → 直接断开隧道;
7. 认证通过后,客户端请求连接目标地址(CB/RDSH/虚拟机);
8. RDGW加载RAP策略:校验用户是否有权访问目标内网主机;
   RAP拒绝 → 不转发流量,隧道断开;
9. 策略校验通过,RDGW在内网发起TCP连接至目标服务器;
10. 隧道双向打通:封装/解封装RDP流量;
11. 流量到达RD Connection Broker:CB执行负载均衡/会话漫游调度,返回最终RDSH地址;
12. 客户端经由隧道重定向连接到选定RDSH;协商RDP通道,启用RAIL启动RemoteApp;
13. 用户关闭应用,隧道空闲超时或主动断开,RDGW回收连接,写入审计日志。
 

简化链路(直连 VDI 虚拟机,不经过 CB 前置协商)

mstsc → HTTPS 隧道 RDGW → RDGW 转发 TCP3389 → VDI 虚拟机
适合固定桌面直连场景,缺失负载均衡与会话漫游能力。

典型异常分支

① 证书不信任 → TLS 握手失败,隧道无法建立;
 
② CAP 策略拦截账号 → 网关层面拒绝接入;
 
③ RAP 策略禁止访问目标主机 → 隧道打通,但无法转发流量;
 
④ IIS RPC 虚拟目录异常 → RDP over HTTPS 隧道初始化失败;
 
⑤ 内网防火墙拦截 RDGW 访问后端 3389 → 连接超时。

五、配套运维链

1. PowerShell 安装 RD Gateway 角色

powershell
 
 
 
Install-WindowsFeature RDS-Gateway -IncludeAllSubFeature -IncludeManagementTools
 

2. 核心管理入口

  1. 远程桌面网关管理器(配置 CAP、RAP、证书、超时策略)
  2. IIS 管理器:检查默认网站 443 绑定、RPC 虚拟目录状态
  3. rdsdiagnostics.msc RDS 链路诊断
  4. RD Gateway PowerShell 模块:
powershell
 
 
 
Get-RDCapPolicy
Get-RDRapPolicy
 

3. 标准故障排查顺序

  1. 确认 TSGateway、W3SVC 服务正常运行;
  2. 检查 443 证书绑定、IIS RPC 虚拟目录正常;
  3. 核对 CAP 允许用户接入、RAP 放开目标后端访问权限;
  4. 测试 RDGW 能否内网连通后端服务器 3389;
  5. 查看网关事件日志,定位认证拒绝、策略拦截原因;
  6. 下载 rdp 文件确认 gatewayhostname 参数配置正确。

六、运维风险与认知误区

  1. 重大误区
     
    RDGW ≠ RDWeb。
  • RDWeb:网页门户、下发 rdp 文件;流量只是网页;
  • RDGW:封装转发 RDP 图形流量;真正承担外网远程隧道;
     
    外网完整方案二者搭配使用,缺一不可。
  1. RDGW 仅做流量代理,不处理 RDS 授权(CAL),CAL 校验发生在后端 RDSH / 虚拟机内部。
  2. 攻击面管控:外网仅开放 443,杜绝公网暴露 3389;
  3. 审计价值:所有外网接入行为统一经过 RDGW,集中记录源 IP、账号、访问目标;
  4. 高可用场景:多台 RDGW 可部署负载均衡,共享 CAP/RAP 策略配置。

七、整套微软 RDS 组件功能汇总简表

组件 主要端口 核心职能 是否承载用户会话进程
RD Connection Broker RPC (135 + 动态) 调度、负载均衡、会话目录、资源元数据
RD Web Access HTTPS 443 门户展示、动态生成 rdp 文件
RD Gateway HTTPS 443 RDP over HTTPS 隧道、外网安全接入、访问策略控制
RD Session Host(RDSH) TCP 3389 运行 RemoteApp / 共享桌面会话
RD Virtualization Host(RDVH) RPC+VMBus Hyper-V 虚拟机生命周期管理(VDI)
RD Licensing RPC 发放 RDS CAL 授权票据

RD Connection Broker(RD 连接代理,简称 CB)完整拆解解构

术语概述

RD Connection Broker(RD CB),远程桌面连接代理,是整套微软 RDS 平台核心调度中枢、元数据中心、会话目录
 
所有 RDS 组件(RDWeb、RD Gateway、RDSH、RDVH)都依赖 CB 实现资源路由、会话管理、负载均衡。
核心定位:
 
不处理 RDP 图形流量,不承载用户会话;只负责查询、路由、状态调度、权限协调、负载决策

一、底层原理

1. 整体架构模型

plaintext
RDWeb / RD Gateway / mstsc客户端请求
        ↓ RPC/WMI
RD Connection Broker(调度决策中心)
├─ 管理 RDSH 集合(多会话主机、RemoteApp)
└─ 管理 RDVH 虚拟桌面集合(VDI持久/非持久池)
        ↓ RPC
RDSH集群节点 / RDVH宿主机(VmHostAgent)

2. 五大核心能力

  1. 会话目录(Session Directory)
     
    记录每个用户已存在的 RDP 会话位于哪一台 RDSH;实现会话漫游重定向
     
    用户再次发起连接,CB 查询会话位置,直接引导客户端连到原有服务器,不会新建空白会话。
  2. 负载均衡调度(RDSH 集合)
     
    采集集合内所有 RDSH 当前会话数量、负载指标;
     
    新会话分配给负载最低节点,实现集群负载均衡。
  3. VDI 桌面生命周期调度(RDVH)
  • 持久桌面池:记录用户与虚拟机绑定关系;
  • 非持久桌面池:调度空闲虚拟机、下发开机 / 重置指令给 RDVH 的 VmHostAgent;
     
    追踪虚拟机运行状态、IP 地址,反馈给 RDWeb 写入 rdp 文件。
  1. 资源发布元数据存储
     
    所有 RemoteApp 清单、虚拟桌面集合、访问权限、应用参数统一在 CB 维护;
     
    RDWeb、管理控制台向 CB 拉取资源列表。
  2. 重定向逻辑(客户端导向)
     
    CB 不会中转 RDP 流量;只向客户端返回目标服务器地址,由 mstsc 直接建立 TCP 连接至后端 RDSH / 虚拟机。

3. 两种重定向模式

  1. 原生重定向(标准模式)
     
    CB 返回后端 RDSH / 虚拟机 IP,客户端直连后端;内网环境主流方案。
  2. 网关协同重定向
     
    外网搭配 RD Gateway 时,rdp 文件写入网关地址;客户端流量先到 Gateway,再由 Gateway 转发到后端。

4. 高可用模式(CB 集群)

支持多台 CB 组成集群,共享SQL Server 数据库存储所有会话、集合、虚拟机元数据;
 
单机 CB 使用本地嵌入式数据库;集群必须外置 SQL,防止单点故障。

二、依赖文件与核心组件

1. 核心服务

服务名称:Tssdis
 
显示名称:Remote Desktop Connection Broker
 
可执行程序:%SystemRoot%\System32\tssdis.exe

2. 关键二进制组件

  1. tssdis.exe
     
    RD Connection Broker 主进程,负责 RPC 侦听、会话数据库管理、负载计算、调度逻辑
  2. TssdisProxy.dll
     
    RPC 通信代理,处理来自 RDWeb、VmHostAgent、RDSH 节点的外部请求
  3. Rdms.dll
     
    远程桌面管理服务组件,支撑服务器管理器 RDS 控制台读写集合配置
  4. UmsSrv.dll 用户映射服务(VDI 持久桌面用户绑定)

3. 数据存储

  • 单机部署:本地 WID(Windows Internal Database)嵌入式数据库
  • 高可用集群:外置 SQL Server(存储集合、会话、虚拟机分配信息)

4. 注册表关键路径

reg
HKLM\SYSTEM\CurrentControlSet\Services\Tssdis
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\ConnectionBroker

5. 事件日志

Microsoft-Windows-RemoteDesktopServices-ConnectionBroker/Operational

三、依赖关系

硬性强制依赖

  1. RPC 协议通信
     
    所有 RDS 服务器与 CB 之间依靠 RPC 交互;端口:TCP 135 + 动态 RPC 端口范围。
  2. 集合成员主动向 CB 注册
  • RDSH 节点加入集合后,主动上报会话负载、会话清单;
  • RDVH 宿主机 VmHostAgent 持续上报虚拟机状态。
  1. RDWeb、RD Gateway 必须网络可达 CB,否则无法获取资源清单、无法路由会话。

可选依赖

  1. 外置 SQL Server:CB 集群高可用必需;单机可使用内置 WID;
  2. RD Licensing:CB 本身不处理授权,但后端 RDSH / 虚拟机会话需要 CAL;
  3. RD Gateway:外网接入场景协同;
  4. FSLogix:用户配置漫游(与 CB 调度逻辑无关,属于会话层配套)。

不依赖

  1. 不需要安装 RDSH 角色;CB 可以独立部署;
  2. 不处理 RDP 3389 流量;没有 RDP 协议栈,不参与图形传输;
  3. 仅 RDSH 集合场景不需要 Hyper-V;Hyper-V 只供 RDVH VDI 使用。

约束与限制

  1. CB 宕机影响:无法新建会话;已建立的 RDP 会话不受影响(会话运行在 RDSH / 虚拟机);仅丧失调度、重定向能力;
  2. 所有服务器必须在同一 AD 域(标准企业部署);工作组部署功能受限;
  3. 一台 CB 可以同时管理多个 RDS 集合(RDSH 集合 + VDI 桌面集合)。

四、完整逻辑链路

链路 A:用户通过 RDWeb 启动 RemoteApp(RDSH 集合场景)

plaintext
1. 浏览器访问RDWeb;RDWeb通过RPC向CB发起请求:查询当前用户可用资源;
2. CB查询数据库,返回该用户授权的RemoteApp列表;页面展示应用;
3. 用户点击应用,RDWeb请求rdp.aspx,向CB查询应用对应的目标集合信息;
4. 用户下载rdp文件,mstsc发起连接至CB(或先访问CB执行初始协商);
5. CB执行调度逻辑:
   ① 查询用户是否存在活动会话;存在 → 返回原有RDSH地址(会话漫游);
   ② 无旧会话 → 根据负载均衡算法选出负载最低RDSH节点;
6. CB将目标RDSH地址下发给mstsc客户端;
7. mstsc断开与CB的连接,直接TCP连接目标RDSH 3389;
8. RDSH建立RDP会话,启用RAIL启动RemoteApp;
9. RDSH持续把新会话信息上报给CB,写入会话目录数据库。

链路 B:VDI 场景(RDVH 持久桌面池)

plaintext
1. RDWeb向CB查询用户虚拟机;
2. CB数据库查询该用户绑定的虚拟机名称;
3. CB向对应RDVH宿主机下发指令启动虚拟机;
4. RDVH的VmHostAgent等待虚拟机开机、VMBus上报IP;
5. VmHostAgent把虚拟机IP回传给CB;
6. CB将虚拟机IP传递给RDWeb,写入rdp文件下发客户端;
7. mstsc直连虚拟机建立RDP会话。

链路 C:会话漫游重连场景

plaintext
1. 用户断开RemoteApp,会话保留在RDSH;
2. 用户在另一台终端重新打开RDWeb启动同一应用;
3. 请求到达CB;CB查询会话目录:找到用户现有会话所在RDSH;
4. CB直接引导客户端连到原有服务器;会话恢复,不新建进程。

典型异常分支

① Tssdis 服务崩溃 → 无法新建会话、RDWeb 看不到应用列表;已存在会话正常运行;
 
② RDSH 节点离线未向 CB 注销 → CB 负载计算错误,继续分配会话至故障节点;
 
③ RPC 防火墙拦截 → RDWeb 无法获取资源清单,页面空白;
 
④ 数据库损坏 → 丢失会话目录、虚拟机绑定信息,会话漫游失效。

五、配套运维链

1. PowerShell 安装 Connection Broker 角色

powershell
Install-WindowsFeature RDS-Connection-Broker -IncludeAllSubFeature

2. 核心管理入口

  1. 服务器管理器 → 远程桌面服务(创建集合、发布 RemoteApp、管理 VDI 池)
  2. rdsdiagnostics.msc RDS 链路诊断
  3. RDS PowerShell 模块:
powershell
Get-RDServer
Get-RDSessionCollection
Get-RDUserSession

3. 标准故障排查顺序

  1. 确认 Tssdis 服务正常运行;
  2. 检查服务器之间 RPC 连通(TCP135 与动态端口放行);
  3. 核对 RDSH/RDVH 已成功加入 CB 集合;
  4. 查看 Connection Broker 事件日志;
  5. 集群场景排查 SQL 数据库连接、权限。

六、运维风险与认知误区

  1. 重大误区
     
    CB 宕机 ≠ 用户会话全部掉线。已经建立的 RDP 会话继续运行;只是无法新建连接、无法会话漫游。
  2. 负载均衡只作用于新建会话;已有会话不会自动迁移到空闲 RDSH。
  3. 不要把 CB 部署在高负载 RDSH 节点;调度进程与大量用户会话抢占资源。
  4. VDI 环境下,CB 只负责下发开机指令;虚拟机能否正常启动由 RDVH+Hyper-V 负责。
  5. 所有权限、资源发布统一在 CB 集合层面管控,不要单独修改单台 RDSH 配置。

七、整套 RDS 组件职能简表

组件 流量类型 核心职能 是否承载用户会话
RD Connection Broker RPC 控制流量 调度、负载均衡、会话目录
RDWeb HTTPS 443 门户、下发 rdp 文件
RD Gateway HTTPS 443 RDP 流量隧道代理
RDSH TCP 3389 RDP 运行 RemoteApp / 共享桌面
RDVH RPC+VMBus 管控 Hyper-V VDI 虚拟机 ❌(虚拟机承载会话)
RD Licensing RPC 发放 RDS CAL 授权票据
 

RD Virtualization Host(RDVH)完整拆解解构

术语定义
 
RDVH(RD Virtualization Host),远程桌面虚拟化主机,是微软 VDI 架构核心承载角色。
 
作用:运行在 Hyper-V 宿主机上,负责创建、生命周期管理 Windows 虚拟机,配合 RD Connection Broker、RD Licensing,向用户交付一对一独立虚拟机桌面(标准 VDI)
 
关键区分:
  • RDSH:多用户共享一套 OS;
  • RDVH:每个用户独占一台虚拟机,属于微软原生 VDI 实现;
  • RDVH必须依托 Hyper-V,不能运行在 VMware/KVM 裸虚拟化上(微软原生栈)。

一、底层原理

1. 整体协作架构

plaintext
用户RDP客户端 → RD Connection Broker(连接代理)
                    ↓
RD Connection Broker ↔ RDVH宿主机(Hyper-V + RDVH角色)
                    ↓
                Hyper-V虚拟机(用户虚拟桌面)
  1. 调度逻辑
     
    用户发起 VDI 桌面请求 → Broker 查询桌面池状态 → 选取一台空闲虚拟机;
     
    Broker 通知对应 RDVH 启动 / 分配虚拟机;虚拟机就绪后,Broker 引导客户端直接 RDP 连接虚拟机。
  2. 虚拟机两种交付模式
  • 持久桌面池:虚拟机固定分配给用户,关机保留磁盘变更;
  • 非持久桌面池:用户注销后重置虚拟机,使用差异镜像快速复原。
  1. 虚拟机内部通信机制(关键)
     
    虚拟机内部安装 远程桌面虚拟化集成组件(Integration Services 配套 RDP 虚拟通道)
     
    RDVH 宿主机通过 Hyper-V VMBus 与虚拟机内部 RDP 栈通信,实现:
  • 虚拟机状态上报(开机、关机、就绪);
  • 虚拟机 IP 地址自动采集,供 Broker 下发给客户端;
  • 虚拟机快照、重置、开关机指令下发;
虚拟机对外暴露标准 RDP 3389,用户直接连接虚拟机内部 TermService,并非连接 RDVH 宿主机 3389
  1. 授权流转逻辑
     
    用户连接虚拟机内部 RDP 会话 → 虚拟机内 TermService 同样需要向 RD Licensing 申请 RDS CAL;
     
    无论持久 / 非持久 VDI 桌面,均消耗 RDS CAL(Per Device / Per User)。
  2. 与 RDSH 本质差异
     
    RDSH 会话运行在宿主机操作系统会话空间;
     
    RDVH 仅负责管理 Hyper-V 虚拟机,用户会话完全隔离在独立虚拟机 OS 内。

二、依赖文件与核心组件

1. RDVH 宿主机核心角色组件

  1. VmHostAgent.exe RDVH 核心代理进程
     
    负责和 RD Connection Broker 建立 RPC 通信、上报虚拟机清单、接收调度指令、通过 VMBus 管控虚拟机。
  2. VmHostAgent.dll:代理核心逻辑库
  3. Hyper-V 核心组件:vmms.exe(虚拟机管理服务)、vmwp.exe(虚拟机工作进程)
  4. 注册表核心路径
reg
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppRemoting
HKLM\SYSTEM\CurrentControlSet\Services\VmHostAgent

2. 虚拟机内部必备组件(虚拟桌面模板)

  1. TermService(RDP 服务)、termsrv.dll
  2. Hyper-V 集成服务(VMBus 驱动,实现宿主机 ↔ 虚拟机通信)
  3. 虚拟机内部 RDP 栈:rdpdd.dllrdpwd.sys
虚拟机自身是独立 Windows,拥有完整 RDP 协议栈。

3. 配套外部组件文件

  • RD Connection Broker:tssdis.exe,会话调度、桌面池数据库;
  • RD Licensing:lserver.exe,CAL 发放;
  • 可选:RD Gateway tsgateway.exe,外网接入代理。

4. 关键事件日志

Microsoft-Windows-RemoteDesktopServices-VirtualizationHost/Operational

三、依赖关系

硬性强制依赖

  1. 操作系统虚拟化底座
     
    RDVH 角色只能部署在启用 Hyper-V 的 Windows Server;必须安装 Hyper-V 角色,不支持第三方虚拟化。
  2. RD Connection Broker(强制依赖)
     
    RDVH 无法独立工作,所有桌面分配请求、状态同步都由 Broker 统一调度;单机 RDVH 也必须对接 Broker。
  3. 虚拟机内部集成服务
     
    缺少 VMBus 驱动 → 宿主机无法获取虚拟机 IP、无法下发控制指令,桌面分配失败。
  4. 授权依赖
     
    虚拟机建立 RDP 会话时,需要网络可达 RD Licensing Server 获取 RDS CAL;虚拟机同样拥有 120 天宽限期。
  5. 网络端口
  • RDVH ↔ Broker:RPC 通信;
  • RDVH 宿主机 ↔ 虚拟机:VMBus(内存通道,无需 TCP 端口);
  • 客户端 ↔ 虚拟机:TCP 3389(可选 EDT UDP 3389);
  • 虚拟机 ↔ RD Licensing:RPC 135 + 动态端口。

可选依赖

  1. RD Gateway:外网用户安全接入,封装 RDP 流量;
  2. RD Web Access:浏览器门户发起 VDI 桌面请求;
  3. 共享存储(CSV 集群共享卷):多台 RDVH 集群,实现虚拟机高可用、动态迁移;
  4. FSLogix:持久用户配置文件,解决非持久桌面注销重置丢失配置问题。

不依赖

  1. RDVH 宿主机不需要安装 RDS-RD-Server(RDSH 角色);二者互斥场景极少,架构目标完全不同;
  2. 不强制 AD(但企业 VDI 标准部署基于 AD;Per User CAL 必须 AD);

约束与互斥

  1. 一台宿主机同时可以充当 RDVH + Hyper-V,但不建议叠加大规模 RDSH 负载;
  2. 非持久桌面池依赖差异磁盘快照技术,模板虚拟机禁止开机运行;
  3. RemoteFX vGPU 组件已永久移除;新版 Windows Server 采用离散设备分配 DDA 实现虚拟机 GPU 加速;
  4. 虚拟机模板禁止开启 RDSH 角色;VDI 虚拟机是单用户桌面系统(Win10/11 企业版)。

四、完整逻辑链路(VDI 桌面分配全流程)

plaintext
1. 用户通过mstsc / RDWeb门户发起VDI桌面请求,请求送达RD Connection Broker;
2. Broker查询桌面池数据库:
   - 持久池:查找用户绑定虚拟机;
   - 非持久池:寻找空闲、已关机虚拟机;
3. Broker向对应RDVH宿主机(VmHostAgent.exe)下发指令:启动指定虚拟机;
4. RDVH调用Hyper-V vmms.exe启动虚拟机;
5. 虚拟机启动,VMBus驱动就绪;虚拟机通过VMBus上报IP、运行状态给VmHostAgent;
6. VmHostAgent将虚拟机信息回传给Connection Broker;
7. Broker向客户端返回虚拟机IP地址,引导客户端建立RDP连接;
8. 客户端TCP连接虚拟机3389,TLS+NLA身份验证;
9. 虚拟机内部TermService启动会话,执行授权校验:
   宽限期有效 / 成功获取RD Licensing CAL → 会话正常建立;
10. 用户操作虚拟机;会话运行在虚拟机内部,与RDVH宿主机隔离;
11. 用户注销/断开:
    - 持久桌面:虚拟机保持运行或根据策略关机;
    - 非持久桌面:触发快照重置,恢复至纯净模板状态。

异常分支:
① VMBus异常 → RDVH无法获取虚拟机IP,Broker无法下发接入地址,连接失败;
② 虚拟机无法连通RD Licensing,宽限期过期 → 虚拟机拒绝新RDP接入;
③ Hyper-V服务崩溃 → VmHostAgent无法管控虚拟机;
④ 模板快照损坏 → 非持久桌面重置失败。

五、配套运维链

1. PowerShell 安装角色(RDVH 最小部署)

powershell
# 先安装Hyper-V
Install-WindowsFeature Hyper-V -IncludeAllSubFeature
# 安装RD虚拟化主机角色
Install-WindowsFeature RDS-Virtualization -IncludeManagementTools
Restart-Computer

2. 核心管理工具

  1. 服务器管理器 → 远程桌面服务控制台(管理桌面池、虚拟机集合)
  2. Hyper-V 管理器:管理底层虚拟机;
  3. rdsdiagnostics.msc:诊断 VDI 授权、Broker 连通故障;
  4. PowerShell RDS 模块:
powershell
Get-RDVirtualDesktopCollection
Get-RDVirtualDesktop

3. 标准故障排查顺序

  1. 检查 VmHostAgent、vmms 服务运行状态;
  2. 确认 RDVH 正常注册到 RD Connection Broker;
  3. 验证虚拟机集成服务正常,宿主机可读到虚拟机 IP;
  4. 虚拟机内部网络连通 RD Licensing 服务器;
  5. 查看 RemoteDesktopServices-VirtualizationHost 事件日志;
  6. 非持久桌面故障:检查模板快照、差异磁盘权限与存储可用性。

六、关键运维风险预警

  1. 存储压力远高于 RDSH
     
    每一台 VDI 虚拟机拥有独立系统磁盘;大规模部署必须使用 CSV 集群共享卷、超融合存储;
  2. 非持久桌面配置丢失
     
    默认注销重置全盘,不保存用户数据,必须部署 FSLogix 配置文件容器;
  3. 网络分层易错
     
    大量运维误将客户端连接 RDVH 宿主机 3389;用户实际连接目标是虚拟机 IP;
  4. CAL 合规陷阱
     
    很多人误以为 VDI 不需要 RDS CAL;只要通过 RDP 接入虚拟机桌面,即消耗 RDS CAL;
  5. 高可用局限
     
    单台 RDVH 宿主机宕机,其上所有运行中的虚拟机全部中断;依赖 Hyper-V 实时迁移实现冗余。

七、RDSH vs RDVH 架构横向对比

项目 RD Session Host(RDSH) RD Virtualization Host(RDVH / VDI)
会话载体 宿主机操作系统会话空间 独立 Hyper-V 虚拟机
用户隔离 进程级隔离,共享内核 完整 OS 隔离,安全性更高
虚拟化依赖 不需要 Hyper-V 强制依赖 Hyper-V
系统载体 Windows Server Windows Server(宿主机)+ Win10/11(虚拟机)
典型场景 呼叫中心、RemoteApp、轻量共享桌面 安全办公、涉密终端、设计工作站
资源开销 低,一台服务器承载大量用户 高,每用户独占系统磁盘与内存

 


Windows RDS(Remote Desktop Services,远程桌面服务)是微软Windows Server操作系统的一项功能,允许用户通过远程桌面连接访问桌面和应用程序。它主要用于企业环境,提供集中管理、虚拟桌面和应用交付。

Windows RDS的主要功能:

  1. 远程桌面会话主机(RDSH):允许用户远程访问共享的桌面环境,通常用于运行多个用户会话的服务器。
  2. 远程桌面虚拟化(VDI):允许创建和管理虚拟机(VM),每个虚拟机可以提供个性化的桌面环境,适合需要专用环境的用户。
  3. 远程桌面网关(RD Gateway):通过HTTPS连接远程桌面,保护外部访问,确保用户通过Internet安全地连接到企业内部网络。
  4. 远程桌面会话主机(RD Session Host):允许多用户同时访问同一台计算机,并在虚拟环境中运行应用程序。
  5. 远程桌面授权管理器(RD Licensing):用于管理RDS的许可证,确保按照正确的协议使用。
  6. 远程桌面Web访问(RD Web Access):允许通过Web浏览器访问远程桌面和应用程序。

配置Windows RDS的一般步骤:

  1. 安装RDS角色:在Windows Server上通过服务器管理器安装“远程桌面服务”角色。
  2. 设置会话主机:配置远程桌面会话主机(RD Session Host)以允许远程桌面连接。
  3. 配置许可证管理器:根据公司规模,配置许可证管理器以为用户分配正确的RDS许可证。
  4. 配置远程桌面网关:如果需要通过互联网访问,配置RD Gateway确保远程连接的安全性。
  5. 分配用户和组:配置远程桌面访问权限,分配哪些用户和组可以连接到RDS。

常见问题和注意事项:

  • 许可证问题:RDS使用基于用户或设备的许可证,确保许可证数量足够并进行管理。
  • 性能问题:如果有大量用户同时连接,可能会影响服务器性能,因此需要进行负载均衡和资源优化。
  • 安全性:建议使用SSL加密来保护远程连接,确保数据传输安全。

深入学习并熟练掌握 Windows RDS(远程桌面服务),你可以从多个角度来探讨。以下是30个问题,涵盖了安装、配置、管理、故障排除、安全性和优化等方面:

1. RDS的基本概念是什么?

远程桌面服务(RDS,Remote Desktop Services) 是微软Windows Server操作系统中的一项关键技术,它允许用户通过网络远程连接到Windows Server上的桌面或应用程序。RDS可以为多个用户提供集中化的桌面环境、虚拟桌面基础架构(VDI)以及应用程序虚拟化。它通常用于企业环境,提供高度集中的计算资源管理,同时保证灵活、安全的远程访问。

基本概念:

RDS本质上是一个远程访问解决方案,能够让用户在任意地方通过网络访问公司内的计算机资源。用户可以连接到共享的会话主机,获得类似本地桌面的体验,甚至可以运行一些复杂的应用程序,而无需在每台计算机上单独安装这些应用程序。

RDS的核心功能包括:

  1. 远程桌面会话主机(RD Session Host):

    • 这是一种用于允许多个用户共享桌面环境的服务器角色。每个用户在连接到远程桌面时,实际上是在一个独立的会话中运行应用程序和访问文件。
    • 用户访问的环境是共享的,但每个用户拥有自己的工作空间。
  2. 远程桌面虚拟化(VDI,Virtual Desktop Infrastructure):

    • RDS支持虚拟桌面基础架构(VDI),即每个用户在虚拟机上获得一个独立的桌面。每个虚拟机(VM)可以有个性化的设置、应用和文件,与其他用户的桌面完全隔离。
    • 与会话主机不同,VDI提供个性化的虚拟桌面,而不仅仅是共享会话。
  3. 远程桌面网关(RD Gateway):

    • 远程桌面网关允许用户通过公共互联网连接到内网中的远程桌面服务,而无需打开VPN连接。它通过HTTPS协议加密数据传输,确保安全性。
  4. 远程桌面Web访问(RD Web Access):

    • RD Web Access是一个Web界面,用户可以通过浏览器访问远程桌面会话或应用程序。用户不需要专门的远程桌面客户端,只需通过浏览器即可使用。
  5. 远程桌面授权管理器(RD Licensing):

    • RDS需要许可证才能运行。RD Licensing用于管理和分配这些许可证,包括用户许可证(RDS CALs)和设备许可证。管理员可以通过RD Licensing角色来查看和管理许可证的使用情况。

RDS的主要优势:

  • 集中管理:所有应用程序和资源可以集中在服务器上,简化了软件部署和更新过程。
  • 远程访问:无论用户身处何地,都可以访问远程桌面,进行办公或使用公司内部应用。
  • 节省资源:相比传统的桌面计算,每个用户不需要高配置的本地设备,服务器端处理大部分计算工作。
  • 增强安全性:RDS通过加密、身份验证、访问控制等多层安全措施,保护数据的安全。

应用场景:

  • 企业桌面虚拟化:员工通过远程访问统一管理的虚拟桌面,减少了硬件投资并简化了IT管理。
  • 远程办公:员工在不同地点(如家里、出差等)访问公司内的应用和数据,保持高效工作。
  • 应用程序虚拟化:企业可以通过RDS只将特定应用程序发布到远程客户端,而不是整个平台,减少对资源的占用。

Windows RDS通过虚拟化技术将远程桌面和应用程序交付给用户,提供集中式的管理和高效的计算资源使用。这使得企业能够在不增加大量硬件投入的情况下,提供灵活的远程工作环境。

2. Windows RDS与传统远程桌面连接有什么不同?

Windows RDS(远程桌面服务)与传统远程桌面连接(Remote Desktop Connection,简称RDC)之间有几个关键的区别,主要体现在功能、扩展性、管理方式、用户体验等方面。

1. 架构与实现方式的不同

  • 传统远程桌面连接(RDC)

    • 传统远程桌面连接(RDC)主要是单个用户远程连接到远程计算机的桌面。用户通过远程桌面客户端(RDP客户端)访问一台Windows计算机或服务器。
    • 每个RDC会话通常对应一个单独的物理计算机或虚拟机,并且只有该用户在该计算机上工作。这个过程是直接的,用户体验类似于在本地直接操作该计算机。
  • Windows RDS

    • RDS则是一个完整的远程桌面服务平台,它允许多个用户在一台或多台服务器上共享资源。RDS可以配置成虚拟桌面基础架构(VDI),或使用远程桌面会话主机(RD Session Host)来共享会话,支持多用户同时连接并共享资源。
    • RDS提供了完整的架构,包括会话主机、网关、授权管理等组件,能够支持大规模的用户访问和集中管理。

2. 用户数量与多用户支持

  • 传统远程桌面连接(RDC)

    • 每次连接是单独的,通常只能支持一个用户连接到一台计算机。这意味着传统的RDC在一台计算机上只能为一个用户提供远程桌面。
    • 例如,你使用RDC连接到远程服务器时,你的会话占用该服务器的资源,其他用户无法同时访问同一台服务器上的桌面环境。
  • Windows RDS

    • RDS允许多个用户同时连接到一台服务器,每个用户都有自己的独立会话环境。多个用户可以通过RDS共享服务器上的资源,而不会互相干扰。
    • 这种多用户支持使得RDS非常适合于企业环境,能够高效地管理大量远程用户。

3. 功能与灵活性

  • 传统远程桌面连接(RDC)

    • RDC功能简单,主要提供单用户的远程桌面连接。用户可以访问远程计算机的桌面,进行操作,但没有其他功能如远程应用发布、会话重定向、负载均衡等高级特性。
  • Windows RDS

    • RDS提供更为丰富的功能。例如:
      • 应用程序发布:可以通过RDS只发布特定的应用程序,而不是整个桌面环境,用户可以在远程设备上运行这些应用程序。
      • 会话重定向:RDS允许对文件、打印机、剪贴板等资源进行重定向,使得用户在远程桌面上能够使用本地资源。
      • 负载均衡:RDS支持负载均衡,可以在多个会话主机之间分配用户连接,优化资源利用。
      • 远程桌面网关(RD Gateway):提供了通过互联网安全连接到RDS的功能,确保数据加密传输。
      • 远程桌面Web访问(RD Web Access):用户可以通过Web浏览器访问远程桌面和应用程序。

4. 管理与维护

  • 传统远程桌面连接(RDC)

    • 对于传统的RDC,管理较为简单,主要是对目标计算机的远程桌面进行配置。管理员需要在每台计算机上手动安装和配置远程桌面服务,并为每个用户配置访问权限。
    • 如果需要远程访问多个计算机,管理员需要逐一配置每台计算机的远程桌面设置,管理相对分散。
  • Windows RDS

    • RDS提供了集中的管理平台,管理员可以通过远程桌面管理器集中管理所有远程桌面会话、用户访问和资源分配。管理员还可以在RDS环境中配置多种角色和服务(如会话主机、授权管理、网关等),从而轻松管理大规模的远程桌面环境。
    • RDS支持集中式许可证管理,简化了企业中多用户的许可证分配。

5. 安全性

  • 传统远程桌面连接(RDC)

    • 对于单独的远程桌面连接,安全性通常通过使用密码、账户权限以及加密连接来保证。虽然RDP协议本身可以加密数据,但在没有额外安全措施的情况下,直接通过RDC连接可能面临一些风险。
  • Windows RDS

    • RDS提供多种安全功能,如通过RD Gateway进行加密的远程访问,确保通过公共互联网访问时数据的安全性。
    • RDS还可以使用**多因素认证(MFA)**来提高远程访问的安全性,确保只有经过身份验证的用户可以访问远程桌面环境。

6. 性能与扩展性

  • 传统远程桌面连接(RDC)

    • 由于每个远程桌面会话独占资源,传统RDC对服务器性能的要求较高。每次连接都需要单独为每个用户提供计算资源。
  • Windows RDS

    • RDS支持负载均衡、会话分配等功能,可以根据需要动态分配资源,允许管理员更高效地管理多个会话和用户,并且支持扩展到多个服务器,增加系统的整体性能。

  • 传统远程桌面连接适用于小规模、单一用户的远程桌面访问,适用于简单的远程连接场景。
  • Windows RDS是一个完整的远程桌面解决方案,适用于大规模、多用户的远程桌面和应用程序交付环境,提供更强的灵活性、安全性和扩展性。RDS能够集中管理多个用户会话、提供负载均衡、支持应用程序发布等功能,非常适合企业环境和复杂的远程办公需求。

Windows RDS传统远程桌面连接 的主要区别,以表格形式呈现:

特性 传统远程桌面连接(RDC) Windows RDS(远程桌面服务)
架构 连接到单个计算机的远程桌面 提供多用户同时连接的集中式远程桌面服务架构
支持用户数量 每次只能支持一个用户连接到一台计算机 支持多个用户同时连接到同一台或多台服务器
功能 仅提供远程桌面访问 提供远程桌面会话、应用程序发布、会话重定向等功能
适用场景 单用户、少量设备的远程连接 企业或大规模远程桌面与应用交付,适合多用户环境
资源共享 只能访问单台计算机的桌面环境 多用户共享服务器资源,每个用户有独立会话环境
管理方式 需要单独配置每台目标计算机 集中管理,支持多角色管理和许可证管理
安全性 使用RDP协议加密连接,但安全性较低 支持RD Gateway、MFA等安全功能,提供更强的安全性
负载均衡 不支持负载均衡 支持负载均衡,可在多个会话主机之间分配连接
远程应用发布 不支持远程应用程序发布 可以发布特定应用程序,而非整个桌面环境
会话管理 每个连接独立,无法管理多个会话 支持会话管理,集中控制和监控所有远程会话
扩展性 难以扩展至多个用户或多个设备 可以通过添加会话主机等组件轻松扩展

通过这个表格,可以清楚地看到 Windows RDS 相对于传统远程桌面连接的优势,特别是在多用户支持、管理、扩展性以及功能上。

3. 如何在Windows Server上安装RDS角色?

Windows Server 上安装 RDS(远程桌面服务) 角色,有两种常见方式:图形用户界面(GUI)操作命令行操作。下面分别列出这两种方式的详细步骤。

方法 1:使用图形用户界面(GUI)安装 RDS 角色

  1. 打开服务器管理器

    • 点击开始按钮,然后选择服务器管理器
  2. 添加角色和功能

    • 在服务器管理器窗口的右上角,点击管理(Manage) > 添加角色和功能(Add Roles and Features)。
  3. 选择安装类型

    • 在“安装类型”页面,选择基于角色或基于功能的安装(Role-based or feature-based installation),然后点击下一步
  4. 选择目标服务器

    • 在“目标服务器”页面,选择你要安装 RDS 角色的服务器。通常选择当前服务器,点击下一步
  5. 选择角色

    • 在“角色”页面,找到并勾选 远程桌面服务(Remote Desktop Services),然后点击下一步
  6. 选择 RDS 角色服务

    • 在“角色服务”页面,选择要安装的 RDS 组件。例如,选择:
      • 远程桌面会话主机(Remote Desktop Session Host)
      • 远程桌面授权(Remote Desktop Licensing)
      • 远程桌面网关(Remote Desktop Gateway)
      • 远程桌面连接代理(Remote Desktop Connection Broker)
      • 远程桌面 Web 访问(Remote Desktop Web Access)

    选择完毕后,点击下一步

  7. 确认安装

    • 在“确认”页面,确认你的选择并点击安装
  8. 等待安装完成

    • 安装过程完成后,点击关闭

方法 2:使用命令行(CMD 或 PowerShell)安装 RDS 角色

通过 PowerShell 安装 RDS 角色

  1. 打开 PowerShell 以管理员身份运行

    • 右键点击开始菜单中的 Windows PowerShell,选择以管理员身份运行
  2. 安装远程桌面服务角色: 使用以下 PowerShell 命令安装 RDS 角色及所需的服务组件:

    powershell
    Install-WindowsFeature -Name RDS-RD-Server
    • 该命令会安装远程桌面会话主机(Remote Desktop Session Host)。
  3. 安装其他 RDS 角色(可选): 根据需要,可以分别安装其他 RDS 组件,如远程桌面授权、远程桌面网关、会话代理等。使用以下命令:

    • 安装 远程桌面授权

      powershell
      Install-WindowsFeature -Name RDS-Licensing
    • 安装 远程桌面网关

      powershell
      Install-WindowsFeature -Name RDS-Gateway
    • 安装 远程桌面连接代理

      powershell
      Install-WindowsFeature -Name RDS-Connection-Broker
    • 安装 远程桌面 Web 访问

      powershell
      Install-WindowsFeature -Name RDS-Web-Access
  4. 重新启动服务器(如果需要): 如果安装过程中需要重启服务器,可以使用以下命令:

    powershell
    Restart-Computer

通过 CMD 安装 RDS 角色

CMD 中安装远程桌面服务角色与 PowerShell 类似,但需要使用 dism 命令。

  1. 打开命令提示符(CMD)以管理员身份运行

    • 右键点击开始菜单中的 命令提示符,选择以管理员身份运行
  2. 安装 RDS 角色: 使用以下命令安装远程桌面服务:

    cmd
    dism /online /enable-feature /featurename:Remote-Desktop-Services /all
  3. 安装其他 RDS 组件(可选): 如果需要安装更多的 RDS 组件,可以分别使用以下命令:

    • 安装 远程桌面会话主机

      cmd
      dism /online /enable-feature /featurename:RemoteDesktop-Session-Host /all
    • 安装 远程桌面授权

      cmd
      dism /online /enable-feature /featurename:RemoteDesktop-Licensing /all
    • 安装 远程桌面网关

      cmd
      dism /online /enable-feature /featurename:RemoteDesktop-Gateway /all
    • 安装 远程桌面连接代理

      cmd
      dism /online /enable-feature /featurename:RemoteDesktop-Connection-Broker /all
    • 安装 远程桌面 Web 访问

      cmd
      dism /online /enable-feature /featurename:RemoteDesktop-Web-Access /all
  4. 重新启动服务器(如果需要): 安装完成后,可以使用以下命令重启服务器:

    cmd
    shutdown /r /t 0

  • 图形用户界面(GUI):通过“服务器管理器”逐步配置和安装,适合不熟悉命令行的用户。
  • PowerShell / CMD:通过命令行安装,适合需要自动化和批量操作的环境。

根据你的需求选择适合的方式来安装 RDS 角色。

4. RDS的主要组件有哪些?

Windows RDS(远程桌面服务) 是一项强大的技术,用于为用户提供远程桌面访问、应用程序发布等服务。它由多个组件构成,每个组件负责不同的功能。以下是 RDS 的主要组件

1. 远程桌面会话主机 (RDSH)

  • 功能:允许用户通过远程桌面协议(RDP)连接到服务器并使用共享的桌面会话。每个连接的用户都在服务器上有一个独立的会话环境。
  • 适用场景:适用于需要多个用户同时访问远程桌面的环境,如企业或虚拟桌面基础架构(VDI)。

2. 远程桌面授权 (RD Licensing)

  • 功能:管理和分配 RDS 的客户端访问许可证(CALs)。没有有效的许可证,用户将无法连接到远程桌面会话主机。
  • 适用场景:必须为每个远程桌面客户端或设备分配许可证,用于合法使用 RDS。

3. 远程桌面连接代理 (RD Connection Broker)

  • 功能:为用户提供连接管理功能。它在多个会话主机之间平衡负载,并在用户断开连接后将他们重新连接到先前的会话。
  • 适用场景:适用于具有多个会话主机的环境,保证用户无论连接哪个服务器,都能找到最适合的服务器并重新连接到原始会话。

4. 远程桌面 Web 访问 (RD Web Access)

  • 功能:允许用户通过 web 浏览器访问远程桌面会话或发布的应用程序。通过 Web 访问,用户可以在任何地点,使用任何设备(如笔记本、平板、手机等)访问远程桌面服务。
  • 适用场景:用户需要通过浏览器从远程位置访问桌面或应用程序时。

5. 远程桌面网关 (RD Gateway)

  • 功能:通过 HTTPS 协议提供安全的远程桌面连接,允许用户在不暴露内部网络的情况下安全地从外部访问企业网络中的远程桌面会话主机或应用程序。
  • 适用场景:需要在不公开暴露 RDP 端口的情况下,提供远程访问功能。

6. 远程桌面虚拟化主机 (RD Virtualization Host)

  • 功能:提供虚拟桌面基础架构(VDI)支持。该组件允许在虚拟机上创建和管理桌面,而不是在物理服务器上直接提供会话。
  • 适用场景:适合企业级虚拟桌面基础设施,支持虚拟桌面连接与管理。

7. 远程桌面会话主机管理 (RD Session Host Management)

  • 功能:管理远程桌面会话主机的配置、策略和用户连接。管理员可以控制会话的生命周期、终止会话、重新启动服务器等。
  • 适用场景:管理员需要集中控制和管理多个远程桌面会话时。

8. 远程应用程序发布 (RemoteApp)

  • 功能:允许通过 RDS 发布特定应用程序而不是整个桌面。通过远程应用程序,用户可以在本地计算机上运行远程服务器上的应用程序,呈现的界面像本地应用一样。
  • 适用场景:适用于需要远程使用特定应用程序,而不是整个桌面环境的场景。

9. 远程桌面多点触控支持 (RD MultiPoint Services)

  • 功能:支持多用户通过一个触摸屏或多点触控设备进行交互,使得每个用户都可以通过各自的触摸点使用远程桌面。
  • 适用场景:适合教育、培训等场所,每个用户都能通过触摸屏独立使用远程桌面。

这些组件共同工作,为用户提供全面的远程桌面解决方案,包括会话管理、访问控制、安全性、应用程序发布等功能。根据企业的具体需求,可以选择安装不同的组件组合,形成灵活且强大的远程桌面服务环境。

5. 远程桌面会话主机(RD Session Host)是如何工作的?

远程桌面会话主机(RD Session Host,简称 RDSH)远程桌面服务(RDS) 中的核心组件,它允许多用户通过远程桌面协议(RDP)连接到服务器,并共享该服务器上的资源(如桌面、应用程序等)。RD Session Host 主要用于承载用户的桌面会话,使得多个用户可以同时登录并独立使用该服务器。

RD Session Host 的工作原理

1. 用户连接到 RD Session Host

  • 当用户通过 远程桌面客户端(如 Windows 自带的 Remote Desktop Client 或第三方工具)连接到远程桌面会话主机时,服务器会启动一个会话来处理该用户的连接。
  • 每个连接的用户都拥有自己的虚拟桌面环境。即使这些用户共享同一台物理服务器,操作系统会将每个用户的工作环境(包括应用程序、文件等)隔离开来。

2. 身份验证和授权

  • 身份验证:当用户发起远程连接时,RD Session Host 会要求用户提供凭据(用户名和密码)进行身份验证。验证通过后,系统检查该用户是否有足够的权限来登录。
  • 会话授权:远程桌面授权服务器(RD Licensing Server)会检查该用户是否有有效的 远程桌面客户端访问许可证(RDS CAL)。没有有效许可证的用户将无法连接。

3. 会话分配与负载均衡

  • 在多服务器环境中(例如有多个 RD Session Host 服务器),远程桌面连接代理(RD Connection Broker) 会决定将用户会话分配到哪台服务器。它还会根据服务器的负载情况进行负载均衡,确保每个服务器的资源利用率最优。
  • 用户连接后,RD Session Host 会启动并分配一个会话。该会话是完全独立的,用户只能访问属于自己的资源和应用。

4. 会话管理

  • 会话类型:RD Session Host 可以承载不同类型的会话,通常有两种类型:
    • 交互式会话:用户直接在屏幕上操作的会话,类似于本地桌面。
    • 应用程序发布:用户仅运行特定的应用程序,而不是整个桌面环境。
  • 会话隔离:每个用户的会话在内存和存储上是隔离的,用户无法干扰其他用户的会话或访问他们的文件和应用。
  • 会话终止:管理员可以随时终止不活跃的会话,或者在用户退出时会话自动关闭。

5. 会话重定向与断开连接

  • 当用户的会话断开时,RD Session Host 会将其会话保持在后台,用户可以在稍后重新连接到相同的会话,恢复到离开的状态。这是通过 会话重定向 实现的。
  • 如果用户断开连接并且没有完全注销,RD Session Host 会将会话状态保留在服务器上,避免丢失未保存的数据。

6. 资源共享与应用程序

  • 共享应用程序:通过 RD Session Host,多个用户可以共享服务器上安装的应用程序。应用程序通常以多实例的方式运行,每个用户都可以独立使用这些应用程序。
  • 虚拟桌面:如果 RD Session Host 配合 虚拟桌面基础架构(VDI) 使用,用户可以通过 RD Session Host 连接到虚拟机上的桌面环境,享受更强的资源隔离和定制化体验。

7. 与其他 RDS 组件的集成

  • 远程桌面连接代理(RD Connection Broker):如前所述,RD Connection Broker 会管理多个 RD Session Host 之间的用户会话,它确保用户能够连接到最合适的服务器并重新连接到先前的会话。
  • 远程桌面网关(RD Gateway):如果用户需要从外部网络(例如,互联网)访问远程桌面服务,RD Gateway 会为其提供安全的 HTTPS 隧道进行加密连接,确保安全访问。
  • 远程桌面 Web 访问(RD Web Access):通过浏览器访问 RD Session Host 服务器上的应用程序或桌面,用户可以在任何设备上通过 Web 浏览器进行远程操作。

RD Session Host 的应用场景

  • 多用户共享桌面:在企业环境中,多个员工可能需要通过远程桌面访问共享的桌面环境,特别是需要使用相同一组应用程序的场景。
  • 虚拟化桌面基础架构(VDI):通过 RDS 和虚拟桌面技术结合,RD Session Host 可以提供类似于 VDI 的功能,使得用户能够通过远程桌面访问虚拟机上的桌面。
  • 应用程序发布:在不提供完整桌面访问的情况下,只发布特定的应用程序给用户,这对于那些只需要单一应用程序而不需要完整桌面的用户非常有用。

RD Session Host 工作流程简述

  1. 用户启动远程桌面客户端并输入凭证。
  2. 服务器通过 RD Licensing Server 验证用户的许可证。
  3. RD Session Host 分配会话并启动应用程序。
  4. 用户开始使用远程桌面进行工作。
  5. 用户断开连接时,会话保持在服务器上,直到重新连接。
  6. 管理员可以根据需要终止会话,或者设置策略来控制会话的生命周期。

RD Session Host 是远程桌面服务(RDS)的核心,它通过允许多个用户共享服务器的桌面资源,提供了高效的远程桌面访问解决方案。无论是完全的桌面访问还是应用程序发布,它都能提供灵活的远程工作体验,并与其他 RDS 组件紧密集成,确保高效的资源管理和安全的远程访问。

6. 如何配置RDS授权管理器(RD Licensing)?

配置 RDS 授权管理器(RD Licensing) 是设置 远程桌面服务(RDS) 的重要步骤之一。RD Licensing 负责管理远程桌面客户端访问许可证(RDS CALs),并确保远程桌面会话主机(RD Session Host)允许合法用户连接。以下是如何配置和管理 RDS 授权管理器的步骤:

前提条件

  1. 确保已安装并配置好 远程桌面服务(RDS)角色,特别是 RD Session Host
  2. 你需要 远程桌面许可证(RDS CALs)。根据组织需求,选择 基于用户的许可证 或 基于设备的许可证
  3. 拥有 管理员权限

步骤 1:安装远程桌面授权角色

  1. 打开 服务器管理器,在左侧导航栏中选择 管理,然后点击 添加角色和功能
  2. 在 安装向导中,选择 基于角色或基于功能的安装
  3. 在 选择角色 页中,勾选 远程桌面服务,点击 下一步
  4. 在 选择角色服务 页面,勾选 远程桌面授权,然后继续完成安装。
  5. 安装完成后,重新启动服务器(如果需要)。

步骤 2:配置 RD 授权管理器

  1. 打开 远程桌面授权管理器

    • 你可以通过 开始菜单 搜索 rd licensing,或在服务器管理器中找到并打开 远程桌面授权管理器
  2. 远程桌面授权管理器 中,连接到授权服务器:

    • 如果你在本地安装了授权角色,选择本地服务器;如果是远程服务器,选择 连接到其他授权服务器,输入远程服务器的名称。
  3. 右键点击授权服务器,选择 激活服务器,以激活你的 RD 授权服务器。

    • 激活过程中会要求你提供许可证密钥(许可证密钥是购买 RDS CALs 时提供的)。

步骤 3:激活 RD 授权服务器

  1. 选择 下一步,然后输入你的 Microsoft 许可密钥
  2. 如果你的授权是 批量许可 或 MSA 许可证(例如,Microsoft 帐户许可证),你还需要输入额外的细节。
  3. 完成后,点击 激活,然后确认你的授权服务器已成功激活。

步骤 4:安装远程桌面 CAL

  1. 在 远程桌面授权管理器 中,选择已激活的服务器,右键点击并选择 安装许可证
  2. 选择 许可证类型,常见的有:
    • 基于设备的 CAL:每个连接的设备需要一个 CAL。
    • 基于用户的 CAL:每个连接的用户需要一个 CAL。
  3. 输入许可证密钥并选择 下一步
  4. 选择 许可证数量,即购买的 CAL 数量。
  5. 完成安装后,确保 许可证已成功安装

步骤 5:配置 RDS 授权服务器与 RD Session Host 服务器连接

  1. 打开 远程桌面会话主机配置(RD Session Host Configuration)。
  2. 在左侧的 树形结构 中,选择 RD Session Host
  3. 在 远程桌面授权服务器 部分,点击 更改
  4. 输入授权服务器的名称,确保 RD Session Host 连接到正确的授权服务器。
  5. 确认授权服务器已正确配置,点击 确定

步骤 6:检查许可证的使用情况

  1. 在 远程桌面授权管理器 中,选择 查看许可证状态,查看授权服务器和 CAL 的状态。
  2. 你可以查看 已分配许可证的详细信息,如许可证的数量、类型、有效期等。

步骤 7:监控和管理 RDS CAL 使用

  1. 许可证监控:定期查看远程桌面授权管理器中的许可证使用情况,确保没有超过已安装的许可证数量。
  2. 更新许可证:如果购买了额外的 CAL,可以在授权管理器中继续安装新的许可证。
  3. 过期和清理:如果某些许可证即将过期,或服务器不再使用某些许可证,可以手动清理过期的 CAL。

故障排除

  • 许可证未生效或出现错误:确保 RD 授权管理器中的许可证安装步骤完整,且服务器已成功连接到授权服务器。
  • 许可证数量不足:检查授权管理器中显示的 CAL 数量,确保未超过许可数量。如果超过,需要购买更多许可证。

配置 RD Licensing 是远程桌面服务部署的关键步骤之一。通过 远程桌面授权管理器,管理员可以方便地管理和配置远程桌面会话主机的授权。确保你选择合适的 RDS CAL 类型,并及时监控许可证的使用情况,以避免出现许可证超限的情况。

7. 如何配置远程桌面网关(RD Gateway)以安全地允许外部连接?

配置 远程桌面网关(RD Gateway) 是为了安全地允许外部用户通过互联网连接到公司内部的远程桌面会话主机(RD Session Host)。RD Gateway 使用 HTTPS 加密协议,使得通过防火墙或 NAT(网络地址转换)路由的远程连接更加安全。以下是配置 RD Gateway 的步骤:

前提条件

  1. 已安装并配置好 远程桌面服务(RDS)角色。
  2. 必须拥有 公共 SSL 证书,用于加密通信。可以从受信任的证书颁发机构(CA)购买证书,或使用 自签名证书(不推荐用于生产环境)。
  3. 必须有 管理员权限

步骤 1:安装远程桌面网关角色

  1. 打开 服务器管理器,点击 管理,然后选择 添加角色和功能
  2. 在安装向导中选择 基于角色或基于功能的安装
  3. 在 选择角色 页面,勾选 远程桌面服务,点击 下一步
  4. 在 选择角色服务 页面,勾选 远程桌面网关(RD Gateway),继续安装。
  5. 安装完成后,重新启动服务器(如果需要)。

步骤 2:配置 RD Gateway

  1. 打开 远程桌面网关管理器(RD Gateway Manager)。

    • 在 开始菜单 搜索 RD Gateway Manager,然后打开它。
  2. RD Gateway Manager 中,右键点击服务器名,选择 启动配置向导(Launch Configuration Wizard)。

  3. 配置 安全设置

    • 在配置向导中,你需要选择使用 SSL 证书(由受信任的证书颁发机构签发的证书)来加密远程连接。
    • 如果没有证书,你可以选择 自签名证书,但在生产环境中不推荐这样做。
  4. 配置 身份验证方法

    • 选择 基于用户名和密码 的身份验证方式。你也可以配置 双因素身份验证(2FA)以提高安全性。
  5. 配置 授权策略

    • 配置哪些用户组和计算机可以通过 RD Gateway 连接。你可以指定哪些用户可以使用远程桌面网关。
  6. 配置 连接策略

    • 你可以设置哪些客户端可以通过 RD Gateway 连接到内部网络。例如,可以设置只允许 Windows 客户端 或 Mac 客户端 连接。
  7. 完成配置并保存设置。

步骤 3:配置网络级别认证(NLA)

  1. 在 远程桌面网关管理器 中,点击 策略,然后选择 连接策略
  2. 确保选择了 使用网络级别认证(NLA) 来增强安全性。
    • NLA 强制要求客户端在建立会话之前进行身份验证,增加了额外的安全层。

步骤 4:配置外部防火墙和 NAT

  1. 配置防火墙,使其允许 TCP 443(HTTPS)端口的流量。通常,RD Gateway 使用 443 端口,该端口需要在防火墙中开放。

  2. 配置 NAT 路由(如果使用),将外部的 443 端口 流量转发到 RD Gateway 服务器。

  3. 确保防火墙和路由设备不会拦截或干扰来自外部的连接。

步骤 5:配置 RD 客户端连接

  1. 在客户端计算机上,打开 远程桌面连接(RDP)客户端。

  2. 远程桌面连接 客户端中,点击 显示选项,然后转到 高级 标签。

  3. 连接设置 中,选择 使用远程桌面网关服务器,并输入 RD Gateway 服务器的 外部 IP 地址DNS 名称

  4. 输入相应的 用户名和密码,以及 RD Gateway 需要的身份验证信息。

  5. 点击 连接,客户端将通过 HTTPS 通道连接到 RD Gateway,然后再通过安全的方式连接到目标 RD Session Host。

步骤 6:测试和验证

  1. 在外部计算机上,通过 远程桌面连接 客户端,使用 RD Gateway 地址连接到内网的远程桌面会话主机。

  2. 验证是否成功连接。如果连接失败,请检查以下内容:

    • RD Gateway 的端口(443)是否正确开放。
    • 证书 是否有效,并且客户端是否信任该证书。
    • 是否在 授权策略 中为用户配置了正确的权限。

故障排除

  • 连接超时或无法连接:检查防火墙设置,确保外部端口 443 已正确转发到 RD Gateway 服务器。
  • 证书问题:确保所使用的证书已正确安装,并且客户端信任该证书。
  • 身份验证失败:检查 RD Gateway 的身份验证设置,确保客户端凭据正确,并已授权通过网关。
  • 远程桌面服务未启动:确保远程桌面会话主机和 RD Gateway 服务都正常运行。

配置 远程桌面网关(RD Gateway) 能够让外部用户安全地通过互联网访问公司内部的远程桌面服务。通过配置合适的证书、身份验证方法、授权策略以及外部网络设置,你可以确保远程连接的安全性和稳定性。确保定期检查和更新配置,以满足日益增长的安全需求。

8. 什么是远程桌面虚拟化(VDI),它如何与RDS结合使用?

远程桌面虚拟化(VDI)简介

远程桌面虚拟化(VDI, Virtual Desktop Infrastructure) 是一种通过集中管理的虚拟桌面技术,在数据中心或云环境中托管虚拟化的桌面操作系统实例。用户通过远程连接到这些虚拟桌面,像在本地使用个人计算机一样工作。VDI的核心概念是用户的桌面环境、操作系统和应用程序都不在本地设备上运行,而是在远程服务器上执行,用户通过网络访问。

VDI的主要特点:

  • 集中管理:所有虚拟桌面都集中在服务器端进行管理、更新和维护,降低了IT管理的复杂性。
  • 灵活性和可扩展性:用户可以随时从任何设备(如笔记本、平板、智能手机等)连接到他们的虚拟桌面,支持跨平台访问。
  • 安全性:因为所有数据存储和处理都发生在数据中心,而不是客户端设备上,所以数据安全性得到了提高。
  • 成本效益:减少了对高性能客户端设备的需求,客户可以使用较低配置的终端设备来访问虚拟桌面。

VDI的工作原理:

  1. 在数据中心或云平台上,服务器会运行多个虚拟桌面操作系统(通常是 Windows 10 或 Windows Server)。
  2. 用户设备通过网络连接到远程桌面会话,并通过 远程桌面协议(RDP) 或 PCoIP 等协议访问虚拟桌面。
  3. 虚拟桌面包含与本地桌面类似的用户界面、应用程序和设置,但它们的所有数据和计算都在远程服务器上进行处理。

VDI与远程桌面服务(RDS)结合使用

远程桌面服务(RDS, Remote Desktop Services) 是微软的一个技术框架,用于实现远程访问桌面和应用程序的虚拟化。RDS 包含多个组件,其中 远程桌面会话主机(RD Session Host)远程桌面虚拟化主机(RD Virtualization Host) 是关键组成部分。

虽然 RDS 和 VDI 都提供远程桌面访问,但它们的工作方式不同,而且可以相互结合使用来提供更全面的桌面虚拟化体验。

RDS 与 VDI 的差异:

  1. RDS:通过 远程桌面会话(Session-based desktops)提供共享的桌面环境。多个用户可以通过远程桌面会话主机连接到同一个虚拟桌面实例,每个用户都有一个自己的会话,但所有人共享同一操作系统。
  2. VDI:每个用户都获得一个完全独立的虚拟桌面,每个桌面都在虚拟机中运行。每个虚拟桌面是独立的,类似于一个完整的操作系统实例。

VDI 与 RDS 的结合使用:

微软通过 远程桌面虚拟化主机(RD Virtualization Host) 提供支持虚拟桌面的功能。RDS 和 VDI 可以一起使用,提供灵活的远程桌面解决方案。

  1. 使用场景

    • RDS 适用于需要多个用户共享相同操作系统实例的情况。适合于使用标准化应用程序和桌面环境的企业。
    • VDI 适用于需要个性化桌面环境的用户,每个用户都需要拥有自己的桌面操作系统实例。适合要求高度定制化的企业。
  2. 资源优化

    • 在 RDS 中,多个用户共享服务器的资源,可以更高效地利用硬件资源。
    • 在 VDI 中,每个用户都有独立的虚拟机实例,资源使用可能较高,但提供了更高的隔离性和灵活性。
  3. 集中管理与灵活性

    • RDS 需要管理员在单一的服务器实例中管理多个用户会话,适合规模较大的标准化环境。
    • VDI 提供了更高的灵活性,每个虚拟桌面可以根据用户需求进行个性化配置,同时可以实现集中管理。

如何结合使用:

  • 混合模式部署:可以将 RDSVDI 部署在同一个环境中,根据不同的需求为用户提供不同类型的桌面。例如,可以为某些用户提供标准化的远程桌面会话,而为其他用户提供独立的虚拟桌面。

  • 远程桌面网关(RD Gateway):在远程用户通过 RD Gateway 访问远程桌面时,可以同时支持 RDS 会话桌面VDI 桌面。通过使用 RD Gateway,外部用户可以安全地访问内部的 RDS 会话或 VDI 桌面,增强了安全性。

  • 组合使用 RD Connection Broker 和 RD Virtualization Host:通过 RD Connection Broker 来管理 RDSVDI 的连接。RD Connection Broker 可以根据策略决定用户是连接到 RDS 共享桌面,还是连接到独立的 VDI 桌面。


  • VDI 提供独立的虚拟桌面环境,而 RDS 提供基于会话的共享桌面环境。
  • RDS 和 VDI 可以结合使用,以适应不同用户的需求,提供灵活且高效的桌面虚拟化解决方案。
  • VDI 提供更高的个性化和隔离性,而 RDS 提供更高的资源利用率和简化的管理。
  • 通过 RD Gateway 和 RD Connection Broker 等技术,RDS 和 VDI 可以实现更安全和集中化的远程桌面访问。

这种结合的部署方式能够根据业务需求灵活选择最适合的桌面虚拟化技术,同时确保用户的访问体验和管理的简便性。

9. 如何配置远程桌面Web访问(RD Web Access)?

配置 远程桌面Web访问(RD Web Access) 允许用户通过网页访问他们的远程桌面和应用程序,无需使用远程桌面客户端。RD Web Access 提供了一个基于浏览器的界面,用户可以通过访问特定的 URL 来启动他们的远程桌面会话或应用程序。

以下是配置 RD Web Access 的步骤:

1. 准备工作:

在配置 RD Web Access 之前,确保以下前提条件已经满足:

  • 已经安装并配置好 远程桌面服务(RDS),特别是 远程桌面会话主机(RD Session Host)
  • 安装了 远程桌面Web访问角色
  • 配置了 远程桌面网关(RD Gateway) 和 远程桌面连接代理(RD Connection Broker),这是为了实现跨网络访问。
  • 安装并配置了 SSL证书(建议使用有效的SSL证书来加密Web访问连接)。

2. 安装远程桌面Web访问角色(RD Web Access)

  1. 打开服务器管理器,在左侧面板中点击“管理” > “添加角色和功能”。
  2. 选择 基于角色的或基于功能的安装,然后选择目标服务器。
  3. 在角色选择页面中,选择 远程桌面服务
  4. 在 远程桌面角色 中,选择 远程桌面Web访问 角色。继续点击 下一步,然后安装。
  5. 安装完成后,重启服务器(如果需要)。

3. 配置远程桌面Web访问

  1. 打开 远程桌面管理器(Remote Desktop Services Manager)。

  2. 选择 远程桌面Web访问,然后右键点击并选择 配置

  3. 配置 RD Web Access 角色,设置 远程桌面Web门户(RD Web Portal)的相关设置。你可以指定 Web 访问的 URL 地址(例如:http://yourserver.domain.com/rdweb)。

    • 配置 SSL证书,确保访问是加密的,通常可以使用 HTTPS
    • 配置身份验证方式(Windows 身份验证或表单身份验证)。
  4. 确保 远程桌面连接代理(RD Connection Broker)已经正确配置,以便 RD Web Access 可以将用户重定向到正确的会话或虚拟桌面。

4. 配置远程桌面会话主机(RD Session Host)

确保远程桌面会话主机(RD Session Host)已配置为允许远程桌面会话。

  1. 在 远程桌面管理器 中,选择 远程桌面会话主机,右键选择 配置
  2. 设置 用户权限,确保允许通过 RD Web Access 连接到远程桌面。

5. 配置外部访问和网络设置

  1. 如果你希望外部用户(例如,远程用户)也能访问 Web 端口,确保防火墙已开放相关端口(通常是 443 用于 HTTPS)。
  2. 配置 远程桌面网关(RD Gateway) 以允许远程用户通过 HTTPS 访问内部资源。确保 RD Web Access 能够通过网关与远程桌面主机进行通信。

6. 配置SSL证书(可选)

建议使用 SSL证书 来保护用户与 RD Web Access 之间的通信,避免使用自签名证书,确保通信安全性。

  1. 获取并安装有效的 SSL 证书。
  2. 在 IIS 管理器 中,选择 默认网站,然后绑定到你的 SSL 证书。
    • 在 绑定 设置中选择 https,并选择已安装的证书。

7. 访问和测试

  1. 在 Web 浏览器中,输入 RD Web Access 的 URL(例如:https://yourserver.domain.com/rdweb)。
  2. 登录时输入凭据,应该能够访问到桌面和应用程序。

8. 设置应用程序访问(如果有需要)

  1. 如果你希望用户能够访问特定的应用程序(例如,远程桌面会话中的应用程序),你可以通过 RD Web Access 配置来发布这些应用程序。
  2. 在 远程桌面管理器 中,选择 应用程序,并指定要在 RD Web Access 页面上显示的应用程序。

9. 优化和调整

  • 配置访问权限:你可以设置哪些用户可以访问特定的应用程序或桌面,控制不同用户的访问权限。
  • 审计和监控:通过 RD Web Access 记录用户登录情况和远程桌面会话的活动。

  • 安装 RD Web Access 角色,然后配置所需的服务器和服务。
  • 配置 SSL 证书 以确保安全的 Web 访问。
  • 配置 远程桌面会话主机 和 远程桌面连接代理 以实现合适的桌面和应用程序分发。
  • 确保网络设置正确,尤其是在需要外部访问时,要配置好防火墙和 RD 网关。

通过这些步骤,你可以成功配置 RD Web Access,使得用户能够通过浏览器安全地访问远程桌面和应用程序。

10. 如何使用远程桌面连接客户端配置RDS连接?

要使用 远程桌面连接客户端(Remote Desktop Client) 配置 远程桌面服务(RDS)连接,需要确保你的客户端计算机已经安装了 远程桌面连接(RDP) 客户端,并且你有权限访问远程桌面会话主机(RD Session Host)或远程桌面应用程序(RemoteApp)。以下是如何配置和使用 远程桌面连接客户端 来连接到 RDS 的详细步骤:

1. 准备工作

  • 确保你有访问远程桌面会话主机(RD Session Host)或远程桌面网关(RD Gateway)的权限。
  • 确保你知道远程桌面的服务器地址(例如:rdsserver.yourdomain.com)以及相关的用户名和密码。

2. 安装远程桌面连接客户端(如果尚未安装)

在 Windows 操作系统上,远程桌面连接客户端通常已经默认安装。如果没有,可以从 Microsoft 官方网站 下载并安装最新版本的远程桌面客户端。

对于 Windows 10/11 用户

  • 打开 开始菜单,搜索并打开 远程桌面连接(Remote Desktop Connection)。
  • 如果没有找到,你可以访问 Microsoft Store 下载并安装 远程桌面应用

对于 macOS 用户

  • 打开 Mac App Store,搜索并下载 Microsoft 远程桌面(Microsoft Remote Desktop)应用程序。

对于 Android 和 iOS 用户

  • 你可以在 Google Play 商店或 Apple App Store 中搜索并下载 Microsoft 远程桌面 应用程序。

3. 配置远程桌面连接客户端

  1. 打开远程桌面连接客户端

    • 对于 Windows 用户,按下 Windows 键 + R,输入 mstsc 并按 回车
    • 对于 macOS、iOS 或 Android 用户,打开 Microsoft 远程桌面 应用。
  2. 输入远程桌面连接信息

    • 在远程桌面客户端的 计算机(Computer) 字段中,输入远程桌面主机的 IP 地址 或 主机名(例如,rdsserver.yourdomain.com)。
    • 如果你使用了 远程桌面网关(RD Gateway),点击 显示选项(Show Options),然后在 远程桌面网关(Gateway)选项卡中,输入 网关服务器的地址(例如:rdgateway.yourdomain.com)以及需要的身份验证信息。
  3. 选择显示选项(可选):

    • 在远程桌面客户端中,你可以配置显示分辨率、屏幕大小、资源重定向等选项(如打印机、剪贴板、磁盘驱动器等)。这些选项可以在 显示本地资源 和 体验 选项卡中进行设置。
  4. 输入凭据

    • 在登录时,你将需要提供 用户名 和 密码,这些凭据通常是你的企业账户凭据或 Windows 登录凭据。
    • 如果你使用的是 表单身份验证 或 RD Web Access,你可能需要输入用户名和密码并选择域(Domain)进行验证。
  5. 连接

    • 完成所有设置后,点击 连接(Connect)按钮,远程桌面客户端将尝试连接到远程桌面会话主机。
    • 如果是首次连接,客户端可能会提示你验证服务器的证书(特别是在使用自签名证书时)。点击  或 继续 来接受证书。

4. 远程桌面会话的使用

  • 一旦连接成功,远程桌面会话将启动,显示远程桌面主机的桌面界面。你可以像本地计算机一样使用远程计算机。
  • 如果你连接的是 远程桌面应用程序(RemoteApp),你将直接看到特定的应用程序,而不是整个桌面界面。

5. 通过远程桌面网关访问远程桌面服务

如果你需要通过 远程桌面网关(RD Gateway)进行外部访问,请按照以下步骤配置:

  1. 打开 远程桌面客户端,点击 显示选项(Show Options)
  2. 转到 远程桌面网关(Gateway)选项卡,选择 使用远程桌面网关服务器进行连接
  3. 在 远程桌面网关服务器 中,输入网关服务器的地址(例如:rdgateway.yourdomain.com)。
  4. 输入网关服务器需要的身份验证信息(通常是用户名和密码)。

6. 配置多重身份验证(可选)

为了提高安全性,您可以启用 多重身份验证(MFA),特别是在通过 RD网关Web Access 进行外部连接时。这可以在 远程桌面网关 配置中进行设置,要求用户输入验证码、PIN码或其他形式的第二次身份验证。

7. 断开和重新连接

  • 如果需要退出远程会话,只需在会话窗口中选择 开始菜单,点击 注销 或 关闭
  • 如果连接断开,你可以通过重新启动客户端并点击 重新连接 按钮来恢复会话。

  1. 打开远程桌面客户端并输入远程服务器的主机名或 IP 地址。
  2. 配置显示选项和资源重定向(如磁盘、打印机)。
  3. 如果使用远程桌面网关,输入网关服务器地址并配置相应的身份验证。
  4. 输入用户名和密码,并点击连接。
  5. 通过远程桌面客户端访问远程桌面会话或应用程序。

通过这些步骤,你可以顺利地使用远程桌面连接客户端来访问远程桌面服务(RDS)并开始使用远程桌面会话或应用程序。

11. RDS中如何管理多个用户会话?

远程桌面服务(RDS) 中管理多个用户会话,通常涉及配置、监控、和控制用户会话的活动。管理员可以通过以下几种方法来管理会话:

1. 使用远程桌面会话主机(RD Session Host)管理多个用户

RDS 中,远程桌面会话主机(RD Session Host) 提供了多用户会话功能,可以让多个用户同时连接并使用同一台服务器。管理员可以通过以下步骤来管理这些会话:

1.1. 使用远程桌面会话主机管理器

  • 打开 远程桌面服务管理器(Remote Desktop Services Manager)或 远程桌面会话主机管理器(Remote Desktop Session Host Manager)。
  • 在 远程桌面会话主机管理器 中,你可以查看所有当前的用户会话,包括每个用户的状态、会话 ID、CPU 使用率、内存使用情况等。
  • 可以通过右键单击特定会话来执行以下操作:
    • 断开会话:终止与该用户的连接,但不关闭他们的应用程序或文件。
    • 注销会话:完全终止用户会话,关闭所有应用程序和文件。
    • 查看会话:查看当前会话的详细信息,包括活动的应用程序和窗口。
    • 发送消息:向特定用户发送信息,提醒他们某些操作(如注销或断开连接)。
    • 查看会话性能:监控当前会话的资源使用情况,如 CPU 和内存使用率。

1.2. 管理会话的状态

  • 会话的状态有不同的类型,如“活动(Active)”,“断开(Disconnected)”,“注销(Logged Off)”等。
  • 活动会话:当前正在使用的会话。
  • 断开会话:用户曾连接过,但未完全注销的会话。可以继续恢复这些会话。
  • 注销会话:用户完全退出的会话。
  • 管理员可以设置自动注销策略(例如,用户会话空闲超过一定时间后自动注销)来释放资源。

2. 使用远程桌面网关(RD Gateway)控制访问

如果你使用了 远程桌面网关(RD Gateway)来控制外部用户连接到内部 RDS 服务器,管理员可以:

  • 配置 身份验证规则 和 访问策略,限制哪些用户或用户组能够访问远程桌面会话。
  • 控制每个会话的带宽使用,确保多个用户能够公平共享服务器资源。
  • 监控和管理外部访问的会话,确保不受未授权的外部连接影响。

3. 使用远程桌面连接授权(RD Licensing)进行许可证管理

  • 远程桌面许可服务器(RD Licensing) 用于管理 RDS 的许可证。管理员可以查看和分配可用的 客户端访问许可证(CAL),并确保每个用户或设备都获得了适当的授权。
  • 你可以通过 远程桌面许可管理器 监控许可证的使用情况,并管理许可证分配。

4. 使用 Group Policy(组策略)进行会话管理

  • 组策略 是管理多个用户会话的强大工具。管理员可以通过组策略来控制以下方面:
    • 限制每个用户的会话数量。
    • 配置会话超时设置,例如在一定时间内无活动时自动断开会话。
    • 限制用户访问特定的远程桌面功能,如文件传输和剪贴板共享。
    • 配置会话时间限制,例如限制某些应用程序的使用时间。

例如,通过组策略,可以配置 空闲会话超时(Idle session timeout)和 最大会话时间(Maximum session time)。

配置路径:

  • 打开 组策略管理器gpedit.msc 或 Group Policy Management Console)。
  • 转到 计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 会话限制

其中可以设置:

  • 最大空闲时间(Idle Time Limit):会话在没有活动时自动断开。
  • 会话时间限制(Session Time Limit):会话在达到指定时间后自动断开。
  • 连接最大数量:控制每个用户可以有多少个活动会话。

5. 使用 PowerShell 管理远程桌面会话

通过 PowerShell,管理员可以脚本化远程桌面会话管理。以下是一些常见的 PowerShell 命令:

  • 列出所有会话:

    powershell
    Get-RDUserSession
  • 断开某个会话:

    powershell
    Stop-RDUserSession -HostServer "ServerName" -UnifiedSessionID 2
  • 注销会话:

    powershell
    Logoff-RDUserSession -HostServer "ServerName" -UnifiedSessionID 2
  • 获取远程桌面会话主机信息:

    powershell
    Get-RDSessionHost

6. 使用 Remote Desktop Web Access(RD Web Access)进行用户访问管理

远程桌面 Web 访问(RD Web Access) 允许用户通过 Web 浏览器连接到远程桌面服务。管理员可以在 RD Web Access 门户中设置用户访问权限,选择他们可以访问的资源(如特定的应用程序或桌面)。

7. 监控远程桌面会话性能

  • 性能监控:管理员可以使用 任务管理器 或 性能监视器(Performance Monitor)来监控远程桌面服务器上的 CPU、内存、磁盘和网络使用情况,帮助识别性能瓶颈。
  • 日志记录:通过 事件查看器(Event Viewer),管理员可以查看与远程桌面会话相关的日志,监控会话的创建、断开、注销等事件。

管理多个用户会话的关键是使用 远程桌面服务管理工具(如 RD Session Host Manager 和 PowerShell),结合 组策略许可证管理 来配置、监控、控制和优化会话。通过合理配置策略和使用监控工具,管理员可以确保远程桌面会话的顺利运行,防止资源浪费并提高用户体验。

12. 如何进行RDS性能优化?

远程桌面服务(RDS) 中进行性能优化,目的是提高系统的响应速度、资源使用效率以及用户体验。下面是一些关键的优化策略:

1. 硬件优化

  • 增加服务器硬件资源:Windows性能监视器 计数器 实时监测 预判

    • CPU:确保服务器有足够的处理能力来处理多个用户会话。增加 CPU 核心数可以提高并发处理能力。
    • 内存:RDS 服务器的性能受内存的影响较大,尤其是在多用户会话的情况下。为每个会话分配充足的内存,以确保系统不会因内存不足而变慢。
    • 存储:使用 固态硬盘(SSD) 而非传统的机械硬盘(HDD)可以显著提高 I/O 性能,减少存储瓶颈。
  • 网络优化

    • 确保服务器的网络带宽足够大,特别是在多个用户同时访问的情况下。
    • 使用 负载均衡 来分配流量,避免单台服务器成为瓶颈。

2. RDS配置优化

  • 启用多重会话限制

    • 通过配置 RDS 许可证,确保每个用户或设备都能合理使用计算资源。可以配置会话限制来限制同时连接的用户数。
  • 配置用户会话优先级

    • 通过设置会话优先级,可以保证重要的会话(如管理员或高优先级用户)获取更多资源。
  • 使用远程桌面会话主机

    • 如果你的 RDS 环境是通过远程桌面会话主机(RD Session Host)提供服务的,可以确保将计算密集型的任务分配给特定的会话主机。

3. 操作系统和软件优化

  • 更新操作系统和软件

    • 确保所有的操作系统和远程桌面服务组件是最新的。微软定期发布性能优化的补丁和安全更新,确保安装所有更新。
  • 调整操作系统设置

    • 禁用不必要的系统服务,减少不必要的后台进程和服务对计算资源的占用。
    • 在 Windows Server 中,可以使用 组策略 或 注册表编辑器 来禁用不必要的功能,如打印服务、远程管理等。

4. 图形和显示优化

  • 使用远程桌面优化设置

    • 在 远程桌面客户端(RDP)配置中,禁用一些会消耗带宽和性能的图形选项,如桌面背景、动画效果、字体平滑等。
    • 使用 显示优化选项,在带宽有限的情况下优化图像质量,选择适当的分辨率和颜色深度。
  • 启用 RDP 压缩和图像缓存

    • 启用 RDP 数据压缩 和 图像缓存 可以减少传输的流量和延迟,提高用户体验。

5. 资源管理和会话控制

  • 优化会话空闲时间

    • 配置空闲会话自动断开和注销策略,避免不活跃的会话占用系统资源。
    • 可以在 组策略 中配置会话空闲超时,自动断开不活动的用户会话。
  • 配置资源分配

    • 在 远程桌面服务 中配置资源限制,例如最大会话数、每个会话的 CPU 和内存限制。
    • 使用 性能监视器 来监控 CPU、内存、磁盘和网络等资源的使用情况,识别性能瓶颈。

6. 负载均衡

  • 使用负载均衡器

    • 对于大规模的 RDS 部署,可以使用负载均衡器(如 NLB 或 硬件负载均衡器)来分散多个会话到不同的服务器上,从而避免单台服务器超负荷。
  • 使用远程桌面连接代理

    • 通过 远程桌面连接代理(RD Connection Broker) 将用户会话平衡到不同的服务器上,并且确保即使是用户断开后再连接时也能恢复原会话。

7. 存储优化

  • 使用虚拟化技术(如 VDI)

    • 如果适合你的环境,可以考虑使用 虚拟桌面基础架构(VDI),每个用户都运行在虚拟机中,从而减少资源冲突和提高系统隔离性。
  • 优化存储池

    • 在使用虚拟桌面或存储集中管理时,确保存储池的配置合理,以避免存储瓶颈。使用 分层存储,将热点数据存储在高速存储设备(如 SSD)中。

8. 性能监控和调优

  • 性能监控工具

    • 使用 性能监视器(Performance Monitor) 或 资源监视器,跟踪和分析系统资源的使用情况,识别性能瓶颈。例如,可以监控 CPU 使用率内存使用情况磁盘 I/O网络带宽 等。
  • 查看系统日志

    • 使用 事件查看器 来监控服务器上的系统和应用程序日志,查找可能影响性能的错误和警告。

9. 数据库和应用程序优化

  • 优化数据库连接

    • 对于使用数据库的 RDS 环境,优化数据库连接池设置,减少每个会话的数据库连接数量,避免数据库资源过载。
  • 优化远程应用程序

    • 如果你的 RDS 环境运行了多个应用程序,可以通过调优应用程序本身来减少资源使用。例如,禁用不必要的日志记录,优化查询性能,调整应用程序设置来减少 CPU 和内存占用。

10. 用户体验优化

  • 使用动态显示调整

    • 根据带宽和网络质量动态调整远程桌面的显示质量,保证在低带宽环境下依然有较好的使用体验。
  • 确保客户端更新

    • 确保远程桌面客户端是最新版本,这样可以确保支持新功能,并优化连接的性能。

RDS 性能优化涉及多个方面,包括硬件配置、操作系统调整、远程桌面客户端优化、会话管理、负载均衡等。通过合理配置服务器资源、优化网络和存储性能、调整会话管理策略以及使用合适的工具进行监控,可以显著提高 RDS 环境的整体性能和用户体验。

13. 如何通过RD Session Host进行负载均衡?

通过 Remote Desktop Session Host (RD Session Host) 进行负载均衡是为了确保多个用户会话在不同的服务器之间均匀分配,从而提高 RDS 环境的稳定性和性能。以下是实现 RD Session Host 负载均衡的几种方法:

1. 使用远程桌面连接代理 (RD Connection Broker)

RD Connection Broker 是远程桌面服务中的一个组件,负责管理用户会话,并通过负载均衡将用户连接到可用的 RD Session Host 上。它确保用户即使在不同的时间或会话断开后,也能够连接到同一个会话,提升用户体验。

配置步骤

  • 部署 RD Connection Broker:确保你的环境中有一个 RD Connection Broker 服务器,它负责处理用户连接的请求,并将其路由到不同的 RD Session Host 服务器。
  • 添加 RD Session Host 服务器:在 RD Connection Broker 中,添加多个 RD Session Host 服务器作为集群的一部分。所有 RD Session Host 都应在同一网络和域中。
  • 配置会话负载均衡:在 RD Connection Broker 中配置负载均衡策略,确保连接请求根据负载均衡规则(如最少会话、最少负载)分配到不同的 RD Session Host 服务器上。
  • 用户会话恢复:RD Connection Broker 会自动在不同的 Session Host 之间恢复用户会话,确保即使一台服务器发生故障,用户也能继续访问其会话。

2. 使用网络负载均衡 (NLB)

网络负载均衡(NLB)是一种硬件或软件解决方案,用于在多个服务器之间分配流量。使用 NLB 可以将客户端的远程桌面连接请求均匀地分配到不同的 RD Session Host 服务器上。

配置步骤

  • 设置 NLB 集群:你需要在多个 RD Session Host 服务器之间配置 NLB(Network Load Balancing) 集群。NLB 会基于 会话数 或 IP 地址哈希 等方式分配请求。
  • NLB 配置:安装并配置 NLB 在 Windows Server 上。配置负载均衡时,可以选择基于 源 IP 地址哈希 或 端口负载均衡 等算法来分配请求。
  • 配置端口:确保 NLB 在 TCP 端口 3389 上进行负载均衡,这是 RDP 默认端口。这样,所有客户端的连接请求会通过 NLB 集群自动分配到不同的 RD Session Host 服务器。

NLB 优缺点

  • 优点:实现简单,可以实现基础的负载均衡。
  • 缺点:不具备会话持久性(即不能保证用户每次都连接到相同的服务器)。因此,适用于无会话恢复需求的场景。

3. 使用第三方负载均衡器

另一种方法是使用 第三方负载均衡解决方案,如 F5 Big-IPCitrix NetScaler,这些负载均衡器能够提供比 NLB 更复杂的负载均衡和流量管理功能。

配置步骤

  • 配置负载均衡策略:通过第三方负载均衡器设置策略,决定如何将客户端的 RDP 请求分配到不同的 RD Session Host 服务器。常见的策略包括 基于最少连接数基于会话数 或 会话保持
  • SSL 终端:第三方负载均衡器通常提供 SSL 终端功能,将加密的客户端连接解密后再转发到 RD Session Host,从而提高系统的性能和安全性。

优缺点

  • 优点:能够提供更高级的负载均衡功能,例如会话保持、智能流量分配等。
  • 缺点:需要额外的硬件或软件支持,增加了成本和复杂度。

4. 会话持久性设置(Session Persistence)

在负载均衡过程中,会话持久性(也叫会话粘性)是非常重要的,尤其是在使用 NLB 或第三方负载均衡器时。会话持久性确保同一用户每次都连接到同一个 RD Session Host,这对于那些需要保持长期会话的应用程序非常重要。

配置步骤

  • 在 NLB 中启用会话持久性:你可以在 NLB 配置中启用会话持久性,根据客户端的 IP 地址或会话标识符来保持同一会话在相同的服务器上运行。
  • 在 RD Connection Broker 中启用会话恢复:确保 RD Connection Broker 允许会话恢复,并且会话恢复时会将用户重新定向到之前的 RD Session Host。

5. 负载均衡策略

  • 最小会话数策略:将连接请求分配给当前会话数最少的服务器。这种方法适用于会话负载较为均衡的环境。
  • 基于负载的策略:根据每台服务器的 CPU、内存、磁盘 I/O 等负载情况,动态调整流量分配。这种方法适用于资源利用较为复杂的环境。
  • 基于会话健康检查的策略:如果某台 RD Session Host 服务器出现故障或响应迟缓,负载均衡器会自动将连接请求重定向到健康的服务器,确保服务持续可用。

通过 RD Session Host 进行负载均衡,主要是利用 RD Connection Broker网络负载均衡(NLB) 实现用户会话的分配与管理。通过合理的负载均衡策略、会话持久性设置和监控,能够确保多个用户会话在不同服务器之间均匀分布,提高系统性能和可靠性。

14. 如何配置RDS集成到Active Directory(AD)中?

15. 如何配置和管理远程桌面策略?

16. 如何处理RDS连接中的常见故障和错误?

17. 如何通过RDS进行远程应用程序发布?

通过 远程桌面服务(RDS) 进行远程应用程序发布,是实现虚拟化应用的一种有效方式。RDS 允许你将本地的桌面应用程序发布给远程用户,用户无需在本地设备上安装应用程序即可访问这些程序。这通常通过 远程桌面会话主机(RDSH)远程应用程序(RemoteApp) 来实现。

以下是通过 RDS 进行远程应用程序发布的基本步骤:

1. 部署和配置 RDS 环境

要使用 RDS 进行远程应用程序发布,首先需要搭建和配置 RDS 基础架构。主要涉及以下几个角色:

  • 远程桌面许可服务器(RD Licensing):用于管理 RDS 客户端访问许可证(CALs)。
  • 远程桌面会话主机(RD Session Host, RDSH):托管应用程序和会话,使用户能够远程访问。
  • 远程桌面连接代理(RD Connection Broker):用于管理用户连接,并将用户会话与适当的 RDSH 服务器关联。
  • 远程桌面Web访问(RD Web Access):提供基于 Web 的访问方式,用户可以通过浏览器访问远程应用程序。

2. 安装和配置 RDS 角色

在 Windows Server 中,使用以下步骤配置 RDS 角色:

2.1 安装 RDS 角色

  1. 打开 服务器管理器
  2. 选择 添加角色和功能
  3. 在向导中,选择 远程桌面服务 角色。
  4. 选择要安装的角色服务,例如:
    • 远程桌面会话主机(RDSH):用于发布应用程序。
    • 远程桌面连接代理 和 远程桌面Web访问:用于访问和管理应用程序。
    • 远程桌面许可:用于配置和管理许可证。

2.2 配置远程桌面会话主机(RDSH)

  1. 安装完 RDSH 后,登录到该服务器并打开 远程桌面会话主机管理工具
  2. 配置并管理发布的应用程序。

2.3 配置 RD Web 访问和 RD Web Access

  • RD Web 访问允许用户通过 Web 浏览器访问远程应用程序。你可以通过 RD Web 访问设置远程应用程序门户。

3. 发布远程应用程序(RemoteApp)

RDS 的一大亮点是可以通过 远程应用程序(RemoteApp) 来发布本地的桌面应用程序。发布远程应用程序的步骤如下:

3.1 选择要发布的应用程序

  1. 在 远程桌面会话主机管理器 中,选择要发布的应用程序。
  2. 右键单击应用程序,然后选择 发布 RemoteApp 程序
  3. 在向导中,选择要发布的应用程序,点击 下一步

3.2 配置远程应用程序发布设置

  1. 为每个应用程序设置描述、名称以及其他信息。
  2. 选择是否允许用户访问该应用程序。
  3. 完成向导,发布应用程序。

3.3 用户访问远程应用程序

用户可以通过以下方式访问发布的远程应用程序:

  • RD Web 访问:用户通过浏览器访问 RD Web 访问门户,登录后可以看到所有可用的远程应用程序。
  • 远程桌面客户端:用户可以使用 远程桌面连接(RDP)客户端 或 Windows 远程桌面客户端 来连接并启动远程应用程序。

4. 使用 RD Web Access 提供访问

RD Web Access 提供了一个 Web 门户,用户可以通过浏览器访问远程桌面或远程应用程序。设置步骤如下:

  1. 启用 RD Web 访问:确保 RD Web 访问角色已安装并配置。
  2. 配置 RD Web 访问门户:通过 远程桌面Web访问管理器 设置门户,指定远程应用程序的显示方式。
  3. 配置 SSL 安全证书:使用 SSL 证书来确保门户的安全性,防止中间人攻击。

用户通过 https://<your-server>/rdweb 登录 RD Web 门户后,可以直接点击远程应用程序启动。

5. 配置远程桌面客户端(RDP)访问

用户可以通过远程桌面客户端(例如 Windows 客户端的 RDP)来直接访问远程应用程序。这可以通过以下步骤来配置:

  1. 使用 RemoteApp and Desktop Connections 向导配置客户端,允许客户端自动获取远程应用程序和桌面信息。
  2. 客户端将收到一个配置文件,允许其访问远程应用程序。

6. 应用程序托管和资源优化

  • 负载平衡:在多个 RDSH 服务器上分配应用程序时,可以使用 RD Connection Broker 来管理负载平衡,确保用户会话分配到最适合的服务器。
  • 性能监控:定期检查 RDS 环境的性能,确保应用程序在高负载下仍能流畅运行。使用 性能监视器(PerfMon)或 Task Manager 来查看资源使用情况。
  • 用户配置文件管理:可以使用 FSLogix 或 Roaming Profiles 来管理用户配置文件,确保用户每次登录时拥有一致的桌面体验。

7. 许可证管理

发布远程应用程序时,确保有足够的 客户端访问许可证(CALs)。你需要根据 RDS 环境的规模,购买适当数量的 RDS CAL 和远程应用程序许可证。

8. 安全性和合规性

  • 启用 SSL/TLS 加密:确保远程桌面连接和远程应用程序访问通过 SSL/TLS 加密,防止敏感数据泄露。
  • 使用多因素认证(MFA):可以配置 Azure AD 或本地 AD 进行多因素身份验证,进一步增强安全性。

通过 RDS 发布远程应用程序,可以帮助企业实现应用程序的集中管理和远程访问,减少对本地硬件的依赖,简化 IT 管理工作。通过配置 RDSH、RD Web Access 和 RD Connection Broker,企业可以为用户提供安全、高效的远程应用访问方式。

18. 如何确保RDS的安全性,防止未经授权的访问?

确保 远程桌面服务(RDS) 的安全性,防止未经授权的访问,至关重要。由于 RDS 允许用户远程访问应用程序和桌面环境,它容易成为黑客和攻击者的目标,因此必须采取一系列安全措施来保护它。以下是确保 RDS 安全的最佳实践:

1. 启用和配置网络级身份验证(NLA)

网络级身份验证(NLA)要求客户端在建立 RDS 连接之前进行身份验证。这意味着攻击者无法直接访问 RDS 服务器,必须先提供有效的凭据。

  • 如何配置:在远程桌面会话主机的设置中启用 NLA。你可以通过 组策略 或 远程桌面会话主机设置 来强制要求启用 NLA。
  • 优势:防止未授权用户通过猜测密码等手段直接连接到远程桌面。

2. 使用强密码和定期更新密码

强密码是保护 RDS 免受暴力破解攻击的第一道防线。确保所有 RDS 账户(包括管理员账户)使用复杂且唯一的密码,并定期更换。

  • 如何实施:使用 组策略 强制实施强密码要求(如至少包含 8 个字符,并包括数字、大小写字母及特殊符号)。
  • 定期更改密码:设置密码过期政策,定期要求更改密码,以降低密码泄露的风险。

3. 启用多因素身份验证(MFA)

多因素身份验证(MFA)是防止未授权访问的强有力措施。通过要求用户提供两种以上的身份验证因素(如密码和手机验证码),即使攻击者掌握了用户密码,也无法成功登录。

  • 如何配置:可以结合 Windows Hello for Business 或 Azure MFA 实现 RDS 的多因素身份验证。配置时,确保所有远程用户都必须使用 MFA 进行身份验证。
  • 优势:极大地提高了安全性,即使密码被盗,攻击者也无法登录。

4. 限制远程桌面访问 IP 地址

通过 IP 白名单防火墙规则 限制哪些 IP 地址可以访问 RDS。仅允许特定的 IP 地址或 IP 范围访问远程桌面,从而减少暴力破解和其他类型的远程攻击的机会。

  • 如何实施:在 Windows 防火墙 或 硬件防火墙 中配置规则,仅允许来自可信网络或 VPN 的连接。
  • 优势:减少开放的远程桌面端口暴露面。

5. 使用虚拟专用网络(VPN)

通过 VPN 强制所有远程用户先连接到内部网络,才能访问远程桌面服务。这会在连接前增加一层额外的安全保护,避免外部攻击者直接访问 RDS。

  • 如何配置:配置 IPsec VPN 或 SSL VPN,并确保只有通过 VPN 连接的用户才可访问 RDS。
  • 优势:通过加密连接确保数据的机密性,同时限制了外部网络的直接访问。

6. 配置远程桌面网关(RD Gateway)

远程桌面网关(RD Gateway)是一种安全网关,可以通过 HTTPS 协议安全地连接 RDS 环境。它使远程用户无需直接暴露 RDS 服务器即可访问应用程序,提供了端到端的加密。

  • 如何实施:部署并配置 RD Gateway,确保所有远程连接通过 HTTPS 加密传输。只允许通过 RD Gateway 连接,而不是直接访问 RDSH。
  • 优势:为 RDS 提供了额外的加密保护,并避免了直接开放 RDS 端口。

7. 定期审计和监控

定期审计远程桌面访问的日志,以发现任何异常活动。使用 事件查看器 或第三方监控工具监视登录失败、权限提升和潜在的恶意活动。

  • 如何实施:启用 Windows 安全日志 和 远程桌面日志,监视用户登录、登出和连接尝试等。配置告警系统,在异常活动发生时立即通知管理员。
  • 优势:通过及时发现潜在的安全威胁,快速响应,防止进一步的攻击。

8. 使用最小权限原则

为用户和管理员分配 最小权限,确保他们只能访问必要的资源。避免将管理员权限授予普通用户,尽量限制用户在远程会话中的操作权限。

  • 如何实施:通过 组策略 或 Active Directory 将用户分配到相应的角色和权限组。使用 RDS 会话管理器 来限制用户的操作权限。
  • 优势:减少攻击面,防止恶意用户利用过高的权限进行攻击。

9. 限制并管理管理员账户

管理员账户是 RDS 安全的重点对象。确保只授予必要的人员管理员权限,并对管理员账户进行严格控制。

  • 如何实施:使用 组策略 限制本地和域管理员账户的登录权限,确保只有授权的人员才能使用管理员权限。
  • 避免使用默认管理员账户:修改或禁用默认的 Administrator 账户,并使用唯一的管理员用户名。
  • 优势:减少攻击者利用默认或弱管理员账户进行暴力破解的风险。

10. 定期更新和修补 RDS 服务器

保持 RDS 环境的最新状态是防止已知漏洞被利用的关键。定期检查 Windows Update 并应用安全补丁。

  • 如何实施:启用 自动更新,确保 RDS 服务器始终处于最新状态。定期进行安全漏洞扫描和修复。
  • 优势:及时修补已知漏洞,防止攻击者利用这些漏洞进行入侵。

11. 限制远程桌面会话的时间

为了防止因会话长时间闲置而导致安全风险,可以限制远程桌面会话的时间,例如:设置空闲会话自动注销,防止未授权人员进入未锁定的会话。

  • 如何实施:通过 组策略 设置远程桌面会话的最大空闲时间,超时后自动注销用户。
  • 优势:防止会话长时间无人看管,减少潜在的安全隐患。

12. 使用加密技术保护数据传输

确保远程桌面会话中的所有数据通过加密传输,以防止数据在传输过程中被拦截或篡改。

  • 如何实施:配置 RDS 使用 TLS 加密 和 SSL 来保护用户数据的传输。使用 RDP 8.0 或更高版本,它默认启用了加密。
  • 优势:通过加密保护敏感数据,防止被中间人攻击。

通过采用这些安全最佳实践,可以显著提高 RDS 环境的安全性,防止未经授权的访问和潜在的网络攻击。启用 NLA、实施多因素认证、使用 VPN 和 RD Gateway 等技术,能够有效地保护远程桌面环境免受各种攻击,并确保用户和数据的安全性。

19. RDS如何支持不同类型的用户许可证(如基于设备和基于用户的许可证)?

20. 如何处理和管理RDS会话中的资源限制(如内存、CPU)?

21. 如何配置RDS会话主机的多显示器支持?

22. 如何为RDS设置和配置打印服务(Remote Desktop Printing)?

远程桌面服务(RDS) 配置打印服务是确保用户可以在远程会话中顺利打印文档的关键步骤。远程桌面打印(Remote Desktop Printing) 允许远程桌面会话中的用户使用本地打印机或共享打印机进行打印。以下是为 RDS 设置和配置打印服务的步骤:

1. 确保远程桌面会话主机已安装打印服务

首先,你需要确保 RDS 环境中安装了必要的打印服务组件。

步骤:

  1. 安装远程桌面服务角色:确保你已经在服务器上安装了 远程桌面会话主机(RDSH) 角色。可以通过 服务器管理器 安装。

    • 打开 服务器管理器,点击 管理 > 添加角色和功能
    • 选择 远程桌面服务,然后选择 远程桌面会话主机(RDSH)
    • 完成安装并重新启动服务器(如果需要)。
  2. 安装打印和文档服务角色:为了支持远程桌面打印,你需要安装 打印和文档服务 角色:

    • 打开 服务器管理器,点击 管理 > 添加角色和功能
    • 选择 打印和文档服务 角色,确保选中了 打印服务 组件。

2. 启用远程桌面打印功能

远程桌面打印需要启用特定的功能才能正常工作。你需要在 RDS 会话主机上启用 打印重定向

步骤:

  1. 打开 组策略管理控制台gpedit.msc)。

  2. 导航到 计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 设备和资源重定向

  3. 启用以下策略:

    • 允许重定向的打印机:确保这项设置为 启用。这样可以允许用户在远程桌面会话中使用他们本地的打印机。
    • 不允许本地打印机重定向:如果你不希望某些打印机重定向到远程桌面会话,可以禁用此设置。
  4. 另外,确保 打印机重定向自动安装打印机 选项也被启用,以便自动识别本地打印机。

3. 配置远程桌面会话主机打印服务

你可以配置打印机驱动程序以确保打印服务在远程会话中正确工作。

步骤:

  1. 远程桌面会话主机 上,确保已经安装了所需的打印机驱动程序,特别是远程用户使用的打印机。

    • 如果你使用的是 基于 Windows 的打印机,在会话主机上安装相应的驱动程序。
    • 如果是其他品牌的打印机,确保已经安装了合适的驱动程序。
  2. 配置 打印服务器

    • 在 远程桌面会话主机 上打开 打印管理器
    • 选择 打印机服务器,然后添加共享打印机。
    • 确保打印机正确共享,并允许远程桌面用户访问。

4. 配置客户端打印重定向

远程桌面客户端需要启用打印机重定向功能,以便将本地打印机共享到远程会话中。

步骤:

  1. 在 远程桌面客户端 上,打开 远程桌面连接(mstsc.exe)
  2. 在 远程桌面连接 对话框中,点击 显示选项
  3. 转到 本地资源 标签页,勾选 打印机。这会将本地打印机重定向到远程桌面会话。
  4. 点击 连接,连接到 RDS 服务器后,你的本地打印机应该会自动出现在远程会话中。

5. 确保打印机共享和访问权限

确保远程用户可以访问并使用共享打印机。

步骤:

  1. 在 远程桌面会话主机 上,右键点击打印机,选择 共享 选项。
  2. 配置访问权限,允许远程桌面用户使用该打印机。
  3. 在打印机的共享设置中,指定 打印机权限 和 共享名称,确保远程用户能够正确识别并访问该打印机。

6. 使用远程桌面网关(RD Gateway)提供打印支持

如果远程桌面用户通过 远程桌面网关(RD Gateway)连接到远程服务器,你需要确保网关支持打印重定向。

步骤:

  1. 在 RD Gateway 上配置 远程桌面会话主机,确保它可以通过 RD Gateway 正确传输打印任务。
  2. 启用 RDP 端口 的打印支持功能,确保打印请求能够通过加密的通道传输。

7. 测试和故障排除

配置完成后,进行测试以确保远程桌面打印功能正常。让用户尝试连接到远程桌面会话并打印文件,检查以下问题:

  • 确认本地打印机是否出现在远程桌面会话中。
  • 确认打印任务是否正常发送和打印。
  • 如果遇到问题,可以检查 事件查看器 中的错误日志,确保没有权限或驱动程序问题。

常见故障排除步骤:

  • 驱动程序问题:确保会话主机和客户端上安装了相同的打印机驱动程序。
  • 权限问题:检查用户是否具有足够的权限访问共享打印机。
  • 重定向失败:确保 组策略 和客户端设置中启用了打印机重定向。

通过上述步骤,你可以为 远程桌面服务(RDS) 配置打印服务,使得远程桌面用户能够方便地使用本地或共享打印机进行打印。关键是正确配置 打印服务角色、打印重定向、共享打印机、以及客户端设置。确保远程桌面会话中打印服务的稳定性和可用性,以提供更流畅的远程办公体验。

23. 如何备份和恢复RDS设置及数据?

备份和恢复 远程桌面服务(RDS) 设置和数据对于保证系统的稳定性和可靠性至关重要。以下是如何备份和恢复 RDS 设置和数据的详细步骤。

1. 备份 RDS 设置和配置

要备份 RDS 设置和配置,主要有两个部分需要关注:RDS 角色配置RDS 许可证配置

备份步骤:

  1. 备份 RDS 配置(包括会话主机、远程桌面授权等)

    • 打开 PowerShell 或 命令提示符,使用以下命令来导出 RDS 配置:
      powershell
      Export-RDConfiguration -Path "C:\RDS_Backup"
    • 此命令会将所有 RDS 配置信息(包括会话主机、连接代理、网关等)导出到指定路径。
  2. 备份 RDS 许可证

    • 如果你使用的是 远程桌面许可证服务器(RD Licensing Server),可以通过 PowerShell 导出许可证配置:
      powershell
      Export-RDLicenseConfiguration -Path "C:\RDS_License_Backup"
    • 确保在不同的存储位置备份许可证信息,以便在恢复时能够重新激活。
  3. 备份 RDS 会话主机设置和远程桌面网关设置

    • 会话主机的设置(如用户权限、策略等)可以通过 组策略管理器 或 注册表 进行备份:
      • 导出相关组策略配置:
        powershell
        Export-GPO -Name "RemoteDesktop" -Path "C:\RDS_GPO_Backup"
      • 导出注册表设置(注意:谨慎操作注册表):
        powershell
        reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Machine\RDS "C:\RDS_Registry_Backup.reg"

2. 备份 RDS 用户数据

RDS 用户数据包括用户的配置文件、应用程序数据以及从远程桌面会话中生成的文件。为了保护这些数据,可以通过以下方法进行备份:

  1. 用户配置文件和主目录备份
    • 如果你使用 远程桌面配置文件存储(Roaming Profiles),请确保备份配置文件存储目录。通常,这些文件存储在 \\FileServer\Profiles 或相似路径。
    • 可以使用以下命令备份远程桌面配置文件目录:
      powershell
      xcopy \\FileServer\Profiles\* C:\Backup\RDS_Profiles\ /E /H /C
  2. 用户数据(应用程序数据)备份
    • 如果你使用 用户数据重定向,可以定期备份这些文件夹。
    • 使用 robocopy 命令进行备份:
      powershell
      robocopy \\FileServer\UserData C:\Backup\RDS_UserData /MIR

3. 备份 RDS 相关数据库(如 SQL 数据库)

如果你的 RDS 环境中包含 数据库支持的服务(如应用程序数据存储在 SQL Server 中),你需要备份 SQL 数据库:

  1. 使用 SQL Server Management Studio (SSMS) 或 PowerShell 进行数据库备份:
    powershell
    Backup-SqlDatabase -ServerInstance "SQLServerInstance" -Database "RDS_Database" -BackupFile "C:\Backups\RDS_Backup.bak"

4. 定期备份 RDS 配置和数据

为了确保恢复时不丢失任何关键数据,建议定期进行备份并保留历史备份。

5. 恢复 RDS 设置和数据

恢复 RDS 设置和数据的过程需要根据备份的内容来选择恢复方法。以下是恢复步骤。

恢复 RDS 配置和设置:

  1. 恢复 RDS 配置
    • 使用 Import-RDConfiguration 命令将 RDS 配置信息从备份中恢复到目标服务器:
      powershell
      Import-RDConfiguration -Path "C:\RDS_Backup"
  2. 恢复 RDS 许可证配置
    • 使用 Import-RDLicenseConfiguration 恢复许可证配置:
      powershell
      Import-RDLicenseConfiguration -Path "C:\RDS_License_Backup"
  3. 恢复组策略和注册表设置
    • 恢复组策略:
      powershell
      Import-GPO -Path "C:\RDS_GPO_Backup"
    • 恢复注册表设置(注意:恢复注册表时要特别小心,确保正确恢复):
      powershell
      reg import "C:\RDS_Registry_Backup.reg"

恢复 RDS 用户数据:

  1. 恢复用户配置文件
    • 将备份的用户配置文件恢复到相应目录:
      powershell
      xcopy C:\Backup\RDS_Profiles\* \\FileServer\Profiles\ /E /H /C
  2. 恢复用户数据
    • 使用 robocopy 恢复用户数据:
      powershell
      robocopy C:\Backup\RDS_UserData \\FileServer\UserData /MIR

恢复 RDS 相关数据库:

  1. 恢复 SQL 数据库
    • 使用 SQL Server Management Studio (SSMS) 或 PowerShell 恢复数据库:
      powershell
      Restore-SqlDatabase -ServerInstance "SQLServerInstance" -Database "RDS_Database" -BackupFile "C:\Backups\RDS_Backup.bak"

6. 验证恢复

恢复完成后,验证 RDS 配置、用户数据、打印服务等 是否正常工作。确保远程桌面用户能够成功连接并打印,确保会话主机配置和用户数据恢复无误。

7. 自动化备份

为了简化管理,建议使用 Windows 内建的 任务计划程序第三方工具 自动化备份过程。定期备份可以减少数据丢失的风险,并且确保你有最新的备份。


为 RDS 配置和数据设置备份和恢复策略非常重要,尤其是在大规模环境中。通过备份 配置、用户数据、打印设置和 SQL 数据库,你可以确保在发生系统故障或其他灾难性事件时能够快速恢复服务。务必定期进行备份,并验证恢复过程,确保一切顺利。

使用 PowerShell 和 Windows 任务计划程序 可以自动化 RDS(远程桌面服务)备份过程。以下是如何使用 PowerShell 脚本和任务计划程序来实现自动化备份。

1. 编写 PowerShell 备份脚本

首先,你需要创建一个 PowerShell 脚本,该脚本将执行所有的备份任务。

示例 PowerShell 脚本(Backup-RDS.ps1):

powershell
# 设置备份路径
$backupPath = "C:\Backup\RDS_Backups"
$licenseBackupPath = "C:\Backup\RDS_License_Backup"
$gpoBackupPath = "C:\Backup\RDS_GPO_Backup"
$profileBackupPath = "C:\Backup\RDS_Profiles"

# 创建备份目录(如果不存在)
if (-not (Test-Path $backupPath)) { New-Item -ItemType Directory -Path $backupPath }
if (-not (Test-Path $licenseBackupPath)) { New-Item -ItemType Directory -Path $licenseBackupPath }
if (-not (Test-Path $gpoBackupPath)) { New-Item -ItemType Directory -Path $gpoBackupPath }
if (-not (Test-Path $profileBackupPath)) { New-Item -ItemType Directory -Path $profileBackupPath }

# 导出 RDS 配置
Export-RDConfiguration -Path $backupPath

# 导出 RDS 许可证配置
Export-RDLicenseConfiguration -Path $licenseBackupPath

# 导出组策略(假设组策略名称为 'RemoteDesktop')
Export-GPO -Name "RemoteDesktop" -Path $gpoBackupPath

# 导出远程桌面用户配置文件(假设配置文件存储在指定网络路径)
xcopy \\FileServer\Profiles\* $profileBackupPath /E /H /C

Write-Host "备份完成"

这个脚本会:

  • 创建备份目录(如果目录不存在)
  • 导出远程桌面服务配置
  • 导出许可证配置
  • 导出组策略配置
  • 备份远程桌面用户配置文件

你可以根据实际情况调整路径和其他设置。

2. 使用任务计划程序自动化备份

接下来,你需要使用 任务计划程序 设置定期运行这个 PowerShell 脚本的任务。

步骤 1:打开任务计划程序

  1. 按 Win + R 键,输入 taskschd.msc,然后按回车,打开 任务计划程序

步骤 2:创建新任务

  1. 在任务计划程序中,点击 创建基本任务
  2. 在 任务名称 中输入一个任务名,例如:“自动化 RDS 备份”。
  3. 点击 下一步

步骤 3:设置触发器

  1. 选择触发器类型(例如,每天、每周、每月等)。例如,选择 每天 以便每天自动备份。
  2. 设置备份执行的具体时间和频率,点击 下一步

步骤 4:选择操作

  1. 选择 启动程序,然后点击 下一步
  2. 在 程序/脚本 字段中,输入 PowerShell 的路径(通常是 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe)。
  3. 在 添加参数 字段中,输入以下命令来执行脚本:
    powershell
    -ExecutionPolicy Bypass -File "C:\Path\To\Backup-RDS.ps1"
    其中,"C:\Path\To\Backup-RDS.ps1" 替换为你保存 PowerShell 脚本的实际路径。

步骤 5:设置其他选项

  1. 在任务属性中,选择 以最高权限运行,以确保任务在管理员权限下执行。
  2. 如果你需要任务在特定条件下运行(如计算机空闲时),可以选择 条件 和 设置 标签页来进行调整。

步骤 6:完成任务设置

  1. 点击 完成,任务计划程序将按照你设置的时间自动运行备份脚本。

3. 验证任务是否成功运行

你可以通过任务计划程序查看任务是否按预期运行:

  1. 在任务计划程序中,右键点击你创建的任务,选择 运行 来手动触发任务,检查备份是否成功执行。
  2. 查看备份目录,确保备份文件已生成。

4. 日志记录(可选)

为了监控备份过程的状态,你可以在 PowerShell 脚本中添加日志记录功能。修改脚本以记录备份操作的详细信息:

修改脚本添加日志记录:

powershell
# 设置日志文件路径
$logFile = "C:\Backup\RDS_Backups\backup_log.txt"

# 写入日志函数
function Write-Log {
    param([string]$message)
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logMessage = "$timestamp - $message"
    Add-Content -Path $logFile -Value $logMessage
}

# 开始备份
Write-Log "备份开始"

# 导出 RDS 配置
Export-RDConfiguration -Path $backupPath
Write-Log "RDS 配置导出完成"

# 导出 RDS 许可证配置
Export-RDLicenseConfiguration -Path $licenseBackupPath
Write-Log "RDS 许可证配置导出完成"

# 导出组策略
Export-GPO -Name "RemoteDesktop" -Path $gpoBackupPath
Write-Log "组策略导出完成"

# 导出远程桌面用户配置文件
xcopy \\FileServer\Profiles\* $profileBackupPath /E /H /C
Write-Log "远程桌面用户配置文件导出完成"

Write-Log "备份完成"

通过使用 PowerShell 脚本任务计划程序,你可以轻松地自动化 RDS 设置和数据的备份过程。定期备份可以帮助你在出现系统故障或其他问题时快速恢复服务。

使用 PowerShell 和 Windows 任务计划程序 可以实现自动化恢复过程。与备份过程类似,恢复过程通常需要将之前备份的文件和配置恢复到指定位置。以下是如何使用 PowerShell 脚本和任务计划程序来自动化恢复过程。

1. 编写 PowerShell 恢复脚本

首先,你需要编写一个 PowerShell 脚本,该脚本将从备份中恢复数据和配置。

示例 PowerShell 恢复脚本(Restore-RDS.ps1):

powershell
# 设置备份目录
$backupPath = "C:\Backup\RDS_Backups"
$licenseBackupPath = "C:\Backup\RDS_License_Backup"
$gpoBackupPath = "C:\Backup\RDS_GPO_Backup"
$profileBackupPath = "C:\Backup\RDS_Profiles"

# 恢复远程桌面服务配置
Restore-RDConfiguration -Path $backupPath
Write-Host "远程桌面服务配置恢复完成"

# 恢复远程桌面许可证配置
Restore-RDLicenseConfiguration -Path $licenseBackupPath
Write-Host "远程桌面许可证配置恢复完成"

# 恢复组策略(假设组策略名称为 'RemoteDesktop')
Restore-GPO -Name "RemoteDesktop" -Path $gpoBackupPath
Write-Host "组策略恢复完成"

# 恢复远程桌面用户配置文件
xcopy $profileBackupPath\* \\FileServer\Profiles\ /E /H /C
Write-Host "远程桌面用户配置文件恢复完成"

Write-Host "恢复完成"

这个脚本将:

  • 恢复远程桌面服务配置
  • 恢复许可证配置
  • 恢复组策略
  • 恢复用户配置文件

你可以根据实际需要修改文件路径或恢复的内容。

2. 使用任务计划程序自动化恢复

接下来,你可以使用 Windows 任务计划程序 设置定期自动化执行恢复脚本。

步骤 1:打开任务计划程序

  1. 按 Win + R 键,输入 taskschd.msc,然后按回车,打开 任务计划程序

步骤 2:创建新任务

  1. 在任务计划程序中,点击 创建基本任务
  2. 在 任务名称 中输入任务名称,例如:“自动化 RDS 恢复”。
  3. 点击 下一步

步骤 3:设置触发器

  1. 选择触发器类型(例如,每天、每周、每月等)。例如,选择 每天 以便每天自动恢复。
  2. 设置恢复执行的具体时间和频率,点击 下一步

步骤 4:选择操作

  1. 选择 启动程序,然后点击 下一步
  2. 在 程序/脚本 字段中,输入 PowerShell 的路径(通常是 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe)。
  3. 在 添加参数 字段中,输入以下命令来执行恢复脚本:
    powershell
    -ExecutionPolicy Bypass -File "C:\Path\To\Restore-RDS.ps1"
    其中,"C:\Path\To\Restore-RDS.ps1" 替换为你保存恢复脚本的实际路径。

步骤 5:设置其他选项

  1. 在任务属性中,选择 以最高权限运行,以确保任务在管理员权限下执行。
  2. 如果你需要任务在特定条件下运行(如计算机空闲时),可以选择 条件 和 设置 标签页来进行调整。

步骤 6:完成任务设置

  1. 点击 完成,任务计划程序将按照你设置的时间自动执行恢复脚本。

3. 验证任务是否成功运行

你可以通过任务计划程序查看任务是否按预期运行:

  1. 在任务计划程序中,右键点击你创建的任务,选择 运行 来手动触发任务,检查恢复过程是否成功。
  2. 查看恢复的目录和服务,确保恢复的配置和文件已成功还原。

4. 日志记录(可选)

为了更好地监控恢复过程,你可以在 PowerShell 脚本中添加日志记录。以下是如何修改脚本以记录恢复操作的详细信息:

修改脚本添加日志记录:

powershell
# 设置日志文件路径
$logFile = "C:\Backup\RDS_Backups\restore_log.txt"

# 写入日志函数
function Write-Log {
    param([string]$message)
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logMessage = "$timestamp - $message"
    Add-Content -Path $logFile -Value $logMessage
}

# 恢复远程桌面服务配置
Restore-RDConfiguration -Path $backupPath
Write-Log "远程桌面服务配置恢复完成"

# 恢复远程桌面许可证配置
Restore-RDLicenseConfiguration -Path $licenseBackupPath
Write-Log "远程桌面许可证配置恢复完成"

# 恢复组策略
Restore-GPO -Name "RemoteDesktop" -Path $gpoBackupPath
Write-Log "组策略恢复完成"

# 恢复远程桌面用户配置文件
xcopy $profileBackupPath\* \\FileServer\Profiles\ /E /H /C
Write-Log "远程桌面用户配置文件恢复完成"

Write-Log "恢复完成"

通过这种方式,你可以确保每次恢复任务完成时都有日志文件记录,方便你检查是否有任何问题发生。


通过使用 PowerShell 脚本任务计划程序,你可以轻松地自动化 RDS 恢复过程。这种方法可以帮助你在出现故障时快速恢复配置和数据,确保系统的高可用性。

24. 如何使用RDS进行跨地区远程桌面访问?

25. 如何通过RD Gateway配置跨防火墙访问RDS?

通过 Remote Desktop Gateway (RD Gateway) 配置跨防火墙访问 Remote Desktop Services (RDS) 是一种非常有效的方法,因为它允许用户通过 HTTPS 协议安全地访问远程桌面,而无需直接暴露 RDS 服务器到互联网。RD Gateway 可以帮助解决跨防火墙访问的挑战,通过加密的隧道提供对内部网络中 RDS 资源的访问。

以下是配置 RD Gateway 以实现跨防火墙访问 RDS 的步骤:

1. 安装和配置 RD Gateway 服务器

  1. 安装 RD Gateway 角色

    • 在服务器管理器中,选择 添加角色和功能
    • 在 选择角色 页,选择 远程桌面服务
    • 在 选择角色服务 页,选择 远程桌面网关(RD Gateway)。
    • 完成角色安装并重启服务器(如果需要)。
  2. 配置 RD Gateway

    • 打开 远程桌面网关管理器rdgateway.msc)。
    • 右键点击 RD Gateway服务器,选择 创建授权策略
    • 配置 授权策略(例如,选择允许哪些用户和组访问 RD Gateway)。
    • 配置 RD Gateway服务器的身份验证方法,通常可以选择 用户名和密码 或 智能卡认证
    • 配置 连接策略,包括如何处理超时和连接限制。

2. 配置防火墙和端口转发

  1. 配置 RD Gateway 端口

    • 默认情况下,RD Gateway 使用 TCP 443 端口通过 HTTPS 提供远程桌面访问。
    • 在外部防火墙(通常是路由器或边界防火墙)上,配置端口转发,将 TCP 443 转发到 RD Gateway 服务器的内部 IP 地址。
    • 确保防火墙允许通过 443 端口的流量进入。
  2. 内部防火墙配置

    • 如果 RD Gateway 服务器位于内部网络,确保内部防火墙或服务器上的防火墙允许从外部访问 RD Gateway 的 443 端口。

3. 配置远程桌面客户端

  1. 配置 RD Gateway 设置

    • 在远程桌面客户端(如 Windows 上的 远程桌面连接,或者其他客户端)中,进入 高级设置,配置 RD Gateway 设置
      • 网关服务器:输入 RD Gateway 的外部 IP 地址或域名。
      • 身份验证方法:选择适当的身份验证方法(如 密码 或 智能卡)。
      • 加密连接:确保启用加密连接。

    例如,在 Windows 上的远程桌面客户端:

    • 打开 远程桌面连接mstsc)。
    • 点击 显示选项,选择 高级,然后点击 设置
    • 在 RD Gateway服务器 中输入你的 RD Gateway 的域名或公共 IP 地址(如 gateway.example.com)。
    • 配置身份验证方式。
  2. 测试连接

    • 在配置完客户端之后,使用远程桌面客户端连接到 RD Gateway,并验证是否能够成功连接到 RDS 服务器。

4. 配置 SSL 证书(可选但推荐)

为了确保连接的安全性,最好为 RD Gateway 配置 SSL 证书。这可以防止中间人攻击并加密客户端与 RD Gateway 之间的通信。

  1. 获取和安装 SSL 证书

    • 从受信任的证书颁发机构(CA)获得 SSL 证书,或使用内部 CA。
    • 在 RD Gateway 服务器上安装证书,确保它绑定到 443 端口。
  2. 配置 RD Gateway 使用 SSL 证书

    • 打开 远程桌面网关管理器
    • 在 RD Gateway服务器 右键点击并选择 属性
    • 在 SSL证书 部分,选择已安装的证书。

5. 配置远程桌面会话主机 (RDSH)

  1. 确保 RDSH 服务器正确配置

    • 远程桌面会话主机 (RDSH) 应该已配置为允许通过 RD Gateway 连接。
    • 确保 RDSH 服务器的内部防火墙允许来自 RD Gateway 的连接。
  2. 配置 RDSH 使用 RD Gateway

    • 在 远程桌面会话主机 配置中,确保启用 RD Gateway 支持。
    • 通过 远程桌面会话主机管理器,你可以指定 RD Gateway 设置,确保它与 RD Gateway 一起使用。

6. 使用组策略进一步加强安全性(可选)

你还可以使用组策略来进一步加强通过 RD Gateway 的远程访问安全性。通过组策略,你可以:

  • 强制使用特定的身份验证方法(如智能卡)。
  • 配置断开会话的超时时间和限制。
  • 配置会话和连接的加密级别。
  • 管理对不同用户和计算机的访问控制。

7. 验证并监控 RD Gateway

  1. 测试跨防火墙访问

    • 从外部网络(如通过移动设备或家用网络)尝试使用远程桌面客户端连接 RD Gateway。
    • 确保能够通过 HTTPS 连接到 RD Gateway 并访问远程桌面。
  2. 监控 RD Gateway

    • 使用 RD Gateway 日志 来监控连接的成功和失败,检查是否存在潜在的安全问题。
    • RD Gateway 日志位于 事件查看器 中,路径为 应用程序和服务日志 -> Microsoft -> Windows -> TerminalServices-Gateway

通过 RD Gateway 配置跨防火墙访问 RDS,可以在保障安全的前提下,让远程用户安全地访问内部网络的远程桌面服务。通过适当配置 RD Gateway、端口转发、SSL 证书以及客户端设置,可以确保安全、可靠的远程访问。

26. RDS如何与Windows Virtual Desktop(WVD)结合使用?

远程桌面服务 (RDS)Windows Virtual Desktop (WVD) 结合使用,可以为企业提供一个更加灵活、高效和集中管理的桌面虚拟化环境。通过这种结合,用户可以在云端访问 Windows 桌面和应用,而无需依赖传统的 RDS 环境。以下是它们如何结合使用的几个关键方面:

1. 概述:RDS 与 WVD 的集成

  • RDS 是 Microsoft 提供的一种用于虚拟化桌面和应用的解决方案,通常部署在本地服务器上,支持远程会话和虚拟桌面。
  • Windows Virtual Desktop (WVD) 是 Azure 上的桌面虚拟化服务,可以让用户在云端运行完整的 Windows 10 或 Windows 11 操作系统,结合了 RDS 和 Azure 的优势。

在结合使用时,WVD 通常被认为是 RDS 的增强版,能够利用 Azure 的弹性扩展、集中管理和自动化功能。通过将 RDS 与 WVD 结合,企业可以提供一个更具弹性、成本效益高、易于管理的虚拟桌面环境。

2. RDS 与 WVD 集成的优势

结合使用 RDS 和 WVD 有以下几个明显的优势:

  • 弹性扩展:WVD 是基于 Azure 的平台,能够根据需求自动扩展资源。当 RDS 的会话数增加时,可以自动为 WVD 提供更多虚拟机资源,从而确保性能。
  • 集中管理:使用 Azure 的管理工具,可以集中管理和监控所有 RDS 和 WVD 资源,简化 IT 运维工作。
  • 混合部署支持:RDS 和 WVD 可以在本地和 Azure 环境中混合部署。例如,RDS 可以用来处理本地应用,而 WVD 用于托管云端的虚拟桌面,提供更灵活的解决方案。
  • 提高用户体验:通过 WVD 用户可以访问完整的 Windows 桌面体验,包括应用程序、文件存储和个性化设置。与传统的 RDS 相比,WVD 提供更现代化的桌面体验。

3. 如何集成 RDS 与 WVD

将 RDS 和 WVD 结合使用通常需要以下几个步骤:

3.1 部署 RDS 基础架构

  • 安装并配置 RDS 角色:在本地或 Azure 上部署 RDS 环境,包括 RD Web Access、RD Session Host、RD Licensing 等角色。
  • 配置 RDS 会话和应用程序:根据需求设置会话托管、发布远程应用程序等。

3.2 部署 WVD 环境

  • 创建 WVD 环境:在 Azure 上创建 WVD 环境,包括虚拟机、应用程序组、桌面映像等。
  • 为用户分配访问权限:通过 Azure AD (Active Directory) 和 WVD 控制台,为用户分配适当的虚拟桌面或应用访问权限。

3.3 将 RDS 与 WVD 结合

  • 整合 RDS 的 RemoteApp 和 WVD:你可以将本地部署的 RDS 发布的应用程序(如 RemoteApp)通过 WVD 部署到 Azure 云端,统一通过一个门户访问。
  • 混合会话管理:将本地 RDS 会话主机与 WVD 的虚拟桌面管理结合起来。通过 RD Connection Broker 和 WVD 的会话管理工具,统一管理用户会话,无论是在本地还是云端。

3.4 使用 Azure AD 或 Active Directory 进行身份验证

  • Azure AD 与 RDS 集成:可以使用 Azure AD 或 AD DS(Active Directory 域服务)进行身份验证和用户管理。这使得 WVD 和本地 RDS 环境可以无缝结合,提供统一的身份验证和权限管理。
  • 跨平台身份验证:通过 Azure AD 和 Microsoft 的身份验证服务,用户可以无缝切换和访问 RDS 和 WVD 环境。

4. 典型的部署场景

  • 混合云部署:企业可以选择将 RDS 保留在本地数据中心,用于处理需要本地计算的应用和数据存储,而将 WVD 部署在 Azure 云端,提供跨设备的桌面体验和云端应用访问。
  • 完全迁移到云:企业将所有 RDS 环境迁移到 WVD,完全通过 Azure 云提供虚拟桌面和应用。
  • 分阶段迁移:如果企业希望逐步迁移,可以先将一些应用程序或用户迁移到 WVD,继续使用本地的 RDS 环境,直到完全迁移到云。

5. 如何优化和管理

  • 监控和报告:通过 Azure Monitor 和 Azure Log Analytics,你可以实时监控 WVD 环境的性能和健康状况。同时,结合本地 RDS 工具(如 Performance Monitor 和 Event Viewer),可以实现全面的性能跟踪。
  • 成本优化:WVD 提供按需扩展功能,可以根据实际需求自动扩展和收缩虚拟机资源,从而有效降低不必要的成本。结合 Azure 成本管理工具,可以实现对 RDS 和 WVD 环境的成本优化。
  • 用户体验优化:通过使用 FSLogix 来管理用户配置文件,可以提高 WVD 环境下的登录速度和用户体验,同时确保本地 RDS 和云端 WVD 用户体验的一致性。

6. 常见问题与解决方案

  • 性能瓶颈:确保云端 WVD 环境有足够的计算资源,尤其是在多用户同时连接的情况下。通过 Azure Auto-scaling 功能来动态扩展资源。
  • 数据安全与合规性:使用 Azure 的安全功能,如 Azure Security Center 和 Azure AD Conditional Access,确保 RDS 和 WVD 环境符合企业的安全合规性要求。
  • 应用兼容性:对于一些本地应用程序,可能需要使用 RDS 来处理,而不是迁移到 WVD。可以通过应用程序虚拟化(如 App-V)来帮助迁移。

RDS 与 WVD 的结合,能够提供灵活且高效的桌面虚拟化解决方案。RDS 处理传统的远程桌面服务和应用虚拟化,而 WVD 则通过 Azure 提供更现代化、易扩展的桌面体验。两者结合使用后,可以帮助企业实现跨平台的远程办公,提升资源利用率,并确保 IT 管理的简便性和安全性。

27. 如何监控和报告RDS的使用情况和性能?

要监控和报告 远程桌面服务(RDS) 的使用情况和性能,你可以采用以下方法和工具。这些工具可以帮助你了解 RDS 环境的健康状况、资源使用情况,以及用户体验,从而及时发现潜在的问题并优化性能。

1. 使用 Windows 性能监视器 (Performance Monitor)

Windows 性能监视器 (PerfMon) 是一种强大的工具,可以帮助你监控 RDS 服务器的各种性能指标,确保其正常运行。

配置步骤

  • 启动性能监视器
    1. 在服务器上,按 Win + R,输入 perfmon 并按回车。
    2. 选择 "监视工具" -> "性能监视器"。
  • 添加监控计数器
    1. 右键点击性能监视器,选择 “添加计数器”。
    2. 选择你想要监控的指标,如 CPU 使用率、内存使用情况、磁盘 I/O、网络流量等。
    3. 可以选择 Remote Desktop Services 相关的计数器,监控每个会话的资源消耗、会话数等。
  • 设置报警:根据设置的阈值配置报警,以便当某些性能指标超过预设值时,能够及时收到通知。

关键性能计数器

  • \Processor(_Total)\% Processor Time:监控 CPU 使用情况。
  • \Memory\Available MBytes:监控内存的可用情况。
  • \Disk\Disk Bytes/sec:监控磁盘的 I/O 性能。
  • \RD Session Host\Current Sessions:监控 RD 会话数。
  • \RD Session Host\Session State:检查会话的健康状态。

2. 使用远程桌面监控工具 (RD Session Host Reports)

Windows 服务器中的 远程桌面会话主机报告 是一种内置的功能,能够提供有关 RD Session Host 服务器的详细报告,包括会话数、连接时间、资源使用等。

步骤

  1. 打开 Remote Desktop Services Manager(远程桌面服务管理器):
    • 按 Win + R,输入 tsadmin.msc 并回车。
  2. 在管理器中查看每个会话的详细信息,监控用户的连接状态、活跃时长等。
  3. 你还可以生成会话报告,查看每个会话的资源使用、断开连接的会话以及当前连接的会话。

3. 使用 Remote Desktop Connection Broker (RD Connection Broker)

RD Connection Broker 提供会话管理和负载均衡功能,并能够记录和报告有关 RDS 使用的详细数据。它能够跟踪用户连接、会话恢复和会话状态等信息。

配置步骤

  1. 打开 Server Manager,点击 Remote Desktop Services -> RD Connection Broker
  2. 查看 RD Session Host 服务器的性能和连接报告,包括会话数量、当前负载等。
  3. 会话历史:你可以通过 RD Connection Broker 查看每个会话的历史记录,了解用户的连接时长、断开时的原因等。

4. 使用 Task Manager (任务管理器)

任务管理器 提供了 RDS 性能的基本视图,可以实时监控每个 RD Session Host 服务器上的 CPU、内存、磁盘和网络使用情况。

步骤

  1. 打开 任务管理器(按 Ctrl + Shift + Esc)。
  2. 在 性能 标签下,查看 CPU、内存、磁盘和网络的实时使用情况。
  3. 在 用户 标签下,查看当前连接到 RD Session Host 服务器的用户会话和资源占用。

5. 使用 Windows 事件查看器 (Event Viewer)

事件查看器 是 Windows 操作系统中的日志管理工具,能够记录系统中的各种事件,包括 RDS 相关的事件。你可以通过查看事件日志,监控系统错误、警告和会话管理问题。

配置步骤

  1. 按 Win + R,输入 eventvwr.msc 并回车。
  2. 在事件查看器中,查看 Windows Logs -> Application 和 System 日志。
  3. 查找与 Remote Desktop Services 相关的日志,如用户登录、会话断开、服务器故障等信息。

6. 使用第三方 RDS 监控工具

除了内置工具,你还可以使用一些第三方 RDS 监控工具,这些工具提供更丰富的报告和监控功能,适用于大规模的 RDS 环境。

常见的第三方监控工具

  • SolarWinds Remote Desktop Monitoring:提供实时 RDS 性能监控、报告生成、用户会话管理等功能,能够帮助管理员深入了解 RDS 环境的健康状况。
  • Citrix Director:如果你使用 Citrix 提供的远程桌面服务,它提供了强大的报告和监控功能,包括会话管理、资源使用、性能报告等。
  • Paessler PRTG:一种全面的 IT 基础设施监控工具,支持 RDS 监控,包括会话数、CPU 使用率、内存、带宽等关键指标。

7. 报告和自动化

  • 定期生成报告:利用性能监视器、RD Connection Broker 或第三方工具,定期生成关于 RDS 性能的详细报告,包括用户会话数、资源使用情况、系统健康状态等。可以通过 PowerShell 脚本定期自动化报告生成和发送。
  • 配置警报和通知:可以设置阈值警报,当系统指标达到特定阈值时,自动触发通知。比如,当 CPU 使用率超过 90% 时,向管理员发送电子邮件警告。

监控和报告 RDS 的使用情况和性能是确保其高效运行的关键。通过使用 性能监视器RD Connection Broker任务管理器事件查看器 等工具,你可以实时监控系统性能并诊断潜在问题。此外,使用第三方监控工具可以进一步提升管理的便捷性和深度。通过定期报告和自动化告警,你可以保持 RDS 环境的高可用性,并确保用户体验的稳定性。

28. 如何配置RDS的远程桌面会话重定向(如文件夹、剪贴板、打印机)?

Remote Desktop Services (RDS) 环境中,远程桌面会话重定向(也叫设备重定向)允许客户端设备与远程桌面会话共享资源,如文件夹、剪贴板和打印机。这样,用户在远程桌面会话中可以方便地访问和使用本地设备上的资源。

配置远程桌面会话重定向的步骤如下:

1. 启用远程桌面会话重定向

首先,确保远程桌面会话主机(RDSH)上启用了设备重定向功能。可以通过 远程桌面会话主机配置组策略 来控制哪些设备和资源可以重定向到远程会话。

使用 远程桌面会话主机管理器 配置重定向

  1. 打开 远程桌面会话主机管理器
  2. 在左侧面板中选择 会话,然后右键单击 会话集合,选择 属性
  3. 在 会话属性 中,点击 设备和资源重定向 标签。
  4. 在此页面上,你可以选择启用或禁用某些设备和资源的重定向。例如,可以启用:
    • 打印机重定向
    • 剪贴板重定向
    • 本地驱动器重定向
    • 本地端口和设备重定向
  5. 配置完成后,点击 确定 保存设置。

2. 通过组策略配置远程桌面会话重定向

你可以使用 组策略 来更细致地配置远程桌面会话的重定向功能。组策略允许你为所有 RDSH 服务器或单个用户指定重定向设置。

配置组策略

  1. 打开组策略管理控制台:在域控制器或本地计算机上,打开 组策略管理控制台gpedit.msc)。

  2. 启用或禁用重定向 在组策略中,你可以配置以下设置来控制哪些设备和资源允许重定向:

    • 允许重定向的本地打印机

      1. 打开 计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 设备和资源重定向
      2. 启用 允许重定向本地打印机 策略,选择 已启用
    • 启用或禁用剪贴板重定向

      1. 继续在相同的路径下找到 重定向剪贴板
      2. 启用此策略,确保远程桌面会话中的剪贴板能够与本地计算机同步。
    • 允许或禁止本地驱动器重定向

      1. 在同一路径下找到 重定向本地驱动器
      2. 启用此策略,以允许本地驱动器在远程桌面会话中进行访问。
    • 重定向本地资源(如磁盘和端口)

      1. 找到 重定向本地设备 和 重定向本地端口 等相关策略。
      2. 启用或禁用此类策略,根据你的需求来控制哪些资源可以被重定向。
  3. 配置会话限制: 你还可以通过组策略来设置限制,例如限制每个用户会话的最大资源使用,或者设置每个会话中最多可使用的本地驱动器数量。

  4. 强制策略生效: 配置完组策略后,可以通过运行 gpupdate /force 强制策略生效。

3. 通过远程桌面客户端配置重定向

客户端设备的远程桌面连接配置也需要启用相应的重定向功能。通过 远程桌面连接客户端 配置文件,可以控制哪些资源会被重定向。

配置步骤

  1. 打开 远程桌面连接mstsc)。

  2. 在连接窗口中,点击 显示选项

  3. 进入 本地资源 标签页,设置所需的资源重定向:

    • 本地打印机:选择启用 打印机 重定向。
    • 本地磁盘:选择启用 磁盘驱动器 重定向。
    • 剪贴板:确保启用 剪贴板 重定向。
    • 其他设备和资源:选择 更多,在弹出的窗口中,你可以选择将 智能卡、串口设备、视频捕捉设备等 设备重定向到远程会话。
  4. 配置完成后,保存会话设置以便于下次连接时使用。

4. 验证和排查

  1. 测试文件夹重定向

    • 登录到远程桌面会话后,检查 我的电脑 或 文件资源管理器,确认本地驱动器或文件夹是否已成功重定向到远程桌面会话。
  2. 测试剪贴板重定向

    • 在远程桌面会话中复制文本或文件,并尝试粘贴到本地计算机上的应用程序,确保剪贴板共享正常工作。
  3. 测试打印机重定向

    • 在远程桌面会话中,尝试打印文档到本地打印机,检查打印功能是否正常工作。
  4. 检查安全和性能

    • 配置完重定向功能后,确保没有出现性能问题,特别是当远程桌面会话的用户数量较多时。可以监控远程桌面会话的资源消耗,特别是当重定向大量文件或设备时,可能会影响性能。

通过适当配置 远程桌面会话主机组策略远程桌面客户端设置,你可以实现对 剪贴板、打印机、本地磁盘、文件夹等设备和资源的重定向。确保在测试和实施过程中,远程桌面会话的稳定性和安全性得到保障。

29. 如何确保RDS环境的高可用性和容错性?

确保 Remote Desktop Services (RDS) 环境的高可用性和容错性是一个关键的任务,特别是在大规模企业环境中。通过合理的架构设计、配置冗余、负载均衡和灾难恢复策略,可以显著提高RDS环境的可靠性。以下是一些确保RDS环境高可用性和容错性的最佳实践。

1. 使用RDS高可用架构

RDS高可用性架构通常包括多个RDS角色的冗余部署。可以通过以下方式来确保高可用性:

1.1 部署多个远程桌面会话主机(RDSH)服务器

为了确保RDSH的高可用性,可以部署多个 远程桌面会话主机(RDSH) 服务器,这些服务器共享用户会话负载:

  • 负载均衡:使用 Windows负载均衡(NLB) 或 硬件负载均衡器(如F5),将用户请求分配到多个RDSH服务器。
  • 会话持久性:负载均衡可以结合会话持久性(Session Persistence)来保证用户每次连接都被定向到相同的服务器,避免会话中断。

1.2 高可用的连接代理(Connection Broker)

远程桌面连接代理(Connection Broker) 是管理用户会话的组件,确保用户会话被正确地分配到适当的RDSH服务器:

  • 配置多个 连接代理服务器,使其成为高可用的服务。
  • 通过 Windows群集 或 SQL Server Always On 设置冗余,以确保连接代理在一个节点失败时,其他节点可以继续工作。

1.3 使用Remote Desktop Gateway (RD Gateway)

RD Gateway 提供了从外部网络到RDS环境的安全访问:

  • 部署多个 RD Gateway 服务器并配置负载均衡,确保即使某个网关出现故障,用户仍然能够连接到远程桌面。

1.4 使用SQL Server作为Session和License Store

RDS的会话和许可证存储通常依赖于数据库(SQL Server):

  • 配置SQL Server的高可用性(如 Always On Availability Groups)以确保即使数据库服务器发生故障,RDS服务仍能正常运行。

2. 实施冗余和负载均衡

2.1 负载均衡器配置

确保使用负载均衡器来分配远程桌面会话的负载。负载均衡器能够检测服务器健康状态,并将流量引导到健康的节点:

  • 配置TCP负载均衡,特别是在需要处理大量并发会话的环境中。
  • 配置SSL负载均衡,以增强连接的安全性。

2.2 冗余的网络和存储

使用 冗余网络链接共享存储 来增强RDS环境的可靠性:

  • 通过冗余的 网络路径(如双网卡配置和路由器冗余)来避免单点故障。
  • 使用 存储区域网络(SAN) 或 分布式存储解决方案 确保数据高可用性,避免存储设备故障导致的中断。

3. 会话和配置的持久化

3.1 会话重定向和存储的持久化

将用户的会话和配置存储在持久化的 共享存储 中,以便在会话主机发生故障时,用户可以迅速恢复会话。

  • 使用 用户配置文件重定向 或 用户资料管理,通过配置文件服务器(例如 FSLogix)来持久化用户设置和文件。

3.2 使用会话虚拟化

通过 虚拟桌面基础架构(VDI)远程桌面会话虚拟化 来进一步提高会话的可靠性和恢复能力。这允许在服务器故障后迅速恢复用户会话。

4. 灾难恢复和备份

4.1 自动故障转移

配置自动故障转移机制,使得当某个RDS角色(如RDSH或连接代理)发生故障时,能够自动切换到备用节点:

  • 配置 自动故障转移 的连接代理和远程桌面会话主机。
  • 使用 群集化 或 SQL Always On 来确保数据库的可用性。

4.2 定期备份

确保定期备份RDS的配置文件、许可证、用户配置文件以及数据库(如 SQL Server)等关键数据。可以利用以下工具:

  • Windows Server Backup 或 System Center Data Protection Manager (DPM) 进行RDS环境的备份。
  • 配置 异地备份 或 云备份 方案,确保数据在本地灾难发生时仍然可以恢复。

4.3 测试灾难恢复流程

定期模拟灾难恢复演练,验证故障转移、备份恢复和容错机制的有效性。通过这种方式,确保系统能够在突发事件发生时迅速恢复。

5. 监控和报警

5.1 实时监控

使用 系统监控工具(如 System Center Operations Manager (SCOM)第三方工具)对RDS环境进行全面监控:

  • 监控服务器性能,包括 CPU、内存、网络带宽和存储使用情况。
  • 监控负载均衡器和连接代理的健康状态。
  • 监控数据库和共享存储的可用性。

5.2 设置报警和通知

配置报警和通知系统,在系统出现故障或性能下降时及时通知管理员。可以设置:

  • 对 RDSH 和连接代理的健康状态发出警报。
  • 对数据库故障和存储设备警报进行配置。

6. 定期维护和更新

确保RDS服务器、操作系统和应用程序保持最新的安全补丁和更新:

  • 使用 Windows Update Services (WSUS) 或 System Center Configuration Manager (SCCM) 自动化更新和补丁管理。
  • 定期检查和更新硬件和软件配置,防止潜在的兼容性问题。

要确保RDS环境的高可用性和容错性,必须采取全面的架构设计和技术措施,包括部署冗余的服务器和服务,实施负载均衡和故障转移机制,配置持久化存储和会话,建立灾难恢复计划,并定期进行监控和维护。通过这些策略,可以显著减少RDS服务中断的风险,并确保系统在发生故障时能够快速恢复,保证用户的连续访问体验。

30. 如何进行RDS环境的版本升级和迁移?

在进行 RDS(Remote Desktop Services)环境的版本升级和迁移 时,需要遵循严格的规划和实施步骤,确保服务不中断并且不会影响用户的工作体验。下面是关于如何进行 RDS环境的版本升级和迁移 的详细指南。

1. 升级和迁移前的准备工作

1.1 评估当前环境

在开始升级或迁移之前,首先要对现有的RDS环境进行详细评估:

  • 硬件和软件兼容性:检查当前的硬件和操作系统是否支持目标版本的RDS。如果需要升级硬件或操作系统,应先进行相应的更新。
  • 依赖关系检查:识别RDS部署中的所有组件(如远程桌面会话主机、远程桌面连接代理、远程桌面网关等),并确定它们是否需要同时升级或迁移。
  • 自定义配置和脚本:记录所有自定义配置和脚本,确保升级后可以恢复或重新配置。

1.2 备份现有环境

进行任何升级或迁移之前,务必备份现有的RDS环境,确保在出现故障时能够恢复。

  • 备份RDS服务器:使用系统备份工具(如 Windows Server Backup 或 第三方备份解决方案)进行整个RDS服务器的备份。
  • 备份数据库和配置:备份所有与RDS相关的配置文件、用户配置文件、许可证和数据库(如 SQL Server)。
  • 备份远程桌面会话信息:如果使用 FSLogix 等技术存储用户配置文件,确保这些文件的备份无误。

1.3 测试环境准备

建议先在测试环境中进行升级或迁移,验证流程是否顺利,并确保在生产环境中不会发生问题。可以通过以下方式来模拟真实环境:

  • 搭建测试环境:根据现有环境搭建一套与生产环境相似的测试环境。
  • 模拟用户负载:在测试环境中模拟正常的用户工作负载,观察性能、兼容性等方面是否符合预期。

2. RDS版本升级的实施步骤

2.1 升级操作系统和基础软件

RDS版本的升级通常需要操作系统和基础软件的升级,例如从 Windows Server 2016 升级到 Windows Server 2019 或更高版本。确保操作系统符合RDS版本要求,并进行以下操作:

  • 操作系统升级:按微软的标准流程执行操作系统的升级或安装。如果有需要,可以在 Windows Server Update Services (WSUS) 中下载并安装最新的更新补丁。
  • 安装RDS角色:升级操作系统后,确保所有需要的RDS角色(如 RDSH、Connection Broker、License Server、Gateway)都已正确安装并配置。

2.2 升级RDS组件

在升级操作系统后,接下来需要升级RDS的相关组件,如会话主机、连接代理和远程桌面网关:

  • 升级远程桌面会话主机(RDSH):首先升级或安装新的远程桌面会话主机。升级过程中,避免同时升级所有RDSH服务器。可以逐步进行,保证用户仍然可以通过其他节点访问。
  • 升级连接代理(Connection Broker):将连接代理升级到最新版本。如果使用SQL Server作为连接代理的后端数据库,确保数据库也可以兼容新版本的RDS。
  • 升级远程桌面网关(RD Gateway):同样,逐步升级远程桌面网关,确保每次只有少量用户受到影响。

2.3 迁移和恢复用户数据

在RDS版本升级过程中,用户的配置文件和会话数据是非常重要的。确保它们在升级过程中得到妥善迁移:

  • 用户配置文件迁移:使用 FSLogix 或类似工具迁移用户的配置文件。如果需要将这些配置文件从一个版本迁移到另一个版本,确保在测试环境中验证文件的兼容性。
  • 恢复会话历史:如果升级过程中丢失了部分会话数据,需要从备份中恢复会话历史。

2.4 验证和测试

完成升级后,必须对整个RDS环境进行验证:

  • 用户访问测试:验证普通用户是否能够正常连接到RDSH服务器并访问应用程序。
  • 负载均衡测试:确保负载均衡机制正常工作,用户会话能够在多个RDSH服务器之间平稳分配。
  • 性能验证:监控系统性能,确保没有出现瓶颈或性能问题。
  • 兼容性测试:测试关键应用程序是否与新版本的RDS兼容。

3. RDS环境的迁移步骤

迁移RDS环境的步骤与升级类似,但更注重将服务从一个服务器或数据中心迁移到另一个服务器或位置。迁移的常见情境包括从物理服务器迁移到虚拟化环境,或从一个数据中心迁移到另一个数据中心。

3.1 准备迁移环境

迁移前的准备与版本升级类似,但需要考虑以下额外的因素:

  • 迁移目标环境:确认目标环境的操作系统、硬件和网络配置符合新的RDS部署需求。
  • 资源规划:确保目标环境的计算资源(如 CPU、内存、存储)足够支持预计的用户负载。
  • 网络配置:检查网络带宽、延迟等因素,确保远程桌面环境的网络性能良好。

3.2 迁移步骤

迁移过程通常包括以下几个步骤:

  1. 迁移RDS角色:将现有的RDS角色(如RDSH、连接代理、许可证服务器等)从源服务器迁移到目标服务器。根据不同的角色,可能需要手动安装并配置。

  2. 迁移会话数据:将用户的会话信息、配置文件和用户资料从旧服务器迁移到新服务器。如果使用FSLogix,只需要确保配置文件路径正确,并完成迁移。

  3. 迁移数据库:如果使用 SQL Server 或其他数据库作为连接代理的后端数据库,确保数据库在目标服务器上可以无缝迁移和连接。

  4. 验证连接:完成迁移后,确保客户端设备能够通过新服务器连接,并且所有的远程桌面服务都能正常工作。

3.3 回退计划

迁移过程中可能会遇到意外问题,因此应提前规划回退方案。如果迁移失败,可以迅速恢复到原来的环境。

  • 备份:确保在迁移前对所有关键数据进行了备份,特别是用户配置文件和会话数据。
  • 回滚过程:准备好详细的回滚流程,如果迁移过程中出现问题,可以及时将环境恢复到原始状态。

4. 迁移后的维护和监控

4.1 定期监控

迁移完成后,使用系统监控工具(如 System Center Operations Manager (SCOM))对RDS环境进行实时监控,确保服务稳定运行。

4.2 性能优化

根据迁移后的环境性能,进行适当的优化,确保系统响应时间和负载均衡达到最佳状态。

4.3 持续备份和更新

继续保持常规的备份和系统更新,确保RDS环境处于最新状态并具备良好的容灾能力。


进行RDS环境的版本升级和迁移需要细致的规划和执行,特别是在高可用性和容灾性方面。通过逐步升级、合理备份和测试、迁移关键组件,并确保新环境的稳定性和兼容性,可以顺利完成RDS环境的版本升级和迁移。

这些问题从基础安装到高级管理,涵盖了Windows RDS的方方面面。如果你逐一解答并实际操作,就能系统地掌握RDS的各项技能。此外,你还可以关注具体技术文档、在线课程和实践演练,这将有助于加深对RDS的理解。


RDS - 生成和部署 | Microsoft Learn

 

posted @ 2024-08-09 10:20  suv789  阅读(4413)  评论(0)    收藏  举报