
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://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个办法,下面是我总结的技巧:
1、备份C:\Windows\System32\termsrv.dll
copy c:\Windows\System32\termsrv.dll termsrv.dll_backup2、关闭UAC后重启机器,然后对C:\Windows\System32\termsrv.dll提权
关闭UAC:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f提权:
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命令行
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" /ADD6、重启机器验证多用户多会话(注意,对单个用户来说,还是不能多会话,但在系统层面,以前不论多少个用户,整个系统总共只能有一个会话,现在每个用户都可以有一个会话了)
改造前:先用Administrator远程上,然后用testuser1建立远程会话,就会提示是否要挤掉前者,然后前者的会话里就会收到提示是否同意被挤掉


需要注意的是,如果系统更新了,可能又得从新改造一遍C:\Windows\System32\termsrv.dll才可以
比如我安装了新出的2023年9月补丁,搜到的12个就变了(变的是后4个,你可以对比我前后2个图)

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


改造后:算上Administrator和我建的4个测试用户testuser1~testuser4,一共5个用户,每个用户1个会话,5个会话同时存在
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。