
1. 先把场景说清楚谁真的需要这台远程桌面服务远程桌面服务Remote Desktop Services简称 RDS这套东西很多人的第一印象就是远程连服务器嘛mstsc 一敲不就行了。真上手装过一次才知道单机远程和真正的多用户远程桌面完全是两回事。单用户远程桌面只是让你一个人连上去管事而 RDS 是要把一台 Windows Server 2012 R2 变成一台能同时承载几十个用户办公的应用服务器——每个人登录后拿到独立的会话各跑各的 Office、各开各的浏览器互不打架。这两者的区别差不多相当于单人宿舍和集体宿舍的区别前者够用就行后者要考虑水电、门锁、床位分配、退房结算。我接触这套方案基本都集中在几个典型场景中小企业的办公终端替换老电脑跑不动新软件干脆买一台性能好的服务器全员远程上去办公、软件测试环境隔离不同项目组用不同会话避免互相污染、以及一些需要集中管控数据不出机房的场合。这些场景的共同诉求是把计算和存储收到一处客户端只要一个瘦终端或者老机器就能干活。注意Windows Server 2012 R2 的 RDS 部署有一个绕不过去的前提——服务器必须加入 Active Directory 域。工作组环境下标准部署流程根本走不下去会话集合这一步会直接卡死。这一点很多人第一次装的时候会忽略装到一半才发现问题。这篇内容适合三类人第一次接触 RDS、准备在 2012 R2 上从零搭一套的运维新人已经装了一半被11 天后停止工作或者 ActiveX 控件报错卡住的半路选手以及需要评估这套方案到底值不值得投入的老手。我会把角色选型、部署路径、授权配置、报错排查整条链路走一遍中间踩过的坑和参数计算也一并交代清楚。全文基于常见的标准实践和我自己实操踩坑的经验补全凡是原作没提到的细节我都会标注清楚这是补充说明。2. 部署前的角色拆解与前置条件2.1 RDS 六个角色服务到底该装哪几个打开服务器管理器的添加角色和功能进到远程桌面服务这一项会看到一排角色服务。新手最容易犯的错就是我全都要结果装完一堆用不上的东西维护成本翻倍。先把每个角色干的活说清楚再做减法角色服务作用是否必装RD 会话主机RD Session Host真正跑用户会话、承载应用的核心必装RD 连接代理RD Connection Broker会话分配、负载均衡、断线重连多台会话主机必装单台可省RD Web 访问RD Web Access浏览器里点图标就能连的入口页看需求纯客户端连可以省RD 授权RD Licensing发放和记录 CAL 许可证必装否则 120 天宽限期后停摆RD 网关RD Gateway让外网用户走 443 端口安全接入需要外网接入才装RD 虚拟化主机RD Virtualization Host基于虚拟机的桌面池一般不用一句话总结最小可用组合是会话主机 授权两块。只要会话主机数量超过一台或者你想要断线后仍然回到原来那个会话这在实际办公里体验差别巨大那就得把连接代理加上。我个人的习惯是单台服务器的情况下把会话主机、连接代理、授权、Web 访问四个一起装因为后面就算想扩一台会话主机连接代理和授权现成的加进去就行不用回头补装。虚拟化主机除非你明确要做 VDI否则不要碰。2.2 加域这件事绕不过去前面说过2012 R2 的 RDS 标准部署强制要求域环境。这不是可以绕的配置项是设计前提。原因在于连接代理需要靠 AD 来识别会话主机、保存会话状态用户身份统一走域账号才能实现跨主机的会话漫游许可也是绑定域内的授权服务器。工作组下你硬用远程桌面会话主机这个单角色确实还能让多个非域用户挤上来但那是老式的终端服务模式没有连接代理、没有集合、没有 Web 入口用户体验和可维护性都差一大截。所以部署前先确认几件事这台服务器已经加入域或者你准备把它提升为域控不推荐在会话主机上跑域控资源竞争太严重。域功能级别至少是 Windows Server 2008 R2 以上2012 R2 的域最省心。准备一个专门的域账号作为 RDS 管理员别图省事直接用域管账号跑日常维护。2.3 前置检查清单装之前先过一遍我整理了一份装之前必查的清单每次新搭一套都会对着走一遍能省掉后面 80% 的莫名其妙报错系统时间所有相关服务器时间必须一致误差控制在一分钟内。授权服务器和会话主机时间差太多许可证发放会失败。主机名和 DNS主机名别用中文、别带下划线正向和反向解析都要能通。后面连接代理找不到会话主机十有八九是 DNS 的问题。防火墙端口RDS 之间通信依赖 RPC 动态端口默认 49152 到 65535 区间和 135 端口。跨网段部署的时候这段端口范围经常被交换机 ACL 拦掉。磁盘规划会话主机上用户配置文件会膨胀单独给一块盘放用户数据别跟系统盘挤一起。IE 增强的安全配置IE ESC这个后面讲 ActiveX 报错时会重点说先记住它默认是开着的。提示如果你打算用现成的模板机克隆多台会话主机注意每台的 SID 和主机名必须改掉否则加入会话集合时会出现同一台机器重复注册的诡异现象。3. 两条部署路径的实操快速部署与手动部署3.1 用快速启动十分钟起一套会话集合如果你是第一次装强烈建议先走快速启动这条路它能让你在十几分钟内看到一个能跑起来的完整环境建立起对整套架构的直观认识。路径是服务器管理器 → 管理 → 添加角色和功能 → 远程桌面服务 → 选择标准部署→ 部署模式选基于会话的桌面部署→ 勾选相关服务器加入部署。这里的部署模式有两个选项基于会话的桌面部署和基于虚拟机的桌面部署。前者就是传统的共享会话一台机器多人共用系统但各自独立会话资源利用率高最省钱后者是给每个用户分一台独立虚拟机资源开销大得多。中小办公场景九成选前者。接着会进入角色服务勾选页面把 RD 连接代理、RD Web 访问、RD 会话主机、RD 授权都勾上。然后系统会让你指定哪些服务器承担哪个角色。单机部署时全指向同一台即可。最后一步是确认点安装等着重启。重启完成后会自动弹出部署完成的界面同时服务器管理器里多出一个远程桌面服务节点里面能看到概述服务器集合这些子项。这时候集合里还没有东西需要手动创建会话集合。创建会话集合Session Collection是这套流程里最容易被低估的一步。集合本质上是一组会话主机的逻辑分组用户连接的时候是连到集合上由连接代理在后台挑一台空闲主机分配过去。填集合名称建议用英文别用中文和空格、选会话主机、给访问用户组授权一般直接用域用户组或者专门的 RDS 用户组后面几步默认就行。3.2 手动逐角色安装把控制权握在自己手里快速部署适合尝鲜但真要上生产我更推荐手动逐个角色装。原因很实在快速部署会替你做一些隐含决策比如自动配置连接代理的数据库、自动生成自签证书这些默认值在正式环境里往往要改回头改比一开始就自己配还麻烦。手动部署的步骤是先装 RD 连接代理装完它会要求你配置一个数据库。单台服务器用 Windows Internal DatabaseWID就够了不用上 SQL Server。多台连接代理做高可用时才考虑外部 SQL。装 RD 授权装完立刻去激活服务器下一章详说别拖。装 RD 会话主机。装 RD Web 访问如果需要浏览器入口。回到服务器管理器创建会话集合把关机会话主机加进去。用 PowerShell 一把梭也可以核心命令是这条Install-WindowsFeature -Name RDS-RD-Server, RDS-Connection-Broker, RDS-Web-Access, RDS-Licensing -IncludeManagementTools装完记得重启-IncludeManagementTools这个参数别落下否则图形管理工具不会一起装后面还得单独补。3.3 连接代理和会话集合的关系别配错了很多人会在这里绕晕连接代理和会话集合到底是什么关系。打个比方连接代理像是酒店的前台会话集合像是楼层。用户拿房卡凭据到前台前台看哪层楼有空房把人安排过去。断线重连的时候还是这个前台根据你之前的登记把你送回原来的房间。所以配置顺序上一定是先有连接代理再有集合最后把会话主机加进集合。反过来的话会话主机会处于没人管的状态用户能连上但每次都是新会话之前没保存的东西全丢体验极差。集合创建完成后可以在集合属性里配置一堆关键项用户配置文件磁盘给每个用户挂一个独立的虚拟磁盘用户在任何一台会话主机上登录看到的桌面和文档都是同一个。这对多主机环境几乎是刚需。会话限制空闲多久自动断开、断开后多久自动注销。设太短用户抱怨设太长资源占着不放一般断开后保留 8 小时、空闲 2 小时断连比较折中。安全层默认协商如果老客户端连不上可以退到 RDP 安全层试试。我一般会先把用户配置文件磁盘配好再放用户进来因为一旦用户开始用再切换配置文件方案就得迁移数据非常折腾。4. 授权配置把11 天后停止工作这个提示彻底消掉4.1 宽限期、授权模式、CAL三个概念先理清服务器装完、集合建好正常用一阵子之后登录会话主机会弹出一句提示远程桌面授权模式尚未配置。远程桌面服务将在 11 天后停止工作。看到这个别慌这不是坏了是宽限期倒计时。Windows Server 2012 R2 的会话主机在启用后会有一个 120 天的宽限期这期间不配授权也能正常用。倒计时一到非管理员账号就再也连不上会话主机了管理员还能连用来救场。热词里说的 11 天就是某个环境的宽限期快用完了。三个概念的关系是这样的宽限期是免费试用期授权模式是你打算按什么方式收费CAL 是你实际买到的票。宽限期用完之前必须把授权模式配好且授权服务器上真的装了 CAL三者缺一不可。授权模式有两种模式计费单位适用场景每设备Per Device每台访问的设备一张 CAL多人共用同一台终端比如车间里的公共机器每用户Per User每个用户账号一张 CAL一个用户多设备切换比如办公室加家里选错模式的代价是真金白银。之前见过一个环境用户经常换电脑结果买了每设备的授权设备数很快超了反而更贵。判断方法很简单设备流动大、人固定选每设备人流动大、设备固定选每用户。4.2 激活授权服务器并安装 CAL 的完整流程授权服务器激活是必须做的一步没激活就装不了 CAL。打开远程桌面授权管理器命令行输licmgr.exe也能直接调出来右键服务器选择激活服务器进入激活向导。激活方式有几种自动连接、Web 浏览器、电话。生产环境如果是隔离网络用 Web 浏览器方式会给你一个网址你在能上网的机器上访问拿到确认 ID 再填回来。整个过程大概五分钟不难但要注意把激活 ID 保存好重装系统后要用。激活完成后右键服务器选安装许可证导入你从授权渠道拿到的 CAL 包。导入之后在授权管理器里能看到已安装的许可证数量和使用情况。然后是最后一步也是最关键的一步告诉会话主机去哪里找授权服务器。这一步靠组策略做路径是计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 授权里面有两个策略要配使用指定的远程桌面许可证服务器启用填入授权服务器的主机名或 IP。设置远程桌面授权模式启用选每用户或每设备必须和你要的 CAL 类型一致。配完策略在会话主机上执行gpupdate /force然后重启会话主机服务或者干脆重启机器。重启后宽限期提示应该就消失了。注意授权服务器装 CAL 的模式和会话主机上组策略设的模式必须完全一致。如果授权服务器卖给你的是每用户 CAL你组策略里却选了每设备那么会话主机找不到可用授权照样会进入未授权状态甚至比之前更糟。4.3 CAL 数量怎么算别算少了数量计算有个基本原则不能少于可能同时连接的最大用户数或设备数。注意是同时不是总数。一个 200 人的公司如果错峰上班峰值同时在线可能只有 120那买 120 个每用户 CAL 就够。但有个坑CAL 发放后有一段时间不会立即释放每设备 CAL 尤其明显你不可能靠用户错峰来省授权一不小心就会撞上限。保险做法是按并发峰值的 1.1 到 1.2 倍买留点缓冲。另外2012 R2 的会话主机是向下兼容的2012 R2 的 CAL 可以用在 2012 R2 及更早版本的授权环境里反过来更早版本的 CAL 装不上 2012 R2 的授权服务器。采购的时候版本这条一定要跟供应商确认清楚。还有一个诊断工具值得记住lsdiag.msc。它能显示当前会话主机的授权状态、宽限期剩余、每个用户拿到的授权类型。排查明明配了授权还是提示没配这类问题时用它看一眼比翻事件日志快得多。5. 报错现场三个高频问题的排查过程5.1 无法加载远程桌面服务 ActiveX 控件rdclientax.dll 找不到这个报错几乎每个用 RD Web 访问的人都会撞上一次。完整提示是无法加载远程桌面服务 ActiveX 控件请确保 rdclientax.dll 在路径中。先说结论这个 dll 本身在服务器上的位置是C:\Windows\Web\RDWeb\Pages\rdclientax.dll一般不会真的丢问题九成出在浏览器加载环节。排查顺序我一般是这么走的第一先看 IE 增强的安全配置IE ESC。服务器系统默认把 IE ESC 打开管理员和普通用户都是。这个开关一开IE 会拦截大部分脚本和 ActiveX。关掉它的路径是服务器管理器 → 本地服务器 → IE 增强的安全配置 → 两个都设为关闭。这一步能解决大部分情况。第二把 RD Web 站点加入受信任站点。IE 的 Internet 选项 → 安全 → 受信任的站点 → 把 RD Web 的地址一般是https://服务器名/RDWeb加进去同时把该区域的安全级别调低到中低或者手动允许运行 ActiveX 控件和插件对未标记为可安全执行脚本的 ActiveX 控件初始化并执行脚本这两项。第三检查是不是 64 位 IE 的问题。2012 R2 上的 IE 默认是 64 位的而 rdclientax.dll 是 32 位的加载会失败。解决办法是从开始菜单里找 32 位版本的 IE 来打开 RD Web 页面路径一般是C:\Program Files (x86)\Internet Explorer\iexplore.exe。这一条特别容易被忽略排查半天才发现是位数不匹配。第四兼容性视图。把站点加入兼容性视图列表有时候也能解决控件加载不出来的问题。还有个替代思路RD Web 访问现在也不一定非要靠 ActiveX。如果客户端是 Windows 7 以上可以直接用系统自带的远程桌面客户端连绕开 Web 页面。或者让用户下载 RDWeb 里的 .rdp 文件双击直接连也不需要控件。5.2 连接代理相关的报错怎么查在 RD 连接代理服务器上……这类报错信息五花八门但根子基本集中在三个方向解析、端口、证书。解析问题最常见。连接代理要能通过主机名双向解析到每一台会话主机会话主机也要能解析到连接代理。检查方法是分别在两台机器上ping 主机名和nslookup 主机名看结果对不对反向记录有没有。端口问题次之。RDS 内部通信走 RPC端口范围默认在 49152 到 65535。跨网段的话这段很可能被防火墙拦了。要么放通整个动态端口范围要么把 RDS 服务绑到固定端口改注册表这里不展开坑比较多我一般建议直接放通范围省事。证书问题最隐蔽。会话主机和连接代理之间做身份验证时会校验证书如果哪台机器用了过期的或者不被信任的自签证书通信就会失败。表现是集合里某台会话主机一直显示不可用。解决办法是把所有机器的证书统一换成同一张由内部 CA 签发的证书或者统一导入同一张自签证书到受信任的根证书颁发机构。排查这类问题的利器是看事件日志位置在应用程序和服务日志 → Microsoft → Windows → TerminalServices-* 系列的日志以及 RemoteDesktopServices-RdpCoreTS 下的日志。里面会直接写明是哪一步握手失败了。5.3 其他几个容易卡住的点除了上面两个还有几个我踩过的坑值得单拎出来会话主机加不进集合先检查这台机器是否已经加域、是否在正确的 OU、以及 SPN 有没有问题。有时候机器账号的 SPN 被别的东西占用了连接代理认不出来用setspn -L 主机名看一眼。用户连上后每次都新会话多半是连接代理没生效或者组策略里禁止了会话重连。检查远程桌面会话主机 → 连接策略里的允许重新连接是否启用。登录后桌面只有一个黑屏闪一下通常是用户配置文件磁盘没挂载上或者磁盘满了。看一眼用户配置文件磁盘所在盘的剩余空间。Web 页面报没有可用的远程桌面服务器一般是集合里没有健康的会话主机或者 RD Web 访问配置里指向的集合名写错了。6. 装完之后证书、性能与日常维护的几个经验6.1 证书换成正式签发的别长期用自签快速部署会替你生成一张自签证书能用但每次连接客户端都会弹证书不受信任的警告用户会觉得系统有毛病。生产环境建议换成由内部 CA 签发的证书或者至少把自签证书手动导入到客户端和服务器的受信任根。证书类型这里有个容易搞混的地方RDS 里有单一登录和每连接两种证书部署方式。简单说单一登录就是一张证书覆盖所有连接配置统一、用户体验好前提是所有相关服务器都能通过同一个 FQDN 访问每连接则是每个功能各用各的证书适合主机名都不同的环境。中小环境我一般推单一登录省心。换证书的位置在服务器管理器的远程桌面服务 → 概述 → 部署属性里有个证书节点点进去可以给每项功能指定证书。改完记得重新应用配置让各个角色刷新。6.2 会话主机性能调优的几个开关装完能跑不代表跑得好。2012 R2 的会话主机默认配置是偏向兼容性的实际办公场景下有几处值得调第一用户配置文件磁盘UPD优先用别用漫游配置文件。漫游配置文件在多人同时登录时会疯狂读写中心存储导致登录卡顿。UPD 是块级虚拟磁盘性能好得多。第二关掉不必要的可视化特效。通过组策略或者会话主机的性能选项把窗口动画、透明效果、缩略图预览关掉多人一起用的时候 CPU 和显存压力小很多。第三规划会话数量上限。一台会话主机的合理并发数取决于 CPU 核数、内存和用户干什么。经验值是每个普通办公用户预留 1.5 到 2GB 内存、0.1 到 0.2 个物理核。32GB 内存、8 核的机器扛 20 到 25 个办公会话比较稳。超过这个数遇到有人开大 Excel 或者多标签浏览器整机就卡。第四给用户数据单独放一块盘。系统盘留给系统和程序用户文档、下载、桌面重定向到另一块盘。这样用户把盘写满也不会影响系统重装系统时数据也好保留。6.3 日常维护几件必须定期做的事RDS 环境不是装完就一劳永逸的有几件事要养成习惯盯授权用量定期打开授权管理器看 CAL 剩余量尤其是每设备模式设备数可能因为更换硬件而缓慢增长。等到快用完了再买审批流程走完可能就超了。盯磁盘空间用户配置文件磁盘、系统盘、日志盘三块都要盯。用户数据盘满了我见得太多了。定期清理僵尸会话有人下班不注销直接关浏览器会话挂在后台。设置合理的会话超时策略同时定期用qwinsta看看有多少断开的会话。备份连接代理的数据库如果是 WID备份方式跟 SQL 不太一样别想当然地只复制文件。官方文档里有专门的 WID 备份方法值得花十分钟了解一下。提示会话主机的更新重启别在上班时间做。重启会让所有会话中断用户没保存的东西全丢这是最容易招致投诉的操作。安排在下班后或者周末提前发通知。最后分享一个我自己的习惯部署这套东西的时候我会在测试环境完整走一遍把宽限期耗尽的状态也模拟一次看看系统在完全未授权时到底是什么表现这样真到生产环境出现11 天倒计时的时候心里有底、手上不慌。很多人翻车就翻在从来没在测试环境见过这些报错第一次遇到就手忙脚乱。文档里写的和实际看到的经常有出入自己摸一遍比看十遍教程都管用。