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

GloryVNz

Rìu Sắt
Rất hay. Cảm ơn bác.
Mong bác chia sẻ thêm các cách khác để anh em có nhiều lựa chọn nhé.
 

Hoang Duch2

Quyền Trượng Hồng Ngọc
Chào cháu, bác đã thực hành theo nhưng tới bước 4 thì không copy đè lên được cháu à:

Hình bên bác:

202116b947c1-8384-4a68-92a2-9a8b6c8f8b40.png


2021721e982d-6b90-459d-aed7-84864ed8c035.png


202128eb676e-c321-47e1-b6cb-eb4c39a8d2b6.png


202185c8fb44-aaf8-401c-b6b2-ad818bc8a9ea.png


2021b975abdf-49c7-41ec-bbb0-81d4f012977c.png


20213fe6c14c-c577-4336-a785-2600322dea1e.png


Bản Win hiện tại là build 19042.789 trong khi file termsrv.dll cho build 19042.746, có phải lỗi ở đây không hay là mình phải login vào Admin để làm thao tác này? Bác có xem thêm phần Kinh nghiệm của cháu, vậy là phiên bản mới nhất này chưa có rồi, chờ cháu bổ sung thêm thôi.
 
Sửa lần cuối:

secpol

Rìu Chiến Chấm
@Hoang Duch2
+ Bác đã đăng nhập được vào tài khoản Administrator chưa?

+ Để máy khác Remote Desktop đến máy này thì bác phải nhập địa chỉ IP của máy này hoặc là tên máy nếu bác cùng dải network.

+ Để change quyền cho user đang logon cũng có quyền trên file termsrv.dll thì bác có thể dùng lệnh:
Mã:
icacls c:\Windows\System32\termsrv.dll /grant %username%:F

Bác thay %username% bằng tên tài khoản bác đang đăng nhập và user đó phải nằm trong nhóm nhóm administrators. Tên user không có khoảng trắng.

group-admin-1.jpg


+ Trong bài hướng dẫn thì cháu làm trên Windows Server nên mặc định nó đăng nhập với tài khoản Administrator. Nếu bác làm ở phiên bản client thì bác phải chạy cmd với quyền admin để thao tác lệnh trên.

+ Bác cho cháu xin file termsrv.dll gốc ở build 789 với?
 
Sửa lần cuối:

Hoang Duch2

Quyền Trượng Hồng Ngọc
@Hoang Duch2
+ Bác đã đăng nhập được vào tài khoản Administrator chưa?

+ Để máy khác Remote Desktop đến máy này thì bác phải nhập địa chỉ IP của máy này hoặc là tên máy nếu bác cùng dải network.

+ Để change quyền cho user đang logon cũng có quyền trên file termsrv.dll thì bác có thể dùng lệnh:
Mã:
icacls c:\Windows\System32\termsrv.dll /grant %username%:F

Bác thay %username% bằng tên tài khoản bác đang đăng nhập và user đó phải nằm trong nhóm nhóm administrators. Tên user không có khoảng trắng.

group-admin-1.jpg


+ Trong bài hướng dẫn thì cháu làm trên Windows Server nên mặc định nó đăng nhập với tài khoản Administrator. Nếu bác làm ở phiên bản client thì bác phải chạy cmd với quyền admin để thao tác lệnh trên.

+ Bác cho cháu xin file termsrv.dll gốc ở build 789 với?

Ở Cmt #9, bác đã nói là login vào lại Windows với tài khoản Administrator và bác gửi mấy cái hình từ cmd giống như hình minh hoạ của cháu đó.

Tức là : C:\user\Administrator\ chứ không phải C:\Windows\System32\

Còn về file termsrv.dll thì bác sẽ gửi cho cháu nhe, cháu đợi chút nha.
 

Hoang Duch2

Quyền Trượng Hồng Ngọc
Cháu gửi lại bác file đã fix lại:

Bác đã vào lại Admin acc, làm lại các bước và cuối cùng nó báo như thế này đây cháu:

20215c26b0bc-a34f-44d9-9119-2737a23cf7de.png


2021e84cce92-1944-4750-891a-924f0e922130.png


Bác đã restart máy lại xem nó có thay đổi gì không nhưng kết quả vẫn như vậy cháu à. Giờ bên bác cũng khuya rồi, bác hẹn gặp lại cháu vào ngày mai nhé. Cảm ơn cháu rất nhiều.
 

secpol

Rìu Chiến Chấm
@Hoang Duch2
Cháu vừa có sự thay đổi một chút trong cấu trúc folder ActiveMultiRDP. Bác tải lại nó ở post #1.

Để khắc phục triệt để lỗi ở post #16 và #18 bác làm như sau:

1. Bác restore lại file termsrv.dll gốc ở build 789, và start service Remote Desktop lên. Nếu bác không quen dùng lệnh thì bác làm thao tác như sau:

Bác bấm phím Windows +R -> Nhập services.msc -> Xuất hiện cửa số quản lý Service của Windows -> Bác tìm dòng Remote Desktop Services thì sẽ biết được trạng thái của service này như nào. Để Start/Stop , Enable/Disable thì bác click chuột phải lên và thao tác.

2. Bác vào folder \ActiveMultiRDP\rdpwrap ini version 06022021\, bên trong có 2 folder có chữa file rdpwrap ini của các version 10.0.19041.78910.0.21301.1000 . Folder 10.0.19041.789 là sử dụng cho các build từ 789 trở về trước và chỉ bao gồm các build pre releaserelease. Folder 10.0.21301.1000 là dùng cho các build devbeta. Bác copy file rdpwrap ini rồi copy vào folder C:\Program Files\RDP Wrapper (ghi đè).

3. Bác quay lại folder \ActiveMultiRDP chạy file update.bat với quyền admin.
Windows-Server-2016-Multi-RDP-12.jpg

4. Chạy lại fiile RDPConf.exe thì sẽ xuất hiện [fully supported]
Windows-Server-2016-Multi-RDP-13.jpg

Chúc bác thành công!