首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Server系统默认2个rdp会话,可以配多用户多会话,RDP CAL建议找微软购买

Server系统默认2个rdp会话,可以配多用户多会话,RDP CAL建议找微软购买

原创
作者头像
Windows技术交流
修改于 2023-09-15 12:25:59
修改于 2023-09-15 12:25:59
3K0
举报
文章被收录于专栏:Windows技术交流Windows技术交流

Windows Server默认最多2个会话且默认单用户单会话,比如有5个用户,最多只能有2个不同的用户建立的RDP会话同时存在,如果是同一个用户要开2个会话同时存在,得禁止单会话,在组策略配置,参考https://cloud.tencent.com/developer/article/1952521

如果需要多用户多会话,需要找微软购买购买RDP License并进行相应配置,参考官网文档https://cloud.tencent.com/document/product/213/36267

购买RDP CALs联系客户当地微软,联系方式在微软官网查

https://support.microsoft.com/en-us/topic/global-customer-service-phone-numbers-c0389ade-5640-e588-8b0e-28de8afeb3f2

点开向下箭头可查看各个国家/地区的微软联系方式

当然你也可以不买,通过一些网友分享的一些办法来免费使用,比如:

https://cloud.tencent.com/developer/article/2299703

https://cloud.tencent.com/developer/article/1598570

这些办法都是符合Windows操作系统原理的。

另外,再扩展下PC系统的远程会话默认情况,PC系统一直是默认多用户单会话,即不论你有几个用户,任何时候只能有一个远程会话存在,比如有AdminUserA和AdminUserB两个用户,A远程了,B就远程不了,B远程了,A就远程不了,这就是多用户单会话。但Windows网友是10亿级别的,总有一些是有微软经验的,他们对Windows操作系统原理比较熟悉,自然而然知道如何优雅地突破系统固有限制。比如下面这个办法,就能搞定PC系统多用户、多会话。

2 Ways To Allow Multiple RDP Sessions In Windows 11/10

这篇文档里说的第一个RDPWrap的办法就别试了,RDPWrap这个软件好多年没更新了,并不适用最新版Win10、Win11了。

用其中第2个办法,下面是我总结的技巧:

Enable Multiple RDP User Connections by Modifying Termsrv.dll

1、备份C:\Windows\System32\termsrv.dll

代码语言:javascript
复制
copy c:\Windows\System32\termsrv.dll termsrv.dll_backup

2、关闭UAC后重启机器,然后对C:\Windows\System32\termsrv.dll提权

关闭UAC:

代码语言:javascript
复制
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f

提权:

代码语言:javascript
复制
takeown /F C:\Windows\System32\termsrv.dll /A
icacls C:\Windows\System32\termsrv.dll /grant Administrators:F

3、停止远程服务,在vnc里登录操作后面的步骤

停止远程参考https://cloud.tencent.com/developer/article/1933166

4、使用hex编辑工具比如Hex Editor Neo、WinHex等编辑C:\Windows\System32\termsrv.dll

技巧如下:

用Hex Editor Neo打开C:\Windows\System32\termsrv.dll搜 39 81 3C 06 00 00 0F 84(搜的时候去掉空格,即搜39813C0600000F84)这8个,只会找到一处,别无选择,就是它了,后延4个,把这12个替换为B8 00 01 00 00 89 81 38 06 00 00 90(B80001000089813806000090)

或者用winhex

替换后保存文件

5、创建多个用户

cmd命令行

代码语言:javascript
复制
NET USER "testuser1" "Passwd@tt001" /ADD /Y
NET LOCALGROUP "Remote Desktop Users" "testuser1" /ADD
wmic.exe UserAccount Where Name="testuser1" Set PasswordExpires="false"

NET USER "testuser2" "Passwd@tt002" /ADD /Y
NET LOCALGROUP "Remote Desktop Users" "testuser2" /ADD
wmic.exe UserAccount Where Name="testuser2" Set PasswordExpires="false"

NET USER "testuser3" "Passwd@tt003" /ADD /Y
NET LOCALGROUP "Remote Desktop Users" "testuser3" /ADD
wmic.exe UserAccount Where Name="testuser3" Set PasswordExpires="false"

NET USER "testuser4" "Passwd@tt004" /ADD /Y
NET LOCALGROUP "Remote Desktop Users" "testuser4" /ADD
wmic.exe UserAccount Where Name="testuser4" Set PasswordExpires="false"

NET LOCALGROUP "Administrators" "testuser1" /ADD

NET LOCALGROUP "Administrators" "testuser2" /ADD

NET LOCALGROUP "Administrators" "testuser3" /ADD

NET LOCALGROUP "Administrators" "testuser4" /ADD

6、重启机器验证多用户多会话(注意,对单个用户来说,还是不能多会话,但在系统层面,以前不论多少个用户,整个系统总共只能有一个会话,现在每个用户都可以有一个会话了)

改造前:先用Administrator远程上,然后用testuser1建立远程会话,就会提示是否要挤掉前者,然后前者的会话里就会收到提示是否同意被挤掉

需要注意的是,如果系统更新了,可能又得从新改造一遍C:\Windows\System32\termsrv.dll才可以

比如我安装了新出的2023年9月补丁,搜到的12个就变了(变的是后4个,你可以对比我前后2个图)

如上图,搜到了39813C0600000F845F750100,替换成B80001000089813806000090

改造后:算上Administrator和我建的4个测试用户testuser1~testuser4,一共5个用户,每个用户1个会话,5个会话同时存在

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • Enable Multiple RDP User Connections by Modifying Termsrv.dll
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档