Windows Server 2019 RDS部署实战:从规划到高可用架构搭建

发布时间:2026/8/6 7:25:48
Windows Server 2019 RDS部署实战:从规划到高可用架构搭建 1. 项目缘起为什么要在Win Server 2019上部署远程桌面服务如果你管理过服务器或者在一个需要远程访问内部应用、虚拟桌面的团队里待过那你肯定对“远程桌面”这个词不陌生。但很多人可能还停留在“用Windows自带的远程桌面连接mstsc连一下服务器”的初级阶段。当团队规模扩大或者需要为不同部门、不同角色的员工提供标准化的远程工作环境时单靠那点免费的并发连接数通常只有两个就完全不够用了而且管理起来也是一团乱麻。这时候微软的远程桌面服务Remote Desktop Services 简称RDS就该登场了。它不是一个简单的远程控制工具而是一整套企业级的虚拟化解决方案。简单来说它允许你把应用程序或者整个桌面系统集中部署在服务器上然后通过网络分发给各种终端设备PC、笔记本、平板甚至手机去使用。用户看到的是一个完整的Windows桌面或者一个独立的应用程序窗口但所有的计算和存储实际上都在后端的服务器上完成。选择在Windows Server 2019上部署RDS有几个非常实际的理由。首先它是Windows Server 2016之后一个成熟稳定的长期服务渠道LTSC版本意味着它有长达10年的支持周期对于企业核心服务来说稳定性和长期支持至关重要。其次Server 2019在RDS方面引入了不少改进比如对Windows虚拟桌面WVD架构更好的支持、更优的图形渲染特别是对DirectX和OpenGL应用、以及通过FSLogix配置文件容器技术带来的用户体验提升。最后对于很多还在使用较旧版本如Server 2008 R2/2012 R2RDS环境的企业来说升级到2019是一个顺理成章的技术迭代路径。所以这篇内容就是一次完整的实战记录。我会带你从零开始在一台干净的Windows Server 2019上部署一套包含连接代理Connection Broker、Web访问Web Access和会话主机Session Host的标准RDS场Farm。我会重点讲清楚每个角色的作用、部署时的关键选择、那些官方文档里语焉不详的配置细节以及我踩过并填平的那些坑。无论你是IT管理员需要搭建一套测试环境还是开发者想了解如何集中部署开发工具这篇文章都能给你一份可以直接“抄作业”的指南。2. 部署前的核心规划与准备工作在动手安装任何一个功能之前规划是避免后期返工的关键。RDS部署不是点几下“下一步”就完事的它涉及到网络、存储、许可、高可用等多个层面。我们先来把地基打牢。2.1 环境与角色规划一个最小化的生产可用RDS场通常包含以下服务器角色在测试环境中可以全部部署在一台物理或虚拟服务器上即“单服务器部署”远程桌面会话主机RD Session Host这是核心角色用户实际连接并运行会话应用程序或桌面的服务器。它承载了所有的计算负载。在生产环境中通常会部署多台RD会话主机组成一个集合Collection以实现负载均衡和故障转移。远程桌面连接代理RD Connection Broker可以理解为RDS场的“大脑”和“调度中心”。它负责会话负载均衡将新来的用户连接请求智能地分配到负载最轻的RD会话主机上。会话重连确保断开的用户能够重新连接到他们之前的会话包括正在运行的应用程序和打开的文件而不是开启一个新会话。场管理维护整个RDS场中所有服务器的状态信息。远程桌面Web访问RD Web Access为用户提供一个基于Web的入口通常通过https://服务器名/RDWeb访问。用户可以通过浏览器直接访问发布的远程桌面和远程应用无需预先在客户端安装任何软件除了必要的ActiveX控件或HTML5客户端。这极大地简化了客户端的访问方式。远程桌面授权RD LicensingRDS不是免费的午餐。除了Windows Server自带的两个管理连接外任何用户连接都需要相应的RDS客户端访问许可证RDS CAL。RD授权服务器就是负责管理和分发这些CAL的。重要提示你有一个120天的宽限期来安装和配置授权服务器但规划时必须提前考虑CAL的类型每用户或每设备和数量。对于本次部署我们采用一个折中且常见的测试/中小型环境架构一台服务器同时承载RD连接代理、RD Web访问和RD授权角色。我们将这台服务器称为RDS-Broker。另一台或多台服务器承载RD会话主机角色。我们将第一台会话主机称为RDS-SessionHost01。所有服务器均加入同一个Active Directory域例如contoso.local。域环境是RDS标准部署的强依赖它用于用户身份认证、策略应用和计算机对象管理。2.2 系统与网络要求操作系统Windows Server 2019 Standard 或 Datacenter。确保已安装最新的累积更新。内存与CPU这是决定用户体验和并发用户数的关键。对于RDS-SessionHost一个基础的估算方法是为每个用户会话预留1-2GB RAM和一个逻辑CPU核心的10-20%。例如计划支持20个并发用户会话主机至少需要32GB RAM和4核以上的CPU。RDS-Broker服务器负载较轻4-8GB RAM和2核CPU通常足够。存储建议使用SSD存储以提升用户登录速度和应用程序响应。特别是如果计划使用FSLogix来管理用户配置文件更需要高性能的存储如高速NAS或SAN。网络所有RDS服务器角色之间需要稳定的局域网连接。如果用户从外部网络互联网访问你还需要规划公网IP和域名为RD Web访问服务RDS-Broker配置一个公网IP并为其绑定一个域名如remote.yourcompany.com。SSL证书为了安全必须为RD Web访问和RD网关如果部署配置由受信任的证书颁发机构CA签发的SSL证书。在测试环境中我们可以先使用自签名证书但生产环境必须更换。防火墙需要在边缘防火墙或Azure NSG/AWS安全组上开放TCP 443端口用于HTTPS/Web访问和TCP 3389端口用于传统的RDP直连不推荐公网开放。2.3 必要的先决条件配置在开始安装RDS角色之前有几项工作必须完成加入域确保RDS-Broker和RDS-SessionHost01都已成功加入到你的Active Directory域中并且能用域管理员账户登录。设置静态IP为所有服务器配置静态IP地址避免DHCP租约变化导致的服务中断。计算机名给服务器起一个清晰易懂的名字例如前面提到的RDS-Broker和RDS-SessionHost01。关闭IE增强安全配置在Server 2019上默认的IE增强安全配置会阻止很多管理操作。我们可以在“服务器管理器” - “本地服务器”中找到并关闭它以便后续下载证书或访问管理页面。准备一个服务账户可选但推荐创建一个专用的域用户账户如svc_rdsfarm并将其添加到每台RDS服务器的本地“Administrators”组中。这个账户将用于一些后台服务运行和跨服务器管理比直接使用域管理员账户更安全。3. 分步部署从零搭建RDS场规划完成后我们开始动手安装。我将使用服务器管理器中的“添加角色和功能向导”进行图形化部署这是最直观的方式。3.1 阶段一在RDS-Broker上部署连接代理、Web访问和授权首先登录到我们规划为RDS-Broker的服务器。启动部署打开“服务器管理器”点击仪表板顶部的“管理” - “添加角色和功能”。选择部署类型在“选择安装类型”步骤关键选择来了。这里要选择“远程桌面服务安装”。这个选项会启动一个专门的RDS部署向导它能够帮你按正确顺序安装和配置多个角色并自动建立角色之间的关联。选择部署方案接下来选择“标准部署”。另一个选项“快速启动”会将所有角色安装在一台服务器上适合极简测试但我们规划了分离的会话主机所以选“标准部署”。选择部署场景选择“基于会话的桌面部署”。这是最常见的场景为用户提供完整的远程桌面会话。指定角色服务现在需要指定哪些服务器承担哪些角色。RD连接代理从服务器池中选择RDS-Broker这台服务器。RD Web访问同样选择RDS-Broker。这样用户就可以通过这台服务器的IIS来访问Web门户。RD会话主机这里先不选因为我们的会话主机是另一台服务器RDS-SessionHost01。我们稍后再单独去那台服务器上安装这个角色。直接点击“下一步”。确认配置向导会列出即将在RDS-Broker上安装的角色远程桌面连接代理、远程桌面Web访问。确认无误后勾选“需要时自动重新启动目标服务器”然后点击“部署”。等待安装系统开始安装IIS、必要的.NET功能以及RDS角色服务。这个过程可能需要重启一次。安装完成后你可以在服务器管理器的“所有服务器”列表下看到一个新的“远程桌面服务”分组里面已经有了RDS-Broker。安装RD授权角色单独进行上述向导不会自动安装授权角色。我们需要回到“添加角色和功能向导”但这次选择常规的“基于角色或基于功能的安装”。在“服务器角色”列表中找到并展开“远程桌面服务”然后勾选“远程桌面授权”。按照提示完成安装。至此RDS-Broker上的核心管理角色就安装完毕了。但此时它还是一个“光杆司令”没有可管理的会话主机。3.2 阶段二在RDS-SessionHost01上部署会话主机现在登录到RDS-SessionHost01服务器。使用服务器管理器同样打开“服务器管理器”点击“管理” - “添加角色和功能”。选择安装类型这次我们选择“基于角色或基于功能的安装”因为只需要安装单个角色。选择目标服务器确保选中了RDS-SessionHost01。选择服务器角色在角色列表中找到并勾选“远程桌面会话主机”。勾选时会弹出对话框询问是否添加所需的功能如.NET Framework、RPC over HTTP代理等点击“添加功能”继续。功能选择直接点击“下一步”除非你有特殊需求否则默认功能即可。确认并安装在确认页面再次勾选“需要时自动重新启动目标服务器”然后点击“安装”。重要提示安装RD会话主机角色后服务器会强制重启。重启后首次登录时会进行一些额外的配置比如设置用于RDS的防火墙规则。请务必等待这个配置过程完成。3.3 阶段三将会话主机加入到RDS场现在我们有两台安装了不同角色的服务器。需要让“大脑”连接代理认识并管理“劳动力”会话主机。回到RDS-Broker进行管理在RDS-Broker服务器上打开“服务器管理器”。导航到远程桌面服务在左侧导航窗格中点击“远程桌面服务”。在中间窗格你应该能看到一个概述仪表板。添加会话主机在“部署概述”部分找到“RD会话主机”区域。它目前应该是空的或显示“未配置”。点击右侧“任务”下拉菜单选择“添加RD会话主机服务器”。在“选择服务器”对话框中输入RDS-SessionHost01并点击“添加”然后点击“下一步”。在“确认”页面点击“添加”。系统会通过WinRM在会话主机上执行必要的配置将其注册到连接代理。创建会话集合Collection会话集合是逻辑管理单元你可以把不同的应用程序或桌面配置分配给不同的用户组。在“远程桌面服务”仪表板点击右侧“任务” - “创建会话集合”。给集合起个名字比如“普通用户桌面”。在“选择RD会话主机”页面勾选刚加入的RDS-SessionHost01。在“指定用户组”页面可以添加允许访问这个集合的域用户或组。例如添加CONTOSO\Domain Users允许所有域用户访问。注意在生产环境中应遵循最小权限原则只添加必要的用户组。后续的“用户配置文件”、“设备与资源重定向”等设置可以先保持默认后续再根据需求调整。完成创建。现在一个最基本的RDS场就搭建起来了。用户已经可以通过传统RDP客户端使用域名\用户名的方式直接连接到RDS-SessionHost01了。但这还不是最便捷的方式我们还需要配置Web访问门户。4. 配置与优化让服务可用、好用且安全基础架构搭好了但默认配置离“生产可用”还有距离。我们需要进行一系列关键配置。4.1 配置RD Web访问与SSL证书默认情况下RD Web访问使用的是自签名证书浏览器会显示安全警告。我们需要解决这个问题。申请或创建证书生产环境向公共CA如DigiCert, GlobalSign或企业内部CA申请一个SSL证书。证书的“公用名CN”或“使用者可选名称SAN”必须包含用户访问Web门户时使用的地址如remote.yourcompany.com。测试环境我们可以在RDS-Broker上创建一个自签名证书并将其导入到“受信任的根证书颁发机构”存储中仅用于测试。打开“管理工具” - “IIS管理器”在服务器节点下选择“服务器证书”创建自签名证书名称填RDS-Broker。为RD Web访问绑定证书打开“IIS管理器”展开左侧树形图找到“站点” - “Default Web Site”。在右侧“操作”面板点击“绑定”。在网站绑定列表中找到类型为https、端口为443的那一行点击“编辑”。在“SSL证书”下拉框中选择你刚刚创建或导入的证书如RDS-Broker点击“确定”。在RDS部署属性中配置证书回到“服务器管理器” - “远程桌面服务” - “概述”。在“部署概述”的顶部点击“任务” - “编辑部署属性”。切换到“SSL 证书”选项卡。在“为RD连接代理选择证书”和“为RD Web访问选择证书”部分分别选择你配置的同一个证书。点击“应用”。系统会花一点时间将证书应用到所有相关服务。测试Web访问在客户端浏览器中输入https://RDS-Broker的IP或主机名/RDWeb。如果一切正常你应该能看到一个登录页面而不再有证书警告测试环境自签名证书可能仍有警告需手动信任。4.2 配置RD授权服务器120天的宽限期一过没有有效的许可证服务器用户将无法连接。所以必须尽快配置。激活授权服务器在RDS-Broker上打开“远程桌面服务” - “RD授权管理器”或直接运行licmgr.exe。右键点击服务器名称RDS-Broker选择“激活服务器”。跟随激活向导选择连接方式通常为“自动连接”连接到微软的激活服务器完成激活。安装RDS CAL许可证包服务器激活后右键点击它选择“安装许可证”。根据你购买的CAL类型每用户或每设备和数量输入许可证计划、协议号码等信息从微软获取许可证密钥包.msi文件或密钥ID。在向导中提供这些信息完成许可证的安装。在部署中指定授权服务器再次打开“服务器管理器” - “远程桌面服务” - “概述” - “任务” - “编辑部署属性”。切换到“RD授权”选项卡。在“授权模式”下拉框中选择你安装的CAL类型每用户或每设备。在“指定RD授权服务器”部分点击“添加”将RDS-Broker添加进去。点击“应用”。4.3 关键策略配置与用户体验优化默认设置可能无法满足所有需求我们需要调整一些策略。会话集合配置在“远程桌面服务”仪表板中点击你创建的会话集合如“普通用户桌面”。在右侧“设置”区域可以配置众多选项会话限制单个会话的断开后保留时间、活动会话最长时间等。安全设置加密级别、是否要求网络级身份验证NLA强烈建议启用。客户端设置控制客户端设备资源的重定向如驱动器、打印机、剪贴板、音频等。安全提示根据安全策略谨慎开放驱动器重定向以防数据泄露。用户配置文件磁盘UPD这是一个简化版的配置文件漫游方案。可以指定一个网络共享路径为集合中的每个用户创建一个虚拟硬盘VHDX文件来存储其配置文件。这能解决“漫游配置文件”在RDS场景下登录慢的问题。注意UPD与更先进的FSLogix方案不兼容二者选其一。通过组策略进行精细控制对于更复杂的管理如限制特定软件的安装、设置屏幕保护程序、配置电源选项等最佳实践是使用组策略。你可以在域控制器上创建一个新的组策略对象GPO并将其链接到包含RDS服务器的OU。在这个GPO中导航到“计算机配置” - “策略” - “管理模板” - “Windows 组件” - “远程桌面服务”这里有海量的策略可以配置。例如可以禁用客户端驱动器重定向、强制特定屏幕分辨率、配置会话超时行为等。5. 高级话题与故障排查锦囊部署完成后日常运维和问题排查才是真正的挑战。这里分享几个常见的高级场景和排错思路。5.1 实现高可用性HA单点故障是生产环境的大忌。RDS的核心高可用在于RD连接代理。原理将多台服务器配置为RD连接代理角色并放入一个服务器组Server Group然后为该组配置一个客户端访问名Client Access Name通常是一个DNS别名CNAME或负载均衡器的虚拟IP。操作简述准备至少两台服务器都安装RD连接代理角色。在“服务器管理器”的RDS部署中使用“高可用性向导”来创建服务器组。为该组配置一个唯一的客户端访问名如rd-farm.contoso.local。在DNS中为这个访问名创建一条记录指向两台连接代理服务器的IP或指向负载均衡器VIP。将所有RD会话主机和RD Web访问服务器指向这个客户端访问名。效果当一台连接代理宕机时另一台可以自动接管用户连接不会中断已建立的会话由会话主机维持新连接请求由存活的代理处理。5.2 用户登录缓慢问题排查这是RDS环境中最常见的问题之一。排查思路可以像一个漏斗从外到内网络层面使用ping和tracert检查客户端到RDS服务器、RDS服务器到域控制器之间的网络延迟和丢包。高延迟或丢包会显著拖慢登录过程中的身份验证和策略应用。DNS解析确保所有RDS服务器和客户端都能正确、快速地解析域控制器、其他RDS服务器以及自身的完整域名FQDN。错误的DNS配置是登录慢的元凶之一。在RDS服务器上执行nslookup 域控制器名和nslookup 本机名进行验证。组策略处理使用gpresult /h report.html命令生成组策略报告检查应用到用户和计算机的策略数量及处理时间。过多的策略或配置了“同步处理”会严重拖慢登录。优化策略将不必要的设置移除或改为“异步处理”。用户配置文件如果使用了漫游配置文件或UPD检查配置文件存储的网络共享NAS/SAN的IO性能。使用资源监视器观察登录时的磁盘活动情况。这也是为什么推荐FSLogix的原因它能将配置文件以VHDX容器形式挂载性能远好于传统的文件拷贝方式。登录脚本和驱动器映射检查用户属性中是否配置了复杂的登录脚本或映射了大量网络驱动器。这些操作会在登录时顺序执行增加等待时间。会话主机资源检查会话主机的CPU、内存、磁盘使用率。资源瓶颈会导致所有用户操作变慢包括登录。使用性能监视器PerfMon添加“远程桌面服务”相关的计数器进行监控。5.3 连接失败与错误代码解读用户连接时可能会遇到各种错误快速定位是关键“由于以下原因之一远程桌面无法连接到远程计算机...”这是一个通用错误。首先检查网络连通性防火墙端口3389, 443是否开放然后检查目标服务器上的“远程桌面服务”服务是否运行最后检查用户是否有权登录到该会话集合。“要登录到此远程计算机您必须被授予允许通过远程桌面服务登录的权限”用户所在的域组没有被添加到会话集合的“用户组”中或者没有被添加到会话主机本地“Remote Desktop Users”组中。需要在RDS管理器中或通过组策略“允许通过远程桌面服务登录”添加权限。“因为已达到授权服务器提供的最大允许用户数所以远程会话被中断”这是典型的许可证问题。检查RD授权服务器是否已激活并安装了足够数量的、未过期的CAL。在RD授权管理器中查看已颁发的许可证数量和使用情况。“发生身份验证错误。无法连接到本地安全机构”通常与CredSSP加密Oracle修正有关。解决方案是在RDS服务器上配置组策略或注册表将“加密Oracle修正”策略设置为“易受攻击”。注意这是一个安全降级措施应评估风险后仅在必要时使用。更安全的做法是更新所有客户端操作系统到最新版本。5.4 性能监控与容量规划RDS环境是共享资源需要持续监控。内置工具“服务器管理器” - “远程桌面服务” - “集合” - 选择你的集合在“虚拟机”或“会话”选项卡下可以实时查看每台会话主机的用户数、会话状态。性能监视器PerfMon添加以下关键计数器\Terminal Services\Active Sessions活动会话数。\Terminal Services\Inactive Sessions非活动会话数。\Processor(_Total)\% Processor TimeCPU使用率。\Memory\Available MBytes可用内存。\LogicalDisk(C:)\Avg. Disk Queue Length磁盘队列长度反映IO压力。容量规划根据监控数据建立基线。例如观察到20个用户同时使用Office套件时平均CPU使用率为60%内存占用为40GB。那么当计划支持40个同类用户时你就需要至少准备性能翻倍的硬件或者增加一台会话主机来分担负载。部署一套RDS环境就像搭建一个多租户的云端办公室。从最初的规划、角色部署到证书绑定、授权配置再到最后的策略调优和故障排查每一步都需要结合实际的业务需求和安全考量。Windows Server 2019的RDS已经是一个相当成熟的平台图形化向导让基础部署变得简单但真正让它稳定、高效、安全地运行离不开对底层原理的理解和对细节的把握。