Computer >> Máy Tính >  >> Hệ thống >> Windows 11

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Người dùng từ xa có thể kết nối với máy tính Windows 10 và 11 của họ thông qua Dịch vụ Máy tính Từ xa (RDP). Chỉ cần bật RDP trong cài đặt thiết bị và kết nối với máy tính bằng bất kỳ máy khách Remote Desktop nào là đủ. Nhưng có một hạn chế về số lượng phiên RDP đồng thời - chỉ một người dùng từ xa có thể làm việc đồng thời. Nếu bạn cố gắng mở phiên RDP thứ hai, một cảnh báo sẽ xuất hiện yêu cầu bạn ngắt kết nối phiên của người dùng đầu tiên.

Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?

Tất cả các phiên bản Windows dành cho máy tính để bàn (bao gồm cả Win 10 và 11) có một số hạn chế đối với việc sử dụng Dịch vụ Máy tính Từ xa:

  1. Bạn chỉ có thể kết nối từ xa qua RDP với các phiên bản Windows cao hơn (Professional và Enterprise). Trong các phiên bản Windows Home và Single Language, các kết nối máy tính từ xa đến bị cấm;
  2. Chỉ một kết nối RDP đồng thời được hỗ trợ. Khi bạn cố gắng mở phiên RDP thứ hai, người dùng sẽ được nhắc đóng kết nối đang hoạt động;
  3. Nếu có người dùng làm việc trên bảng điều khiển của máy tính (cục bộ), thì khi bạn cố gắng tạo kết nối RDP từ xa mới, phiên bảng điều khiển sẽ bị ngắt kết nối. Một phiên RDP từ xa cũng sẽ bị ngắt kết nối cưỡng bức nếu người dùng cố gắng đăng nhập cục bộ.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Trên thực tế, số lượng kết nối RDP đồng thời trên Windows bị giới hạn bởi giấy phép (chứ không phải bởi bất kỳ khía cạnh kỹ thuật nào). Do đó, hạn chế này không cho phép tạo máy chủ RDP đầu cuối dựa trên máy trạm có thể được sử dụng bởi nhiều người dùng. Logic của Microsoft rất đơn giản:nếu bạn cần một máy chủ đầu cuối - hãy mua giấy phép Windows Server, RDS CAL, cài đặt và định cấu hình vai trò Máy chủ phiên máy tính từ xa (RDSH).

Về mặt kỹ thuật, bất kỳ phiên bản Windows nào có đủ dung lượng RAM đều có thể hỗ trợ hoạt động đồng thời của hàng chục người dùng từ xa. Trung bình, cần 150-200 MB RAM cho một phiên người dùng (không bao gồm các ứng dụng đang chạy). Đó là, về mặt lý thuyết, số lượng phiên RDP đồng thời tối đa chỉ bị giới hạn bởi tài nguyên máy tính.

Hãy xem xét hai cách về cách cho phép kết nối RDP đồng thời trên Windows 10 và 11:sử dụng RDP Wrapper công cụ hoặc vá termsrv.dll tập tin hệ thống.

Lưu ý . Các sửa đổi hệ thống được mô tả trong bài viết được coi là vi phạm Thỏa thuận cấp phép của Microsoft và bạn có thể tự chịu rủi ro khi thực hiện chúng.

RDP Wrapper:Bật nhiều phiên RDP trên Windows

Thư viện trình bao bọc RDP Dự án OpenSource cho phép bạn kích hoạt nhiều phiên RDP trên Windows 10 mà không cần thay thế tệp termsrv.dll. Công cụ này hoạt động như một lớp giữa SCM (Service Control Manager) và Dịch vụ Máy tính Từ xa. RDPWrap cho phép bạn không chỉ cho phép hỗ trợ nhiều kết nối RDP đồng thời mà còn để xây dựng máy chủ RDP trên các phiên bản Windows Home. RDP Wrapper không thực hiện bất kỳ thay đổi nào đối với tệp termsrv.dll, nó chỉ tải thư viện termsrv với các thông số đã thay đổi.

Do đó, RDPWrap sẽ hoạt động ngay cả trong trường hợp cập nhật tệp termsrv.dll. Nó cho phép bạn không sợ các bản cập nhật Windows.

