出于管理用途,Windows Server 默认只允许同时存在两个远程桌面会话。这对一名管理员加一位同事来说已经够用,但不适合整天在服务器上工作的团队。本文介绍如何添加用户并授予远程桌面访问权限、两个会话的限制是如何生效的、如何自动注销空闲和已断开的会话,以及如何通过远程桌面会话主机角色和 RDS 许可证合法地支持更多用户。
请为每个人创建单独的账户,不要共用 Administrator,这样才能知道每项操作是谁做的,也可以单独收回某个人的访问权限。以管理员身份打开 PowerShell:
# Create a local user (you will be asked for the password)
$pw = Read-Host -AsSecureString "Password for alice"
New-LocalUser -Name "alice" -Password $pw -FullName "Alice" -PasswordNeverExpires
# Allow Remote Desktop without full admin rights
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "alice"
# Only if this person really needs administrator rights
# Add-LocalGroupMember -Group "Administrators" -Member "alice"
Get-LocalGroupMember -Group "Remote Desktop Users"
Remote Desktop Users 组的成员可以远程登录;Administrators 组的成员始终可以登录。请使用强密码并配置账户锁定策略(参见 Windows VPS 安全加固)。
在未安装远程桌面会话主机角色的情况下,Windows Server 最多同时接受两个活动的远程桌面会话(另加一个控制台会话)。第三个人连接时,Windows 会询问要断开哪位现有用户。如果用户只是直接关闭远程桌面窗口,账户仍保持登录,会话状态变为已断开连接(Disconnected),它依然计入会话数量,并继续占用内存。
# See who is signed in and the session IDs
quser
query session
# Sign out a session (replace 3 with the ID from quser)
logoff 3
打开本地组策略编辑器(gpedit.msc),依次展开计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机(Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host)。
gpupdate /force
如需三个及以上用户同时登录,请安装远程桌面会话主机(Remote Desktop Session Host)角色和远程桌面授权(Remote Desktop Licensing)服务器,并向 Microsoft 或经销商购买 RDS 客户端访问许可证(RDS CAL):可以按用户购买(每个用户一个,Per User),也可以按设备购买(每台连接设备一个,Per Device)。
# Install the Session Host and Licensing roles, then restart
Install-WindowsFeature RDS-RD-Server, RDS-Licensing -IncludeManagementTools
Restart-Computer
重启后,Windows 会进入 120 天的授权宽限期,期间用户无需 CAL 即可连接。请在宽限期结束前完成以下操作:
licmgr.exe),右键单击服务器,选择激活服务器(Activate Server),然后选择安装许可证(Install Licenses),添加你的 RDS CAL。gpedit.msc 的远程桌面会话主机 → 授权(Remote Desktop Session Host → Licensing)下,启用使用指定的远程桌面许可证服务器(Use the specified Remote Desktop license servers)(填写本服务器的名称)和设置远程桌面授权模式(Set the Remote Desktop licensing mode)(按用户或按设备,与你购买的 CAL 类型一致)。gpupdate /force,然后用 RD 授权诊断程序(RD Licensing Diagnoser)(lsdiag.msc)检查配置结果。如果宽限期到期时仍未配置许可证服务器,用户连接时会提示没有可用的远程桌面授权服务器(英文提示为“no Remote Desktop license servers available”),此时只有管理员还能通过 mstsc /admin 连接。
每个活动的桌面会话都会占用内存和 CPU,用户运行浏览器或办公软件时占用更多。粗略估算:轻度使用的用户每人预留 1–2 GB 内存,使用浏览器并打开大量标签页的用户每人预留 2–4 GB,这还不包括服务器自身服务所需的资源。可以通过任务管理器的用户(Users)选项卡随时查看各用户的资源占用。
说明已有两个会话处于活动或已断开状态。可以用 logoff 注销其中一个(见步骤 2),或用 mstsc /admin 连接到管理控制台会话,并按步骤 3 设置时间限制,避免问题再次出现。
只有在禁用将远程桌面服务用户限制到单独的远程桌面服务会话(Restrict Remote Desktop Services users to a single session)后才可以,而且即使这样也不建议:设置、文件和日志都会混在一起。请为每个人单独创建账户。
这属于网络连通性问题,而不是会话数限制。请参见远程桌面连接故障排查。
如果按以上步骤操作后问题仍未解决,请提交工单联系 IMIDC 7×24 技术支持,并附上服务器 IP、Windows Server 版本、需要同时登录的用户数量以及具体的报错信息,方便工程师快速定位。