Есть ли способ удаленно проверить, работает ли пользователь за компьютером? ("psloggedon" просто сообщает мне, что пользователь вошел в систему и больше ничего)
2 ответа
Это зависит от вашего определения «работа на» компьютере.
Вы можете использовать команду tasklist /S для подключения к удаленному компьютеру и увидеть, какие процессы на нем запущены, и вы можете объединить это с фильтром для имени пользователя, если вы знаете, какого пользователя проверять:
C:\Documents and Settings\adam>tasklist /FI "USERNAME eq NTDOM\joe.bloggs" /S REMOTEPC Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ rdpclip.exe 5808 RDP-Tcp#2 2 5,132 K explorer.exe 656 RDP-Tcp#2 2 15,228 K AClntUsr.EXE 6804 RDP-Tcp#2 2 4,252 K cpqteam.exe 6244 RDP-Tcp#2 2 3,608 K ctfmon.exe 4300 RDP-Tcp#2 2 3,448 K ctfmon.exe 3780 RDP-Tcp#2 2 2,764 K shstat.exe 6836 RDP-Tcp#2 2 788 K cmd.exe 4168 RDP-Tcp#2 2 2,352 K logon.scr 6360 RDP-Tcp#2 2 2,572 K
Я могу видеть, какие программы "Джо" работает. Один из них - logon.scr, так что, думаю, сейчас он мало что делает. Однако у него запущен cmd.exe, поэтому он, вероятно, что-то делал там в какой-то момент. Если бы это был, скажем, winword.exe (MS Word) или Excel.exe (MS Excel) - я бы определенно не хотел удаленно перезагружать его компьютер, даже если запущен logon.scr. Возможно, он не спас всю свою работу.
Если вы не знаете, какого пользователя вы ищете, вы можете использовать фильтр "USERNAME ne SYSTEM". Если вы пишете это, вы можете взять имя пользователя из вывода wmic ComputerSystem Get UserName.
Если вы просто хотите узнать, заняты ли пользователи нажатием клавиш и нажатием клавиш, вы можете использовать quser.exe:
C:\scripts>quser USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME >adam.thompson console 1 Active none 07/03/2012 11:42
Я не уверен, насколько точен бит IDLE TIME в quser, когда сеанс является «консольным» и относится к пользователю, физически сидящему за компьютером (в отличие от использования служб терминалов с переключателем /console).
Будьте осторожны с использованием таких вещей, как VNC, чтобы определить, что происходит на компьютере. Существует конфиденциальность и (в зависимости от того, где вы находитесь) юридические проблемы вокруг таких вещей.
Одним из способов было бы настроить VNC-сервер на этом компьютере, удаленно войти на него и просто наблюдать за активностью экрана. Я использую UltraVNC для чего-то подобного.