我们在工作时有一台 Windows XP Pro 计算机,有几个人通过 VNC(RealVNC)连接到该计算机。每个用户都使用自己的帐户登录 Windows。我们都希望对其他用户保持礼貌,并且只在没有其他人使用该计算机时连接。如果其他人是使用它,我想找出谁(即哪个 Windows 用户登录了),这样我就可以询问他们什么时候可能完成。问题是:我如何找出答案?
我们目前所做的是首先尝试通过 RDP 进行连接,这样它会提示我们“用户 SmithJ 当前已登录。您想注销他们吗?”我们回答“否”,但现在我们知道是 John Smith 在使用它。这可行,但有点麻烦 - 您必须运行远程桌面,选择机器,输入密码。我们有什么办法可以用 VNC 本身做到这一点吗?
当然,另一种方法是通过 VNC 连接后发送 CtrlAlt-Del,但这会让使用它的其他人非常烦人,我不想这样打扰他们。
在有人问之前,不,我们不能只使用 RDP - 会话必须看起来是“交互式”会话。但是,如果有可以做到这一点的 VNC 替代产品,我会很有兴趣听听它们。
答案1
接下来是:
echo %USERNAME% > 目前登录.txt
它看起来像 Windows XP,以及更高版本,有一个环境变量“SESSIONNAME”,对于控制台登录会话,它被设置为“Console”。
我不确定它为 RDP(远程桌面)会话设置了什么。如果不同,您可以在批处理文件中使用它来判断是否应该更新魔术文件。
这种方法存在一个小问题:您还需要一种在控制台注销时删除该文件的方法。
答案2
听起来像是使用 psloggedon.exe系统内部是您的最佳选择。只需运行一个简单的批处理文件或类似的东西,它就会告诉您谁登录了远程电脑。如果您通过 RDP 和控制台拥有多个用户,请尝试使用,net sessions \\computer
这将返回该远程计算机上的所有 RDP 会话。
答案3
你可以 telnet 到另一台机器或者使用 psexec,然后执行命令
可以执行一个在服务器上执行 netstat -aon 的脚本,查看 IP,然后有另一个文件,每行包含一个 IP 和用户名。找到该 IP 的行,然后显示显示用户名的行。
或者
每个客户端都可以使用 psexec 在 C:\ 上写入一个包含其名称的文件。
要查明谁在使用计算机,当计算机正在使用时,您可以运行一个脚本来显示该文件中的内容。
答案4
这听起来可能有点简陋,但确实可行:你可以向每个人的启动文件夹添加一个批处理脚本,执行如下操作:
echo %USERNAME% > 目前登录.txt
然后在计算机上共享该文件,并从您的计算机上创建该文件的快捷方式。这样,当有人登录时,他们会自动更新该文件,如果您需要知道谁登录了,只需双击桌面上的快捷方式即可查看。