Dưới đây được thực hiện dễ dàng hơn nếu bạn đang truy vấn từ một khách hàng Windows tham gia vào cùng một miền với hệ thống bạn đang truy vấn và có thể yêu cầu các quyền nhất định ở trên và vượt quá người dùng miền chuẩn. Nếu bạn chạy vào các vấn đề xác thực/quyền, đó sẽ là điều đầu tiên tôi kiểm tra.
Có một công cụ có sẵn ít nhất ở xa như Windows XP có tên "qwinsta". Các phiên bản sau của Windows có cả qwinsta lẫn "phiên truy vấn".
qwinsta /server:computer01
SESSIONNAME USERNAME ID STATE TYPE DEVICE
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
administrator 2 Disc rdpwd
Điều đó cho thấy "quản trị viên" của người dùng đã đăng nhập nhưng bị ngắt kết nối. Vì trong ví dụ này computer01 là hệ thống Windows Server 2003 với giấy phép RDP "quản trị" mặc định, có phiên thứ hai lắng nghe người nào đó kết nối.
Chạy lệnh cùng một lần nữa sau khi kết nối với phiên ngắt kết nối trước đó trông như thế này:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
[unchanged output removed]
rdp-tcp#25 administrator 2 Active rdpwd
này là đủ để trả lời "là một người nào đó đang hoạt động thông qua RDP", và nếu bạn đang sử dụng tên người dùng cá nhân, nó cũng nên trả lời "ai". Nếu bạn đang sử dụng "testuser" hoặc "quản trị viên" hoặc một cái gì đó, có thể bạn sẽ muốn biết câu trả lời cho "từ khách hàng nào" và điều đó không được đưa ra ở trên.
Ở trên cung cấp câu trả lời cơ bản nhanh chóng mà không cần thêm công cụ. Để biết thêm thông tin chi tiết, bạn có thể xem cassia library hoặc PSTerminalServices (được xây dựng trên cassia). Xem một số câu trả lời trong this question để biết thêm chi tiết.
Suy nghĩ đầu tiên của tôi về điều này là sử dụng các công cụ Sysinternals chẳng hạn như PsLoggedOn hoặc LogonSessions. Sau đó, tôi đã tìm thấy tham chiếu đến các công cụ qwinsta và rwinsta trước đây chưa được biết đến của tôi trong this blog post from 2003.
Cảm ơn rất nhiều vì tất cả thông tin! –