Đôi khi người dùng không thể kết nối với máy chủ trang trại RDS chạy Windows Server bằng ứng dụng khách RDP tích hợp sẵn (mstsc.exe) với lỗi sau:
Không thể hoàn thành tác vụ bạn đang cố gắng thực hiện vì Remote desktop services currently busy. Vui lòng thử lại trong vài phút. Những người dùng khác vẫn có thể đăng nhập.
Trong trường hợp này, quản trị viên máy chủ lưu trữ RDS có thể thấy nhiều phiên người dùng bị kẹt với tên (4) thay vì tên người dùng và trạng thái Đã ngắt kết nối trong tab Người dùng của Trình quản lý tác vụ.
Sự cố xảy ra trong tất cả các phiên bản Windows Server: 2008 R2, 2012 R2, 2016 và 2019.
Lỗi có thể xuất hiện do một số lý do:
- Lỗi trong hoạt động của Remote desktop services currently busy;
- Một lỗi trong quá trình csrss.exe;
- Sự cố với hồ sơ người dùng hoặc dịch vụ profsvc;
- Thiếu RAM hoặc dung lượng đĩa trên máy chủ RDSH;
- Cài đặt Chính sách Nhóm không chính xác.
Thật không may, không có giải pháp chính thức của Microsoft có thể giải quyết vấn đề hoàn toàn. Tất cả những gì bạn có thể làm là để loại bỏ các triệu chứng.
Hầu như luôn luôn khắc phục sự cố ngụ ý đặt lại phiên người dùng có vấn đề hoặc khởi động lại máy chủ RDS, nhưng trong một số trường hợp, sự cố vẫn tiếp diễn. Hãy nghiên cứu các giải pháp bắt đầu với một trong những giải pháp dễ dàng nhất.
Kiểm tra tài nguyên máy chủ RDS
Đảm bảo rằng bạn có đủ tài nguyên máy chủ vì sự cố có thể xảy ra do thiếu RAM hoặc dung lượng đĩa. Kiểm tra tải RAM và dung lượng trống còn lại trên đĩa có cài đặt hệ điều hành (phải có ít nhất 1GB). Ngoài ra, hãy xem nhật ký sự kiện để xem liệu có bất kỳ lỗi nghiêm trọng nào liên quan đến RDS hay không.
Nếu mọi thứ đều ổn, hãy chuyển sang bước tiếp theo.
Đặt lại phiên máy khách từ xa bị mắc kẹt trên RDS
Trước hết, hãy cố gắng tìm và đặt lại phiên của người dùng không thể đăng nhập vào máy chủ RDS với lỗi “Remote desktop services currently busy”. Tìm người dùng trong tab Người dùng của Trình quản lý tác vụ và nhấp vào Đăng xuất trong menu ngữ cảnh. Trong hầu hết các trường hợp, nó là đủ để giải quyết vấn đề, nhưng đôi khi bạn có thể tìm thấy nhiều phiên bị treo với tên (4) thay vì tên người dùng trong Trình quản lý tác vụ. Theo quy tắc, sẽ có 4 quy trình trong phiên người dùng RDS bị treo:
- Quy trình thời gian chạy của máy chủ khách (csrss.exe)
- Trình quản lý Windows trên máy tính để bàn (dwm.exe)
- Ứng dụng Windows Logon (winlogon.exe)
- Giao diện người dùng đăng nhập Windows
Để bắt đầu, hãy thử đặt lại tất cả các phiên RDS bị treo (4) trong Trình quản lý tác vụ như được mô tả ở trên. Nếu nó không giúp ích, tốt hơn là khởi động lại máy chủ. Nhưng điều này thường không thể thực hiện được, vì nó sẽ ảnh hưởng đến các phiên của người dùng khác trên máy chủ RDS. Vì vậy, chúng tôi sẽ cố gắng giải quyết vấn đề mà không cần khởi động lại máy chủ:
- Chạy dấu nhắc lệnh nâng cao và thực hiện lệnh:
query session
.Nó sẽ hiển thị tất cả người dùng và các phiên từ xa của họ trên máy chủ RDS. Có 3 cột chúng tôi cần trong đầu ra: SESSIONNAME, USERNAME và ID. Tìm(4)
người dùng và ID tương ứng, trong ví dụ này là ID 2 . Chúng ta phải giếtcsrss.exe
tiến trình đang hoạt động trong phiên này, nhưng chúng ta sẽ phải tìm ra nó trước; - Hiển thị danh sách quy trình đang chạy trong ID phiên mà bạn đã nhận được trước đó:
query process /id 2
Tìmcsrss.exe
quy trình (kiểm tra cột IMAGE) và PID của nó . Trong trường hợp của tôi, PID là 5140 . Bạn cần phải giết quá trình này. - Kiểm tra nó trong Trình quản lý tác vụ. Mở Trình quản lý tác vụ, chuyển đến tab Chi tiết và tìm PID và quy trình từ bước trước. Nếu PID bạn cần tương ứng với quá trình csrss.exe, hãy tắt quá trình bằng cách nhấp vào Kết thúc tác vụ trong menu ngữ cảnh hoặc bằng cách nhập lệnh sau vào dấu nhắc lệnh:
taskkill /F /PID 5140
Làm điều đó cho mỗi (4) người dùng nếu có một số người trong số họ.
Đặt lại phiên người dùng RDS
Nếu bạn không thể đăng xuất người dùng gặp sự cố trong Trình quản lý tác vụ, bạn có thể thử đặt lại phiên người dùng RDS từ dấu nhắc lệnh:
- Mở dấu nhắc lệnh với tư cách quản trị viên và chạy lệnh:
query session
Sao chép SESSIONNAME của người dùng gặp sự cố. - Enter:
reset session <SESSIONNAME>
Chỉ định tên phiên bạn có thay vì <sessionname> như trong ảnh chụp màn hình bên dưới:
Làm điều đó cho mỗi phiên người dùng RDS có vấn đề. Sau đó, bạn có thể cố gắng đăng nhập và sự cố sẽ không xảy ra nữa. Nếu bạn có thể khởi động lại máy chủ của mình, tốt hơn là bạn nên làm điều đó.
Kiểm tra Cài đặt cấp phép trên Máy chủ RDS của bạn
Đảm bảo rằng máy chủ cấp phép và loại giấy phép (CAL cho mỗi người dùng / CAL cho mỗi thiết bị) được chỉ định trên máy chủ RDS của bạn là chính xác.
Bạn có thể chỉ định địa chỉ của máy chủ có giấy phép RDS:
- Trong cài đặt thu thập RDS: Nhiệm vụ -> Chỉnh sửa Thuộc tính Triển khai -> Cấp phép RD -> Chỉ định máy chủ cấp phép;
- Trong GPO: Sử dụng máy chủ cấp phép Máy tính Từ xa được chỉ định (Computer Configuration -> Policies -> Admin Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing)
- Sử dụng PowerShell
Xóa giới hạn kết nối RDP trong GPO
Bạn có thể sử dụng Chính sách nhóm để giới hạn số lượng kết nối RDS đồng thời (đồng thời). Cài đặt chính sách này bị tắt theo mặc định.
Đảm bảo nếu chính sách được bật và nhận được giá trị của nó bằng cách sử dụng gpresult .
- Chạy lệnh sau trong dấu nhắc lệnh nâng cao:
gpresult /H c:\gpresult.html
- Mở tệp gpresult.html nằm trong thư mục gốc của đĩa C. Đây là tệp .html phổ biến và bạn nên mở tệp này trong Internet Explorer vì nó có thể hiển thị không chính xác trong các trình duyệt khác;
- Tìm cài đặt GPO có tên Limit number of connections under Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host\Connections hoặc nhập Limit number of connections
Nếu không có cài đặt chính sách như vậy, nó không được áp dụng và không có hạn chế về số lượng kết nối đồng thời. Nếu chính sách được bật và số lượng kết nối tối đa được đặt, hãy thay đổi giá trị như bạn muốn. Bạn có thể chỉnh sửa một Trình chỉnh sửa chính sách nhóm cục bộ ( gpedit.msc
) và nếu chính sách được đặt bằng GPO miền, hãy chỉnh sửa nó trong gpmc.msc
. Sau khi thực hiện xong, đừng quên chạy lệnh gpupdate /force
để làm mới và áp dụng cài đặt Chính sách Nhóm mới ngay lập tức .
Các giải pháp bên ngoài: Phải làm gì nếu không có gì hữu ích
Nếu bạn có đủ tài nguyên máy chủ, không thấy lỗi trong nhật ký RDP , việc đặt lại phiên của người dùng không hữu ích vì một số lý do và không thể khởi động lại máy chủ RDSH ngay lập tức, thì bạn nên thử các tùy chọn sau:
- Hãy chắc chắn rằng Drain Mode chế độ ngăn chặn người dùng tạo các kết nối RDP mới bị vô hiệu hóa:
chglogon.exe /QUERY
. Nếu lệnh trả về ‘Nhật ký người dùng mới bị TẮT, nhưng kết nối lại với các phiên hiện có được BẬT’, hãy tắt chế độ Xả:chglogon.exe /enable
- Bỏ chọn Bộ nhớ đệm bitmap liên tục trong cài đặt kết nối RDP của
mstsc.exe
máy khách; - Khởi động lại Dịch vụ Máy tính Từ xa bằng các lệnh:
net stop termservice
vànet start termservice
. Hoặc khởi động lại dịch vụ từ xa bằng PowerShell:Get-Service termservice –ComputerName mun-rdsh1 | Restart-Service
- Diệt tất cả các quy trình tstheme.exe ;
- Bạn nên áp dụng tất cả các bản cập nhật mới nhất cho phiên bản Windows của mình, sử dụng các công cụ cập nhật tiêu chuẩn (hoặc PSWindowsUpdate PowerShell ).