Đô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:
The task you are trying to do can't be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log on.
Trong trường hợp này, quản trị viên máy chủ 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à Đã ngắt kết nối trạng thá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 Dịch vụ Máy tính Từ xa;
- Một lỗi trong quy trình csrss.exe;
- Sự cố với hồ sơ người dùng hoặc dịch vụ PVC;
- 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 cùng nghiên cứu các giải pháp bắt đầu từ 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 “Dịch vụ Máy tính Từ xa hiện đang bận”. 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 Đăng nhập Windows (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 hữu í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 diệtcsrss.exe
quy trình đang hoạt động trong phiên này, nhưng chúng tôi sẽ phải tìm quy trình đó 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
xử lý (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 kết thúc 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ụ, đi tới 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ố. - Nhập:
reset session <SESSIONNAME>
Chỉ định tên phiên bạn có thay vìnhư được hiển thị 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.
Khi tôi gặp lỗi ‘ Không thể hoàn thành tác vụ bạn đang cố gắng thực hiện vì Dịch vụ Máy tính Từ xa hiện đang bận 'Khi sau khi cài đặt vai trò RDSH, tôi quên chỉ định tên máy chủ / địa chỉ IP của máy chủ có vai trò Cấp phép Máy tính Từ xa. Trong trường hợp đó, hai người dùng RDP đã kết nối như bình thường và người thứ ba gặp lỗi này.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 (Cấu hình máy tính -> Chính sách -> Mẫu quản trị -> Cấu phần Windows -> Dịch vụ máy tính từ xa -> Máy chủ phiên máy tính từ xa -> Cấp phép)
- Sử dụng PowerShell (xem bài viết Chế độ cấp phép cho Máy chủ phiên máy tính từ xa không được định cấu hình).
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 rằng 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ì tệp này 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 Giới hạn số lượng kết nối trong 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 hoặc nhập Giới hạn số lượng kết nối để tìm kiếm trên trang
Nếu không có cài đặt chính sách như vậy, chính sách đó sẽ 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 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 bạn làm 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 hữu ích: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:
- Đảm bảo rằng Thoát nước chế độ ngăn người dùng tạo kết nối RDP mới bị tắt:
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
khách hàng; - 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ả tstheme.exe quy trình;
- 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 mô-đun PSWindowsUpdate PowerShell).