Hướng dẫn  Cách tăng số lượng người dùng và phiên làm việc từ xa trên Windows

secpol
Note: Đây là bài viết dành cho các IT Admin, không dành cho người dùng thông thường. Vì vậy bài hướng dẫn này sẽ mặc định là bạn đã biết cách bật Remote Desktop và cho phép các user đó có quyền Remote Desktop. Biết cách tắt bật service Remote Desktop.

Windows-Server-2016-Multi-RDP-0.jpg

Như chúng ta đã biết thì Remote Desktop Protocol (RDP) là một giao thức độc quyền được phát triển bởi Microsoft, nó cung cấp cho chúng ta giao diện đồ họa để kết nối với một máy tính khác qua kết nối mạng. Mặc định, trên Windows chỉ cho phép kết nối một phiên làm việc đến máy tính, khi một User khác Remote Desktop đến máy tính thì User đang dùng sẽ phải thoát ra màn hình đăng nhập đó là với Windows client. Còn với Windows Server thì chỉ có 3 user. Vậy để tăng số lượng người dùng đồng thời lên thì chúng ta sẽ phải mua license. Giá nó như nào thì bạn có thể lên Google tìm kiếm với cụm từ "client access license pricing".

Để tăng số lượng người dùng đồng thời lên thì trên internet hiện có rất nhiều bài hướng dẫn cả Tiếng Anh và Tiếng Việt. Bài viết này mình sẽ tổng hợp lại cách dễ làm và dễ thao tác nhất.

Trong bài hướng dẫn này mình sẽ dùng công cụ RDPWrap-v1.6.2. Link tải mình để nó ở phía cuối bài.

Chạy file RDPCheck.exe thì sẽ nhận được thông báo:

Windows-Server-2016-Multi-RDP-00.jpg

Các bước thực hiện:

Bước 1
: Tải file về, xả nén và chạy file install.bat với quyền admin. Chú ý nên tắt phần mềm Antivirus. hoặc Exclude folder ActiveMultiRDP.

Windows-Server-2016-Multi-RDP-01.png


Windows-Server-2016-Multi-RDP-02.png


Windows-Server-2016-Multi-RDP-03.png

Bước 2: Chạy file RDPConf.exe để kiểm tra sẽ xuất hiện dòng [not supported]. Dòng này báo cho chúng ta biết rằng phiên bản RDPWrap-v1.6.2 không hỗ trợ cho phiên bản Windows Server 2016 version 10.0.14393.4169.

Windows-Server-2016-Multi-RDP-04.png

Kiểm tra phiên bản của file termsrv.dll trong system32:

Windows-Server-2016-Multi-RDP-05.png

Bước 3: Stop service Remote Desktop, Change owner và permission file termsrv.dll
+ Stop service:
Mã:
net stop termservice


+ Change ownerpermission file termsrv.dll:
Mã:
takeown /F c:\Windows\System32\termsrv.dll /A
icacls c:\Windows\System32\termsrv.dll /grant Administrators:F

- Lệnh takeown /F c:\Windows\System32\termsrv.dll /A: Thay đổi quyền sở hữu file termsrv.dll sang nhóm Administrator.
- Lệnh icacls c:\Windows\System32\termsrv.dll /grant Administrators:F: Gán quyền cho nhóm Administrators trên file termsrv.dll
- Nếu bạn muốn gán cho 1 user cụ thể thì bạn thay Administrator bằng user đó và user đó nằm trong nhóm Administrators:
Mã:
icacls c:\Windows\System32\termsrv.dll /grant %username%:F

Windows-Server-2016-Multi-RDP-06.png

Vì bài viết này mình làm trên Windows Server nên mặc định sẽ đăng nhập vào tài khoản Administrator luôn. Vì vậy nếu bạn làm ở user thường thì phải chạy cmd với quyền admin.

Bước 4: Copy và Replace file
Copy file termsrv.dll trong foler \ActiveMultiRDP\termsrv\Server2016\10.0.14393.1737 vào trong C:\Windows\System32. Chú ý trong đường dẫn có chữ Server2016 có nghĩa là mình đang làm cho phiên bản Windows Server 2016. Nếu bạn làm cho phiên bản nào thì bạn vào folder của phiên bản đó.

Windows-Server-2016-Multi-RDP-07.png

Bước 5: Start service Remote Desktop và check
+ Start service Remote Desktop:
Mã:
net start termservice

+ Quay lại folder ActiveMultiRDP và chạy lại file RDPConf.exe

Windows-Server-2016-Multi-RDP-08.png

Dòng [fully supported] đã có màu xanh là ok.

Bước 6: Test
+ Tạo và cấp cho user có quyền Remote Desktop
Windows-Server-2016-Multi-RDP-10.png

+ Tăng số lượng connections:
Windows-Server-2016-Multi-RDP-09.png

+ Kết quả:
Windows-Server-2016-Multi-RDP-11.png

Kết quả từ phiên bản máy tính client chạy Windows 10 version 20H2 build 19042.746:

- Multi user:
test-rdp-multiusser-win10-20h2-19042.746.jpg


- Multi Session:
test-rdp-multiusser-win10-20h2-19042.746-multi_session.jpg


---

