有没有办法远程检查用户是否正在使用计算机?(“psloggedon” 只是让我知道用户是否已登录,没有其他信息)
答案1
这取决于您对‘使用’计算机的定义。
您可以使用任务列表/S命令连接到远程计算机并查看其上正在运行的进程,如果您知道要检查哪个用户,则可以将其与用户名过滤器结合起来:
C:\Documents and Settings\adam>tasklist /FI “用户名 eq NTDOM\joe.bloggs” /S REMOTEPC 图像名称 PID 会话名称 会话编号 内存使用情况 =========================== ======== ================ ============= =============== 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
我可以看到“joe”正在运行哪些程序。其中一个是 logon.scr,所以我猜他现在没有做太多事情。但是,他正在运行 cmd.exe,所以他可能在某个时候在那里做了一些事情。如果是 winword.exe (MS word) 或 excel.exe (MS Excel) - 我绝对不想远程重启他的电脑,即使 logon.scr 正在运行。他可能没有保存他所有的工作。
如果您不知道要查找哪个用户,可以使用过滤器“USERNAME ne SYSTEM”。如果您正在编写此脚本,则可以从输出中获取用户名wmic 计算机系统 获取用户名。
如果您只是想知道用户是否忙于点击东西和按下按键,您可以使用 quser.exe:
C:\scripts>quser 用户名 会话名称 ID 状态 空闲时间 登录时间 >adam.thompson console 1 活动 无 07/03/2012 11:42
但是,当会话为“控制台”并且指的是用户物理坐在计算机前(而不是使用带有 /console 开关的终端服务)时,我不确定 quser 中的 IDLE TIME 位有多准确。
使用 VNC 之类的东西来确定计算机上正在发生的事情时要小心。这类东西有隐私和(取决于您所在的地方)法律问题。
答案2
一种方法是在该机器上设置 VNC 服务器,远程登录并简单地观察屏幕活动。我使用超VNC寻找类似的东西。