我需要知道如何远程获取计算机主要用户的名称和域名。我将主要用户定义为用户最多登录时间或一段时间内最长时间。或者,如果这是不可能的,则用户当前/上次登录。
目前,我扫描一个OU中所有计算机对象的Active Directoy。然后我循环它们,并尝试使用WMI获取用户的名称。
我查看Win32_ComputerSystem
以查看UserName是否返回值。如果不是这种情况,我会查看Win32_LogonSession
并获取所有等于2或10的LogonType的用户名。如果这返回none或多个值,我将丢弃结果并查看Win32_Process
所有非系统进程,并将主用户定义为运行大多数进程的用户。
我的方法有几个问题:
Win32_ComputerSystem
- UserName通常为空。Win32_LogonSession
经常会返回多个值或没有值。只能有一个主要用户。Win32_Process
有点荒谬,因为这只会让我回复大多数进程的用户,很可能不是主用户。Win32_Process
将不返回任何值,并且3个步骤中的任何一个都不会返回值。我的3种方法可能会让我成为当前用户。有谁知道获得主要用户的方法?或者至少是获得当前的更好方法。不一定使用WMI。
由于
答案 0 :(得分:0)
如果您具有远程计算机的管理员权限并共享访问权限 您可以使用计算机管理并选择 连接到其他计算机并查看该计算机上的用户和组。 或者,如果远程计算机具有该功能,则可以使用TS远程管理或远程桌面。
使用psexec.exe
(www.sysinternals.com)在远程PC上运行命令:
psexec \\pc1 net user | find /i "Steve"
psexec \\pc1 c:\tool\psloggedon | find /i "Steve"
1)查找John Black在PC1上是否有帐户。
2)查找他当前是否已登录。
使用psloggedon.exe
表示uis是另一个SysInternals工具。
另请检查:http://www.wisesoft.co.uk/scripts/vbscript_display_username_of_user_on_a_remote_computer.aspx
此外,如果要使用远程计算机IP在远程计算机上找到当前登录用户的用户名,请转到命令行,键入nbtstat -A <IP of remote computer>
这将返回在该命令行上注册的所有NetBIOS名称计算机,其中一个是用户名。