为 [COMPUTER NAME] PsLoggedon 打开 HKEY_USERS 时出错

Meh*_*deh 5 windows-server-2008 windows-server-2008-r2

  • 我使用 Windows Server 2008R2

我想看看谁当前登录在一台机器上。我使用过,PsLoggedOn \\Machine Name or IP 但它给了我以下错误:

为 [COMPUTER NAME] 打开 HKEY_USERS 时出错, 无法查询资源登录

有什么建议吗?

Sim*_*lin 7

使用 PowerShell:

Get-WmiObject -Class win32_process -ComputerName remote-hostname | 
    Where-Object{ $_.Name -eq "explorer.exe" } | 
    ForEach-Object{ ($_.GetOwner()).Domain + "\\" + ($_.GetOwner()).User; }
Run Code Online (Sandbox Code Playgroud)

...用计算机名称替换远程主机名。


Hop*_*00b 6

好吧,很难说到底哪些适用于此,哪些不适用,但请查看SysInternals 论坛上的这篇文章,特别是我将在下面复制的内容。

在您的目标机器上检查是否

... [我剪下的一长串事情,因为它们可能不适用于这里,让我们看到]...

一旦你的目标机器满足上面列出的所有要求,从你的本地机器尝试对你的目标机器执行这些命令:

net use \\target\Admin$ /user:Administrator

目录 \\目标\管理员$

net use \\target\Admin$ /delete

(仅断开连接,不删除任何内容。)

(他们也有资源,比如工具的 FAQ 和工具的 MS 下载页面的链接,所以他们值得一看,以获取有关 Sysinternals 套件的信息或问题。)

现在,假设满足所有这些条件,并且您实际上可以执行上述三个命令,那么 PSLoggedon 错误的最常见原因是...远程注册表服务被禁用。 默认情况下它是禁用的,但需要 PSLoggedon(除其他外)才能工作。检查目标机器上的服务,我敢打赌你需要启用它才能让这个工具为你工作。

编辑:

要使用 PSExec 远程启动服务,您可以使用:

psexec \\[target] -u [username with admin rights] -p [password] net start [servicename]

因此,您可以使用 PSExec 远程启动所需的服务,然后使用 PSLoggedOn,而无需实际访问每台机器或部署 GPO。


Mat*_*sen 2

运行应用程序的用户上下文(默认网络凭据)需要访问权限才能HKEY_USERS在要查询的计算机上打开和读取配置单元。

要“提升命令会话”,请右键单击可执行文件(cmd.exe例如),然后选择“以管理员身份运行”。现在从该命令提示符运行的所有可执行文件都将以“提升的权限”运行

在 TechNet 上阅读有关用户帐户控制(Windows 中管理令牌提升的功能)的更多信息