Quan trọng . Trước khi cài đặt RDP Wrapper, điều quan trọng là bạn đang sử dụng phiên bản gốc (chưa được vá lỗi) của tệp termsrv.dll. Nếu không, RDP Wrapper có thể trở nên không ổn định hoặc hoàn toàn không khởi động.

Bạn có thể tải xuống RDP Wrapper từ kho lưu trữ GitHub https://github.com/binarymaster/rdpwrap/releases (phiên bản mới nhất hiện có của Thư viện RDP Wrapper là v1.6.2). Dự án chưa được cập nhật kể từ năm 2017, nhưng nó có thể được sử dụng trong tất cả các bản dựng mới của Windows 10 và thậm chí cả Windows 11.

RDPWrap-v1.6.2.zip kho lưu trữ chứa một số tệp:

  • RDPWinst.exe - cài đặt / gỡ cài đặt thư viện RDP Wrapper Library;
  • RDPConf.exe - một công cụ cấu hình RDP Wrapper;
  • RDPCheck.exe —An tiện ích kiểm tra RDP (Bộ kiểm tra RDP cục bộ);
  • install.bat, uninstall.bat, update.bat - hàng loạt tệp để cài đặt, gỡ cài đặt và cập nhật RDP Wrapper.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Để cài đặt RDPWrap, hãy chạy install.bat nộp hồ sơ với tư cách là quản trị viên. Chương trình sẽ được cài đặt vào C:\ Program Files \ RDP Wrapper danh mục.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Sau khi cài đặt xong, hãy chạy RDPConfig.exe . Rất có thể, ngay sau khi cài đặt, công cụ sẽ hiển thị rằng trình bao bọc RDP đang chạy (Đã cài đặt, Đang chạy, Đang nghe), nhưng không hoạt động. Lưu ý cảnh báo màu đỏ [không được hỗ trợ]. Nó báo cáo rằng phiên bản Windows 10 này (phiên bản 10.0.19041.1320) không được hỗ trợ bởi RDPWrapper.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Thực tế là đối với mỗi phiên bản Windows 10 phải có mô tả trong tệp cấu hình rdpwrap.ini. Tệp cấu hình của bạn chỉ đơn giản là không có bất kỳ cài đặt nào cho bản dựng Windows 10 của bạn.

Bạn có thể tải xuống phiên bản hiện tại của tệp rdpwrap.ini tại đây https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini

Sao chép thủ công nội dung của trang này vào tệp “C:\ Program Files \ RDP Wrapper \ rdpwrap.ini”. Hoặc tải xuống tệp bằng lệnh ghép ngắn PowerShell Invoke-WebRequest (trước tiên bạn phải dừng dịch vụ Máy tính Từ xa):

Stop-Service termservice -Force
Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Khởi động lại máy tính của bạn, chạy công cụ RDPConfig.exe. Kiểm tra để đảm bảo rằng tất cả các mục đều có màu xanh lục trong Chẩn đoán và chú thích [Được hỗ trợ đầy đủ] xuất hiện. Ảnh chụp màn hình bên dưới cho thấy rằng RDP Wrapper với cấu hình mới này cũng hoạt động tốt trên Windows 11.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Cố gắng thiết lập một số phiên RDP vào máy tính của bạn (sử dụng bất kỳ ứng dụng khách RDP nào:mstsc.exe, rdcman, v.v.). Nó hoạt động tốt (thậm chí bạn có thể sử dụng thông tin đăng nhập RDP đã lưu)! Giờ đây, Windows 10 của bạn cho phép hai (và nhiều hơn) người dùng từ xa sử dụng đồng thời các phiên RDP khác nhau.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Công cụ RDPWrap được hỗ trợ trong tất cả các phiên bản Windows, vì vậy bạn có thể xây dựng máy chủ đầu cuối (RDS) của riêng mình trên bất kỳ thiết bị Windows nào.