Kinh nghiệm:
  • Trong folder ActiveMultiRDP\termsrv\ là nơi mình đã tổng hợp các file termsrv.dll đã được fix của các phiên bản windows. Bạn dùng phiên bản nào thì chọn đúng file của phiên bản đó.
  • Version của file termsrv.dll sẽ bị thay đổi theo đúng version của windows khi windows update lên builds mới. Vì vậy để khôi phục lại bạn cần copy lại file termsrv.dll đè vào file termsrv.dll mới trong system32. Khi copy đè bạn cần change owner và permission như ở bước 3. Khi thao tác bạn cần stop service lại, xong thì lại bật lên. Sau đó chạy file RDPConf.exe để check.
  • Trong folder ActiveMultiRDP\termsrv thì chỉ duy nhất có phiên bản Windows 10 version 2004 và 20H2 (10.0.19041.746 và 10.0.19042.746) là có hỗ trợ multi user và multi session, còn lại tất cả các phiên bản còn lại thì chỉ hỗ trợ multi user logon. Multi user là nhiều user cùng đăng nhập và sử dụng máy cùng lúc; multi session nghĩa là 1 account có thể sử dụng để đăng nhập đồng thời ở nhiều phiên khác nhau..
  • Mình sẽ cố gắng update file termsrv.dll đã được fix lên phiên bản mới hơn mỗi khi có bản mới và chỉ hỗ trợ cho phiên bản Windows 10 version 2004 và 20H2 (10.0.19041.746 và 10.0.19042.746) trở về sau.
  • Mình đã sử dụng phương pháp bên trên ở công ty mình cho máy cấu hình: CPU i5 10th, RAM 16GB, Main B460, ổ cứng NVMe 512GB với 3 người sử dụng đồng các công cụ xử lý hình ảnh và video vô cùng hiệu quả.

Link tải công cụ:

Mã:
Pass: akioway.com


Bài viết hiện chỉ đăng duy nhất ở VN-Z bởi @secpol . Vui lòng ghi rõ nguồn khi copy đi nơi khác.


Tổng hợp các bài viết của mình tại VN-Zoom: https://vn-z.vn/tags/manhnd/
 
Sửa lần cuối:
Trả lời

Hoang Duch2

Quyền Trượng Hồng Ngọc
@Hoang Duch2
Lỗi như ở post #16 và #18 đều là do file terrmsrv.dll bị lỗi. Bác thử lấy file ở build .746 chép đè vào xem sao. Có thể khi check nó báo not supported nhưng vẫn remote được.

Cháu @secpol thân mến, trước khi đọc được cái cmt #20 bên trên của cháu thì bên bác không vào được 4rum do lỗi 1020, trong thời gian đó, bác đã uninstall soft đó đi, cài lại và chỉ chạy được khi chép từ file termsrv.dll 746, nếu bác dùng file mới hơn thì vẫn bị lỗi như bác nói ở các cmt trước:

Đây là hình từ cmd sau khi đã chép dll 746:


202189886c08-b6dd-4ccc-ab28-aa3ba5fa38d6.png


Check conf vẫn thế:

202171834d17-79cb-4408-a869-117fa6735a93.png


Nhưng vẫn mở được RDP:

2021f6ef7e3b-813c-4873-be61-7b1dbfb9c4ca.png



Giờ bác sẽ thực hành từ cmt#20 của cháu, bác sẽ báo tiếp kết quả cháu nhé....
 

tregiengchan

Búa Đá Đôi
@secpol
Bản RDPWrap-v1.6.2 của bạn có phải từ trang này không?
View hidden content is available for registered users!
Nếu đúng như vậy, bạn vui lòng ghi nguồn để mọi người yên tâm đây là phần mềm mã nguồn mở. Cấu hình Remote Desktop như thế này từ những nguồn ngoài là rất nguy hiểm.
Thanks!
 

secpol

Rìu Chiến Chấm
@secpol
Bản RDPWrap-v1.6.2 của bạn có phải từ trang này không?
*** Hidden text: cannot be quoted. ***

Nếu đúng như vậy, bạn vui lòng ghi nguồn để mọi người yên tâm đây là phần mềm mã nguồn mở. Cấu hình Remote Desktop như thế này từ những nguồn ngoài là rất nguy hiểm.
Thanks!
Đúng là mình lấy từ github. Nhưng lấy từ trang nào thì mình cũng chả nhớ nữa. Nếu lấy dúng file gốc đó thì xin thưa bạn rằng còn lâu bạn mới chạy được trên những OS mới bây giờ nhé. Nhất là những OS thì luôn luôn update. Một mình cái file RDPWrap nguyên gốc không cũng chả làm ăn được gì đâu. Việc bạn dùng hay không cũng không liên quan đến người khác. Mình là 1 IT admin trên 10 năm kinh nghiệm rồi nên mình biết thế nào là an toàn, thế nào là nguy hiểm với doanh nghiệp.
 

vuquanhuan

Rìu Sắt
Muốn tắt tính năng multi session thì có được không bác @secpol?
Em chỉ muốn dùng tính năng multi user logon thôi.
 

secpol

Rìu Chiến Chấm
Muốn tắt tính năng multi session thì có được không bác @secpol?
Em chỉ muốn dùng tính năng multi user logon thôi.
Người dùng thông thường họ không biết cái đó đâu bạn. Nếu chỉ cần multi user thôi thì sẽ phải cần 1 file termsrv khác. Ngoài ra nếu bạn làm theo hướng dẫn tại post #1 và #20 thì hàng tháng bạn vẫn có thể update bình thường mà không cần file termsrv.dll mới. Mình đã test vấn đề này.