ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Server 2019 多用户远程桌面:RDS 授权与组策略配置指南

Server 2019 多用户远程桌面:RDS 授权与组策略配置指南 1. 先弄清这台 Server 2019 到底卡在哪刚把 Windows Server 2019 装好、远程桌面也能连上兴冲冲发给同事账号让对方一起登结果两个人一连其中一台就被顶下来或者直接弹一句连接数已达上限。这不是配置写错了而是 Server 系统本身的默认设计在起作用。Windows Server 2019 的远程桌面默认运行在管理会话模式下只给两个会话槽位一个留给本地控制台管理员另一个留给远程连进来的第二个人。第三个人再连系统就会把先到的某个会话挤掉而不是拒绝新连接——所以现象往往是我明明在操作突然断线了而不是明确的报错。这个机制在服务器运维里叫双管理会话限制它的初衷是方便管理员做应急维护不是拿来当多人办公桌面用的。标题里说的开启多用户远程本质就是把这个两会话的天花板撑开到能容纳更多并发用户。这件事其实有三条路正规的远程桌面服务授权路线、社区流传的第三方会话扩展组件、以及干脆换一种架构用别的方式替代远程桌面。三条路的成本、合规性和稳定性差别很大选错方向后期返工非常痛苦所以我先把它们摊开讲清楚再进入具体的动手环节。这篇笔记适合刚接触服务器、准备把这台机器当多人共用跳板机或者小型办公终端来用的人。我会把安装完成之后的每一步都写下来包括命令、参数、注意点和我自己踩过的坑你可以直接照着抄也可以按自己的环境做取舍。全程假设你已经完成了系统安装并能用管理员账号登录我们从装完之后这个节点接着往下走。2. 动手之前先把三条路线选明白2.1 正规路线远程桌面服务加授权这是唯一在商业环境里站得住脚的方案。核心动作是给服务器添加**远程桌面服务Remote Desktop Services简称 RDS**角色然后搭建 RD 授权服务器购买并导入对应数量的RDS 客户端访问许可RDS CAL。它的原理也不复杂Windows Server 本身完全具备多会话能力只是默认没有开启。一旦装了 RDS 角色并把授权模式配好系统就知道我是被允许开多个会话的于是放开限制。每个登录的普通用户需要一份 CAL按用户或按设备两种模式买按用户更适合人固定、设备不固定的场景按设备更适合设备固定、人轮换的场景比如车间里的公用终端。RDS 装好之后有120 天宽限期这期间不配授权服务器也能跑多用户但到期后如果不导入 CAL服务会直接拒绝连接而且这时候再想补授权用户体验会非常割裂。所以我的建议是只要确定要长期多人用就在宽限期内把授权服务器一起搭好别拖到最后一天。2.2 社区路线第三方会话扩展组件另一条路是社区里流传很久的第三方组件思路是替换系统里的会话管理逻辑让 Server 直接以多会话模式运行跳过 RDS 授权这一环。它的优点是部署快、不花钱、对系统改动小缺点也很明确——授权上不合规系统更新后可能失效杀毒软件可能误报而且不同版本号对应的组件版本不一致打错了轻则无效重则远程桌面彻底连不上。这条路我只建议用在内网实验机、个人学习环境、临时验证场景。真要在公司里给同事开多用户远程办公老老实实走 RDS。这不是技术洁癖是我见过太多图省事装了第三方组件某次系统自动更新之后全体同事连不上半夜被叫起来救火的真实案例。2.3 替代路线换个思路绕开远程桌面第三条路是不跟远程桌面较劲改用其他共享桌面的方式。常见做法有几种一是用虚拟机或者云主机给每个人开一台独立实例各自远程各自的机器互不干扰二是用支持多会话的第三方远程工具把同一台物理机的桌面共享给多个操作者三是把重活放到应用层比如用 Web 化的文件管理、Web 化的开发环境用户只需要浏览器就够了根本不占远程桌面会话。这几种方案各有适用面。独立实例的好处是隔离彻底一个人把系统搞崩不影响别人代价是硬件开销成倍增长Web 化方案适合轻量办公但不适合需要跑重型桌面软件的岗位。选哪条取决于你要让用户在这台服务器上干什么而不是简单追求能连上就行。2.4 三条路线的对比与取舍方案合规性部署难度成本稳定性适用场景RDS 加正规授权合规中等需要购买 CAL高企业办公、长期使用第三方会话扩展组件不合规低免费中更新易失效内网实验、个人学习多实例或 Web 化替代合规视方案而定中到高高隔离要求高、轻量办公我自己的做法是生产环境一律 RDS测试机可以用第三方组件快速验证流程但绝不上线。这个边界划清楚之后后面所有操作才有意义。3. 装完系统后先把地基打牢3.1 计算机名、时区和时间同步很多人装完系统直接开远程忽略了三件小事结果后面吃了大亏。第一件是计算机名默认一长串随机字符改成便于识别的名字比如SRV-OFFICE-01以后远程连接、看日志、排查问题时能省很多口舌。改完需要重启生效所以最好在装完系统的第一时间就改掉。第二件是时区。服务器时间不对会直接导致两类问题日志时间戳错乱排查故障时根本对不上域环境或者证书认证相关操作因为时间偏差过大而失败。装完先把时区设成所用地区再顺手配一下时间同步。第三件是时间同步源。Windows 自带的时间服务默认指向外部时间源但服务器通常在内网走不通外网就一直在漂移。可以手动指定内网 NTP 服务器或者指定能访问到的公共时间源。命令行操作如下w32tm /config /manualpeerlist:ntp.aliyun.com,time.windows.com /syncfromflags:manual /reliable:yes /update net stop w32time net start w32time w32tm /resync w32tm /query /status最后一条命令会输出当前时间源和同步状态看到Source是你配置的地址、Last Successful Sync Time是刚刚就说明生效了。如果显示同步失败先确认 UDP 123 端口没被防火墙拦掉这一步我遇到过两次都是出站规则没放行。提示域环境里时间同步要跟着域控制器走不要手工把域成员服务器指向外部时间源否则可能引发认证异常。改之前先确认这台机器是不是域成员。3.2 网络位置、防火墙与远程桌面端口远程桌面能不能连上九成问题出在网络和防火墙这两个地方。先确认服务器的网络位置是专用网络而不是公用网络因为 Windows 防火墙对不同网络位置应用不同的规则集公用网络下远程桌面规则默认更严格。然后是远程桌面端口。默认 3389暴露在公网上会被大量扫描我的处理习惯是改成一个高位端口比如 40000 以上。改法有两步注册表里改端口号防火墙里同步放行新端口reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp /v PortNumber /t REG_DWORD /d 43389 /f netsh advfirewall firewall add rule nameRDP-Custom dirin actionallow protocolTCP localport43389改完必须重启远程桌面服务或者直接重启系统才生效。这里有个坑如果你是通过远程桌面在做这些操作改完端口的那一刻你的当前连接不会立刻断但重启服务之后就需要用新端口重连了。改端口之前一定先确认新端口的防火墙规则已经加好否则重连不上就只剩控制台一条路。还有一点如果服务器在云上除了系统防火墙云平台的安全组也要放行新端口。我见过有人系统防火墙配了半天没效果最后发现安全组只开了 3389。两个地方都要检查。3.3 给自己留一条后路快照与备份在开始改任何跟远程桌面相关的配置之前先做一份快照或者系统备份。这不是谨慎是保命。远程桌面相关配置改错最常见的后果就是谁都连不上包括你自己。如果这时候云控制台还能用那还好办如果是物理机就得跑到机房插显示器代价很大。云服务器直接在控制台建一份快照几十秒的事。物理机可以用系统自带的备份功能或者干脆在虚拟机层面做一份快照。做完再动手心里踏实得多。4. 用户和权限别拿 Administrator 裸奔4.1 先建用户再谈多用户多人远程的前提是有多个人所以第一件事是建账号。控制面板或者命令行都行命令行我更推荐批量创建效率高net user zhangsan Pssw0rd123 /add net user lisi Pssw0rd456 /add net localgroup Remote Desktop Users zhangsan /add net localgroup Remote Desktop Users lisi /add这几条命令做的是建两个本地账号然后把他们加进Remote Desktop Users组。只有属于这个组或者 Administrators 组的账号才有资格发起远程桌面连接普通 Users 组账号默认是连不上的这是很多人账号密码都对但就是连不上的根源。注意不要直接给每个用户 Administrators 权限。给管理员权限意味着对方能改系统、装软件、看所有文件一旦账号泄露或者误操作后果不可控。日常使用一律普通用户需要提权时再单独授权。4.2 密码策略和账号安全的基本操作本地账号的密码策略默认可能比较宽松多人共用的机器建议手动收紧一点。可以强制密码复杂度、设置最短长度、限制登录失败次数。这些通过本地安全策略配置路径是本地安全策略 → 账户策略 → 密码策略。还有一个习惯值得养成给每个用户单独建账号绝不共用。共用账号的问题是出了事查不到人日志里全是一个用户名审计等于没有。看起来省事实际是给自己埋雷。如果这台服务器规模会扩大比如要管理几十个账号那就该考虑装AD 域服务了。域环境下账号统一管理、权限集中下发、登录审计清晰是规模上去之后的必然选择。单机多用户用本地账号就够了但一旦超过十来个人域控的价值就体现出来了。5. 正式开启多用户同时远程5.1 先调组策略把会话限制的开关找出来在装 RDS 之前有几个组策略项值得先看一眼它们直接决定多会话行为。打开gpedit.msc路径是计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 连接。这里有几个关键项限制连接的数量默认未启用启用后可以指定最大并发会话数。装完 RDS 之后这个值要和你的授权数量匹配。将远程桌面服务用户限制到单独的远程桌面服务会话启用后同一个用户只能有一个会话禁用则允许同一账号多会话。多人共用账号的场景才会关心这个正常一人一号的话保持默认即可。允许用户通过使用远程桌面服务进行远程连接这个必须是启用状态。为远程桌面连接设置时限可以设置空闲会话自动断开避免会话被长期占用。这些策略改完之后执行gpupdate /force立即生效。我在测试环境里反复验证过只改限制连接的数量并不足以在 Server 上开出多会话它只是给 RDS 授权模式下的会话数设了一个上限真正放开多会话的还是 RDS 角色本身。5.2 装 RDS 角色并处理授权这一步是正规路线的核心。打开服务器管理器添加角色和功能勾选远程桌面服务然后在角色服务里至少勾选远程桌面会话主机。如果这台机器还要兼做授权服务器再把远程桌面授权一起勾上。安装过程会重启重启后远程桌面就进入多会话模式了。装完之后在服务器管理器里能看到远程桌面服务这一项。此时系统处于 120 天宽限期能正常多用户登录。要确认状态可以在授权诊断里看# 查看当前授权模式和剩余宽限天数 wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS ! ) CALL GetGracePeriodDays如果返回的天数在减少说明宽限期在倒计时。要在宽限期内完成授权配置先在一台机器上安装远程桌面授权角色并激活授权服务器导入购买的 CAL然后在会话主机上用组策略指定授权服务器地址。路径是计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 授权把使用指定的远程桌面许可证服务器启用并填上授权服务器的名称或 IP。授权模式的选择也要注意按用户模式适合人员固定、设备经常变的场景按设备模式适合设备固定、人员轮换的场景。选错了会导致 CAL 数量对不上实际可登录人数和买的数量不一致。5.3 第三方组件路线的部署流程仅限测试环境如果你只是想在内网实验机上一周内跑通流程可以用社区组件快速验证。大致流程是先确认系统版本号和内部版本号winver命令可以看到下载对应版本的组件包以管理员身份运行安装脚本安装完成后重启再用检测脚本确认状态。检测脚本会输出每一行的状态如果关键项显示不支持说明组件版本和你的系统版本没对上。这条路我必须再强调一次只用于内网实验和个人学习不要用于商业生产。原因前面说过系统更新后组件可能失效而且一旦某次更新把会话管理逻辑改了你可能连正常的管理会话都进不去只能靠控制台救。我自己的习惯是测试机上跑一遍流程、把原理搞明白然后就换回正规路线。5.4 怎么验证多用户真的能同时在线配置完一定要实测不能只看设置项。验证方法很简单用两个不同的账号从两台不同的设备或者两个不同的远程桌面客户端实例分别连接。连上之后在服务器上执行query user这条命令会列出当前所有登录会话包括会话名、用户名、会话 ID、状态和登录时间。如果你看到两个不同的用户名同时处于Active状态说明多用户已经生效。如果第二个连接进来时第一个被顶掉或者提示超出连接数那就是还没配置到位回到组策略和 RDS 角色那里再检查。顺便说一个细节query user看到的会话状态有Active正在使用和Disc已断开但会话还在两种。断开的会话仍然占用授权和资源长时间不下线会拖慢服务器所以最好配合组策略设置空闲会话超时让断开的会话自动清理。6. 踩过的坑和排查速查表6.1 连接数超限、被顶下线这是最典型的症状。表现有两种一是明确提示已达到最大连接数二是当前会话突然断开、被新连接挤掉。前者通常是组策略里的连接数上限设小了或者 RDS 授权没配好导致系统回退到默认两会话后者多半是第三方组件没装成功系统还在管理会话模式下运行。排查顺序先用query user看当前有几个会话再检查 RDS 角色是否安装成功然后看宽限期是否已过而授权未配。三个方向逐一排除基本都能定位。6.2 登录卡在欢迎界面不动这个现象通常不是远程桌面本身的问题而是用户配置文件加载失败或者组策略处理超时。常见诱因包括用户配置文件目录权限异常、磁盘空间不足、登录脚本卡在网络路径上。可以先用管理员账号登录看事件查看器里的应用程序日志重点找 User Profile Service 相关的错误。另一个容易被忽略的原因是时间偏差过大导致 Kerberos 认证失败。域环境下时间差超过默认容差认证会直接失败但表现出来可能只是卡住而不是明确报错。所以前面强调的时间同步在这里就派上用场了。6.3 凭据验证失败但密码明明是对的先确认账号有没有在 Remote Desktop Users 组里这是最常见的原因。其次确认账号有没有被锁定或者密码过期。再然后看是不是大小写或者输入法问题这个听起来很傻但实际遇到不少次。如果是域账号还要检查账号的允许登录到限制有些管理员会在 AD 里限制账号只能登录特定机器被限制的机器上远程连接就会失败。6.4 端口和防火墙的隐形坑改了远程桌面端口之后连不上先确认三件事注册表里的端口号改对了、防火墙规则放行了新端口、云平台安全组也放行了。这三者缺一不可我踩过两次都是安全组漏配。另外如果服务器上有第三方安全软件或者主机防护它们也会拦远程桌面连接而且拦截日志不一定写在系统事件里需要单独去它的控制台看。排查时可以把这类软件临时停掉验证一下。6.5 常见问题速查表症状最可能原因排查动作提示超出最大连接数组策略上限太小或 RDS 未生效检查连接数策略、RDS 角色状态会话被新连接顶掉仍在管理会话模式确认 RDS 角色是否安装、系统是否重启卡在欢迎界面配置文件或组策略问题查应用程序日志的 User Profile Service 错误密码正确但认证失败账号不在 Remote Desktop Users 组net localgroup Remote Desktop Users查看改端口后连不上防火墙或安全组未放行检查系统防火墙规则和云安全组授权到期无法登录宽限期结束且未导入 CAL配置授权服务器并导入授权7. 长期运维的几个习惯7.1 日志、审计和账号生命周期多用户环境里账号管理是长期工作。建议养成几个习惯每季度清一次离职或者转岗人员的账号定期检查 Remote Desktop Users 组的成员发现多余的直接移除开启登录审计记录成功和失败的登录事件出问题时能追溯。登录审计通过本地安全策略或者组策略开启路径是计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 审核策略把审核登录事件打开。开启之后安全日志里会记录每次远程连接的来源 IP、账号和时间排查异常登录时非常有用。7.2 性能规划和硬件参考多人远程对服务器的压力主要体现在 CPU、内存和磁盘 IO 上。经验值是每个活跃的远程桌面用户轻量办公场景大约需要 1 到 2 GB 内存重度使用浏览器多标签、办公套件、开发工具大约 2 到 4 GB。CPU 方面四到八个核心支撑十来个轻量用户问题不大但如果有编译、渲染这类重负载核心数要往上加。磁盘是整个系统里最容易被忽略的瓶颈。多人同时读写机械盘会明显拖慢体验能上 SSD 就上 SSD。如果服务器还要跑数据库或者文件共享建议把系统盘和数据盘分开避免互相抢占 IO。7.3 可扩展的方向单机多用户跑顺之后往下可以往几个方向扩展。一是域环境把账号集中管理权限统一下发二是集群和故障转移让多台服务器承担远程桌面角色一台挂了另一台顶上三是虚拟化把每类工作负载拆到独立虚机上隔离性和弹性都更好。这些方向的实施复杂度比单机配置高不少但底层逻辑是一脉相承的先把单机的会话、授权、网络理清楚再往上层堆架构否则底层问题会在集群环境里被放大很多倍。我用这套流程在几台服务器上跑过多用户远程从最初的两个人一连就掉线到后来十几个人同时在线稳定运行中间最大的教训不是技术本身而是先备份再动手和不要在没配好授权的情况下长期使用。前者救过我两次后者让我在授权到期那天避免了全员掉线的尴尬。如果你正准备做这件事把这两条记住剩下的照着步骤走就行。
返回列表