Theo tôi biết điều này là không thực sự có thể. Tùy thuộc vào bao nhiêu bạn biết về môi trường của người sử dụng, sau đây có thể là một cách giải quyết tuy nhiên:
Lệnh
qwinsta
sẽ cung cấp cho bạn một danh sách các phiên cho máy tính. Trong các phiên này, một trong số đó sẽ là phiên hoạt động, vì vậy nếu chương trình này được sử dụng trong một phiên tương tác, điều này về cơ bản sẽ chứa "người dùng đã đăng nhập" như bạn đã mô tả (nó phức tạp hơn nhiều, có thể có nhiều người dùng đăng nhập nhưng chỉ có một người có thể hoạt động và tôi chỉ hy vọng bạn biết đủ về kịch bản sử dụng của chương trình của bạn để sử dụng điều đó). Bạn có thể phân tích đầu ra và làm việc với tên người dùng đó.
Tất nhiên đây là một hack bẩn và nó giả định rằng trong thời gian chạy của nhiệm vụ của bạn không có cơ hội mà người dùng thay đổi. Ngoài ra, mặc dù tôi đã chọn qwinsta.exe vì nó là một cách tiếp cận rất cơ bản mà không cần các cuộc gọi API hoặc một cái gì đó tôi vẫn không chắc chắn nếu CMD có khả năng phân tích đủ để có được những thông tin cần thiết cho bạn.
Bạn có thể làm rõ ý nghĩa của "người dùng hiện đã đăng nhập" không? Bạn có hạn chế điều này với giao diện điều khiển không? Các kết nối Remote Desktop có được tính không? Nếu đây là một hệ điều hành máy chủ, làm thế nào bạn sẽ chọn giữa RDP cilents? – mojo
không chắc chắn, bởi vì không thể thử tại thời điểm này, nhưng 'tasklist/v | find" explorer.exe "' giúp đỡ? – Stephan
Có thể trùng lặp * [Làm thế nào để bạn tìm thấy người dùng hiện tại trong môi trường Windows?] (Http://stackoverflow.com/questions/1607271/how-do-you-find-the-current-user-in-a- windows-environment) *. –