O ile mi wiadomo, nie jest to możliwe. W zależności od tego, ile wiesz o środowisku użytkowników, co następuje obejście może być jednak:
Komenda
qwinsta
daje listę sesji dla komputera. W ramach tych sesji jeden będzie aktywny, więc jeśli ten program zostanie użyty w sesji interaktywnej, to zasadniczo będzie zawierał "zalogowanego użytkownika" zgodnie z opisem (jest to znacznie bardziej skomplikowane, może być wielu zalogowanych użytkowników ale tylko jedna może być aktywna i mam tylko nadzieję, że wiesz wystarczająco dużo o scenariuszu użycia twojego programu, aby tego użyć). Można przeanalizować dane wyjściowe i pracować z tą nazwą użytkownika.
Oczywiście jest to brudny hack i zakłada, że podczas wykonywania zadania nie ma szans, że użytkownicy się zmienią.
Również wybrałem qwinsta.exe, ponieważ jest to bardzo podstawowe podejście, które nie wymaga żadnych wywołań API lub coś, co nadal nie jestem pewien, czy CMD ma wystarczające możliwości analizowania, aby uzyskać niezbędne informacje dla Ciebie.
Czy możesz wyjaśnić, co rozumie się przez "aktualnie zalogowany użytkownik"? Czy ograniczasz to do konsoli? Czy liczą się połączenia pulpitu zdalnego? Jeśli jest to system operacyjny serwera, jaki byłby wybór między cilentami RDP? – mojo
nie jestem pewien, ponieważ nie można spróbować w tej chwili, ale robi 'tasklist/v | find" explorer.exe "' help? – Stephan
Możliwy duplikat * [Jak znaleźć aktualnego użytkownika w środowisku Windows?] (Http://stackoverflow.com/questions/1607271/how-do-you-find-turrent-user-in-a- Windows-środowisko) *. –