C# 如何获得;“初级”;远程计算机的用户
我需要知道如何远程获取计算机主要用户的名称和域。我最好将主用户定义为登录次数最多的用户,或一段时间内登录时间最长的用户。或者,如果这是不可能的,则为用户当前/上次登录 目前,我扫描一个OU中所有计算机对象的活动Directoy。然后我循环遍历它们,并尝试使用WMI获取用户的名称。 我在Win32计算机系统中查看用户名是否返回值。如果不是这样,我会查看C# 如何获得;“初级”;远程计算机的用户,c#,wmi,C#,Wmi,我需要知道如何远程获取计算机主要用户的名称和域。我最好将主用户定义为登录次数最多的用户,或一段时间内登录时间最长的用户。或者,如果这是不可能的,则为用户当前/上次登录 目前,我扫描一个OU中所有计算机对象的活动Directoy。然后我循环遍历它们,并尝试使用WMI获取用户的名称。 我在Win32计算机系统中查看用户名是否返回值。如果不是这样,我会查看Win32\u LogonSession并获取所有等于2或10的logonType的用户名。如果返回none或多个值,我将放弃结果,并在Win32\
Win32\u LogonSession
并获取所有等于2或10的logonType的用户名。如果返回none或多个值,我将放弃结果,并在Win32\u Process
中查找所有非系统进程,并将主用户定义为运行大多数进程的用户
我的方法有几个问题:
Win32\u ComputerSystem
-用户名通常为空Win32\u LogonSession
通常返回多个值或无值。只能有一个主用户Win32\u进程
有点可笑,因为这只会返回具有大多数进程的用户,很可能不是主用户Win32\u进程
不会返回任何值,并且这三个步骤都不会返回值如果您在远程计算机上具有管理员权限并具有共享访问权限,请向表示感谢 您可以使用计算机管理并选择 连接到其他计算机,查看该计算机上有哪些用户和组。 或者,如果远程计算机具有该功能,则可以使用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
说明UI是另一个系统内部工具
也请检查此项:
另外,如果要使用远程计算机IP查找远程计算机上当前登录用户的用户名,请转到命令行键入
nbtstat-a
,这将返回计算机上注册的所有NetBIOS名称,其中之一是用户名。如果您在远程计算机上具有管理员权限并具有共享访问权限
您可以使用计算机管理并选择
连接到其他计算机,查看该计算机上有哪些用户和组。
或者,如果远程计算机具有该功能,则可以使用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
说明UI是另一个系统内部工具
也请检查此项:
另外,如果您想使用远程计算机IP在远程计算机上查找当前登录用户的用户名,请转到命令行键入nbtstat-a
,这将返回计算机上注册的所有NetBIOS名称,其中一个是用户名