Ngoài ra, RDP Wrapper cho phép:

  • Bật Máy tính Từ xa;
  • Tùy chọn Ẩn người dùng trên màn hình đăng nhập cho phép bạn ẩn danh sách người dùng khỏi Màn hình đăng nhập của Windows;
  • Nếu bạn tắt Một phiên cho mỗi người dùng tùy chọn, nhiều phiên RDP đồng thời sẽ được phép trong cùng một tài khoản người dùng (tham số đăng ký fSingleSessionPerUser =0 được đặt trong khóa reg HKLM\SYSTEM\ CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser );
  • Cổng RDP - bạn có thể thay đổi số cổng Máy tính Từ xa từ TCP 3389 sang bất kỳ số nào khác;
  • Trong Chế độ làm bóng phiên , bạn có thể định cấu hình chế độ kết nối điều khiển từ xa (bóng tối) với các phiên RDP.
Bạn có thể đặt giới hạn về thời lượng của các phiên RDP bằng GPO.

RDP Wrapper không hoạt động trên Windows 10

Trong một số trường hợp, công cụ RDP Wrapper không hoạt động như mong đợi và bạn không thể truy cập máy chủ Windows của mình bằng nhiều phiên RDP.

Nếu tiện ích hiển thị [không được hỗ trợ] trong phần trạng thái, thì tệp rdpwrap.ini không chứa cấu hình cho bản dựng Windows của bạn. Cập nhật tệp rdpwrap.ini như được mô tả ở trên.

Nếu RDP Wrapper không hoạt động sau khi cập nhật tệp rdpwrap.ini, hãy thử mở tệp rdpwrap.ini và tìm kiếm phần mô tả cho phiên bản Windows của bạn. Làm cách nào để biết liệu có hỗ trợ cho phiên bản Windows của bạn trong tệp cấu hình rdpwrapper hay không?

Ảnh chụp màn hình bên dưới cho thấy rằng đối với phiên bản Windows 10 (10.0.19041.1320) của tôi, có hai phần mô tả:

[10.0.19041.1320]
…..

[10.0.19041.1320-SLInit]

…..

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Nếu không có phần nào trong tệp cấu hình cho phiên bản Windows của bạn, hãy thử sử dụng Google để tìm kiếm chuỗi rdpwrap.ini cho bản dựng Windows của bạn. Thêm các dòng bạn tìm thấy vào cuối tệp.

Ngoài ra, nếu bạn gặp sự cố với RDPWrapper, bạn có thể mở sự cố tại https://github.com/stascorp/rdpwrap/issues. Tại đây, bạn cũng có thể tìm thấy tệp rdpwrap.ini thực.

Nếu sau khi cài đặt các bản cập nhật bảo mật hoặc nâng cấp bản dựng Windows 10, RDP Wrapper không hoạt động chính xác, hãy kiểm tra xem "Trạng thái người nghe:Không nghe" có hiển thị trong phần Chẩn đoán hay không.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Thử cập nhật tệp rdpwrap.ini, sau đó cài đặt lại dịch vụ:

rdpwinst.exe -u
rdpwinst.exe -i

Điều xảy ra là khi bạn cố gắng thiết lập kết nối RDP thứ hai trong một tài khoản người dùng khác, bạn sẽ thấy cảnh báo:

The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Trong trường hợp này, bạn có thể sử dụng Local Group Policy Editor (gpedit.msc) để bật chính sách “ Giới hạn số lượng kết nối ”Trong phần Cấu hình Máy tính -> Mẫu Quản trị -> Thành phần Windows -> Dịch vụ Máy tính Từ xa -> Máy chủ Phiên Máy tính Từ xa -> Kết nối. Thay đổi giá trị của nó thành 999999.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Khởi động lại máy tính của bạn để cập nhật GPO và áp dụng các cài đặt.

Sửa đổi điều khoảnrv.dll để bật nhiều phiên RDP

Để loại bỏ hạn chế về số lượng kết nối người dùng RDP đồng thời trong Windows 10 mà không sử dụng rdpwrapper, bạn có thể thay thế termsrv.dll ban đầu tập tin. Đây là tệp thư viện chính được sử dụng bởi Dịch vụ Máy tính Từ xa. Tệp nằm trong C:\ Windows \ System32 thư mục.

Trước khi bạn chỉnh sửa hoặc thay thế tệp termsrv.dll, bạn nên tạo bản sao lưu của nó. Điều này sẽ giúp bạn hoàn nguyên về phiên bản gốc của tệp nếu cần. Mở dấu nhắc lệnh nâng cao và chạy lệnh:

copy c:\Windows\System32\termsrv.dll termsrv.dll_backup

Sau đó, bạn cần phải có quyền sở hữu tệp. Để thay đổi chủ sở hữu của tệp từ TrustedInstaller thành nhóm Quản trị viên cục bộ bằng cách sử dụng lệnh:

takeown /F c:\Windows\System32\termsrv.dll /A

SUCCESS: The file (or folder): c:\Windows\System32\termsrv.dll now owned by the administrators group

Bây giờ, cấp cho nhóm quản trị viên cục bộ quyền Kiểm soát hoàn toàn trên tệp termsrv.dll bằng cách sử dụng icacls.exe:

icacls c:\Windows\System32\termsrv.dll /grant Administrators:F

processed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Sau đó, dừng dịch vụ Máy tính Từ xa ( TermService ) bằng cách sử dụng services.msc bảng điều khiển hoặc từ dấu nhắc lệnh:

Net stop TermService

Dịch vụ Bộ chuyển hướng cổng UserMode của Dịch vụ Máy tính Từ xa dừng với nó.

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Trước khi tiếp tục, bạn cần tìm hiểu phiên bản (số bản dựng) Windows 10. Mở bảng điều khiển PowerShell và chạy lệnh:

Get-ComputerInfo | select WindowsProductName, WindowsVersion

Trong trường hợp của tôi, Windows 10 bản dựng 21H1 đã được cài đặt.

Sau đó, mở tệp termsrv.dll bằng bất kỳ trình chỉnh sửa HEX nào (ví dụ:Tiny Hexer). Tùy thuộc vào bản dựng Windows của mình, bạn cần tìm và thay thế chuỗi theo bảng dưới đây:

Bản dựng Windows Tìm chuỗi Thay thế bằng
Windows 11 RTM (

21H2 - 22000.258)

39 81 3C 06 00 00 0F 84 4F 68 01 00

B8 00 01 00 00 89 81 38 06 00 00 90

Windows 10 x64 21H2 39 81 3C 06 00 00 0F 84 DB 61 01 00
Windows 10 x64 21H1 39 81 3C 06 00 00 0F 84 2B 5F 01 00
Windows 10 x64 20H2 39 81 3C 06 00 00 0F 84 21 68 01 00
Windows 10 x64 2004 39 81 3C 06 00 00 0F 84 D9 51 01 00
Windows 10 x64 1909 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1903 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1809 39 81 3C 06 00 00 0F 84 3B 2B 01 00

Windows 10 x64 1803 8B 99 3C 06 00 00 8B B9 38 06 00 00

Windows 10 x64 1709 39 81 3C 06 00 00 0F 84 B1 7D 02 00

Trình chỉnh sửa Tiny Hexer không thể chỉnh sửa tệp termsvr.dll trực tiếp từ thư mục system32. Sao chép nó vào màn hình của bạn và sau khi sửa đổi, hãy thay thế tệp gốc.

Ví dụ:bản dựng Windows 10 x64 của tôi là 21H1 (19043.1320) với tệp termsrv.dll phiên bản 10.0.19041.1320. Mở tệp termsrv.dll trong Tiny Hexer, sau đó tìm văn bản:

39 81 3C 06 00 00 0F 84 2B 5F 01 00

và thay thế nó bằng:

B8 00 01 00 00 89 81 38 06 00 00 90

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Lưu tệp và chạy TermService.

Nếu có sự cố và bạn gặp phải một số sự cố với dịch vụ Máy tính Từ xa, hãy dừng dịch vụ và thay thế tệp termsrv.dll đã sửa đổi bằng phiên bản gốc:

copy termsrv.dll_backup c:\Windows\System32\termsrv.dll

Bản vá Điều khoảnrv.dll trên Windows bằng PowerShell

Để không sửa đổi tệp termsrv.dll theo cách thủ công bằng trình chỉnh sửa HEX, bạn có thể sử dụng tập lệnh PowerShell sau để áp dụng bản vá tự động. Tập lệnh này dựa trên phiên bản Windows PowerShell và không hoạt động trên PowerShell Core hiện đại. Tập lệnh là phổ biến và có thể được sử dụng để vá tệp termsrv.dll trên tất cả các phiên bản Windows 10 (1809+) và Windows 11.

