我想从我的 Windows 7 PC 检查谁“主动”登录到我网络上的另一台 Windows 7 PC,而不是谁最后连接。如何做到这一点?
一整天中,有几个人会远程登录到共享计算机,通常在他们完成后注销。请注意,这些用户在自己的 PC 和远程登录的 PC 上都拥有管理员权限。如果我在其他人主动登录时登录,我可以选择继续并将自己设为“活动”用户,从而将前一个活动帐户置于断开连接状态。在做出此选择之前,能够查看谁在主动登录将是一件好事。
我搜索了网络并找到了各种解决方案,可以让您知道谁建立了最后的连接,但这并不意味着他们是最后一个或当前“活跃”的用户。
顺便提一下,在 Windows 7 中,单击“是”登录后才会显示当前活动用户的 ID,这似乎很奇怪。当我们使用 Windows XP 时,可以在决定继续登录之前看到当前活动用户的 ID。
任何帮助都将受到赞赏。
答案1
您可以使用终端服务询问命令。
query session /server:remote_computer_name_here
请注意,您需要在远程计算机上设置以下注册表值:
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value Name: AllowRemoteRPC
Value: 1
Type: REG_DWORD
您可以将查询命令放在批处理文件中,这样用户只需双击它即可查看谁登录了该计算机。
答案2
您可以使用 Windows Sysinternals 工具登陆。
用法:psloggedon [- ] [-l] [-x] [\\计算机名称 | 用户名]
- 显示支持的选项和用于输出值的测量单位。
-l 仅显示本地登录,而不是本地和网络资源登录。
-X 不显示登录时间。
\\计算机名 指定要列出登录信息的计算机的名称。
用户名如果您指定用户名,PsLoggedOn 会在网络中搜索该用户登录的计算机。如果您想确保在即将更改特定用户的用户配置文件配置时该用户未登录,此功能非常有用。
答案3
Windows 7 或更高版本命令行中的另一个选项:
tasklist /s computername /fi "imagename eq explorer.exe" /v
如果查询远程机器,可能会提示您输入管理员级别的凭据。
这将查看 explorer.exe 是否在计算机上运行,并且“/v”提供用户名。如果计算机未登录,则不会运行 explorer.exe 进程。如果有人登录,explorer.exe 进程将在该用户的上下文中运行。
答案4
命令提示符中的命令wmic
可以检索此信息。但是为了让客户端响应,首先需要防火墙规则。
我在 community.spiceworks.com 上找到了一篇帖子,感谢 MacKingTosh,它似乎修复了错误“错误 - RPC 服务器不可用”。
在产生此错误的客户端上运行的命令是:
netsh firewall set service remoteadmin enable
您可能需要检查这是否符合您的防火墙策略。
使用时wmic
,您可以传入以下参数:
/node
: - 别名将针对的服务器yourpcname
- 电脑的名称computersystem
- 我们正在尝试获取有关计算机系统的信息get
- 我们想要获得信息username
- 已登录的用户model
- 计算机型号manufacturer
- 制造该计算机的公司名称name
- 电脑的名称
一些例子:
获取用户名:
wmic /node: 'yourpcname' computersystem get username
获取电脑品牌和型号:
wmic /node: 'yourpcname' computersystem get manufacturer, model
获得全部三个:
wmic /node: 'yourpcname' computersystem get manufacturer, model, username
可以使用逗号和空格添加额外字段:
Model, manufacturer, username, name
上述示例适用于远程 PC,查询通过网络执行。如果命令在本地运行,则语法会略有不同。例如:
wmic computersystem get manufacturer, model, username