- 我使用 Windows Server 2008R2
我想查看当前谁登录了计算机。我使用了它,PsLoggedOn \\Machine Name or IP
但它给出了以下错误:
打开 [计算机名称] 的 HKEY_USERS 时出错 无法查询资源登录
有什么建议吗?
答案1
使用 PowerShell:
Get-WmiObject -Class win32_process -ComputerName remote-hostname |
Where-Object{ $_.Name -eq "explorer.exe" } |
ForEach-Object{ ($_.GetOwner()).Domain + "\\" + ($_.GetOwner()).User; }
...更换远程主机名使用计算机名称。
答案2
好吧,很难说清楚什么在这里适用,什么不适用,但请检查SysInternals 论坛上的这篇文章,具体来说,下面我要复制的是。
在目标机器上检查
... [我剪掉了一长串的东西,因为它们可能不适用于这里,将我们带到]...
一旦您的目标机器满足上面列出的所有要求,请从本地机器尝试对目标机器执行以下命令:
网络使用 \\target\Admin$ /用户:管理员
目录 \\target\Admin$
网络使用 \\target\Admin$ /delete
(仅断开连接,不会删除任何内容。)
(他们还提供诸如有关该工具的常见问题解答和指向该工具的 MS 下载页面的链接等资源,因此,有关 Sysinternals 套件的信息或疑问值得一看。)
现在,假设所有这些条件都得到满足,并且您实际上可以执行上述三个命令,那么 PSLoggedon 出现该错误的最常见原因是......远程注册服务被禁用。 默认情况下,它是禁用的,但 PSLoggedon(以及其他功能)需要它才能工作。检查目标机器上的服务,我敢打赌,您需要启用它才能让此工具为您工作。
编辑:
要使用 PSExec 远程启动服务,您可以使用:
psexec \\[target] -u [username with admin rights] -p [password] net start [servicename]
因此,您可以使用 PSExec 远程启动所需的服务,然后使用 PSLoggedOn,而不必实际到每台机器或部署 GPO。
答案3
应用程序运行时的用户环境(默认网络凭据)需要在HKEY_USERS
您想要查询的计算机上访问配置单元并打开和读取该配置单元。
要“提升命令会话”,请右键单击可执行文件(cmd.exe
例如),然后选择“以管理员身份运行”。现在,从该命令提示符运行的所有可执行文件都将以“提升的权限”运行
在 TechNet 上阅读更多内容用户帐户控制,Windows 中管理令牌提升的功能