# Stop RDP service, make a backup of the termsrv.dllfile and change the permissions
Stop-Service UmRdpService -Force
Stop-Service TermService -Force
$termsrv_dll_acl = Get-Acl c:\windows\system32\termsrv.dll
Copy-Item c:\windows\system32\termsrv.dll c:\windows\system32\termsrv.dll.copy
takeown /f c:\windows\system32\termsrv.dll
$new_termsrv_dll_owner = (Get-Acl c:\windows\system32\termsrv.dll).owner
cmd /c "icacls c:\windows\system32\termsrv.dll /Grant $($new_termsrv_dll_owner):F /C"
# search for a pattern in termsrv.dll file
$dll_as_bytes = Get-Content c:\windows\system32\termsrv.dll -Raw -Encoding byte
$dll_as_text = $dll_as_bytes.forEach('ToString', 'X2') -join ' '
$patternregex = ([regex]'39 81 3C 06 00 00(\s\S\S){6}')
$patch = 'B8 00 01 00 00 89 81 38 06 00 00 90'
$checkPattern=Select-String -Pattern $patternregex -InputObject $dll_as_text
If ($checkPattern -ne $null) {
$dll_as_text_replaced = $dll_as_text -replace $patternregex, $patch
}
Elseif (Select-String -Pattern $patch -InputObject $dll_as_text) {
Write-Output 'The termsrv.dll file is already patch, exitting'
Exit
}
else {
Write-Output "Pattern not found "
}
# patching termsrv.dll
[byte[]] $dll_as_bytes_replaced = -split $dll_as_text_replaced -replace '^', '0x'
Set-Content c:\windows\system32\termsrv.dll.patched -Encoding Byte -Value $dll_as_bytes_replaced
# comparing two files
fc.exe /b c:\windows\system32\termsrv.dll.patched c:\windows\system32\termsrv.dll
# replacing the original termsrv.dll file
Copy-Item c:\windows\system32\termsrv.dll.patched c:\windows\system32\termsrv.dll -Force
Set-Acl c:\windows\system32\termsrv.dll $termsrv_dll_acl
Start-Service UmRdpService
Start-Service TermService

Mã tập lệnh hoàn chỉnh có sẵn trong kho lưu trữ GitHub của tôi tại https://github.com/maxbakhub/winposh/blob/main/termsrv_rdp_patch.ps1

Để thực thi tập lệnh, hãy tải tập lệnh xuống máy tính của bạn. Thay đổi cài đặt chính sách thực thi PowerShell cho phiên hiện tại:

Set-ExecutionPolicy Bypass -Scope Process -Force

Và chạy tập lệnh:

C:\users\root\desktop\termsrv_rdp_patch.ps1

Làm thế nào để cho phép nhiều phiên RDP trong Windows 10 và 11?

Tập lệnh có thể được chạy sau khi cài đặt các bản cập nhật Windows để thực hiện ngay các thay đổi đối với tệp termsrv.dll (bạn không phải sửa đổi tệp termsrv.dll trong trình chỉnh sửa HEX sau mỗi lần cài đặt bản cập nhật).

Ưu điểm của phương pháp bật nhiều phiên RDP trong Windows 10 hoặc 11 bằng cách thay thế tệp termsrv.dll là các chương trình chống vi rút không phản hồi lại nó (không giống như RDPWrap, được nhiều chương trình chống vi rút phát hiện là Phần mềm độc hại / HackTool / Trojan).

Hạn chế chính là bạn sẽ phải chỉnh sửa thủ công tệp termsrv.dll mỗi khi nâng cấp bản dựng Windows 10 (hoặc khi cập nhật phiên bản của tệp termsrv.dll trong quá trình cài đặt các bản cập nhật tích lũy hàng tháng). Và nếu bạn đang sử dụng RDPWrapper, bạn cũng sẽ cần cập nhật tệp rdpwrap.ini sau khi cài đặt các bản cập nhật Windows.

Trong bài viết này, chúng tôi đã xem xét cách loại bỏ hạn chế về số lượng kết nối người dùng RDP đồng thời và chạy một máy chủ đầu cuối miễn phí trên các phiên bản Windows dành cho máy tính để bàn.