如何查找网络计算机名称和登录该计算机的用户?

3

我需要找出登录机器的机器名称和用户名。

  I have Updated My answer please see my answer !!!!

 NetworkBrowser nb = new NetworkBrowser();
 IPHostEntry ip = Dns.GetHostEntry(Dns.GetHostName());
 foreach (string pc in nb.getNetworkComputers())
 {
      cmbNetworkComputers.Items.Add(pc);
 }
 cmbNetworkComputers.SelectedIndex = 0;

上面的代码检索了机器名称,如何获取用户名称?

可能是重复的问题:如何使用C#在.NET中获取当前用户名? - CodeCaster
@CodeCaster 这不是这个问题的重复。你链接的那个问题是为了检索运行应用程序的帐户的用户名。 - user247702
1
那么 OP 应该详细说明他想要什么以及尝试了什么。例如,请参阅 如何在远程计算机上查找用户名? - CodeCaster
我需要用C#编写一个代码转换器。 - Aravind
@ Florian,我有一台服务器和22台连接到它上面的机器。这些22台机器被称为网络机器。我想找到特定的机器,并查看谁登录了该机器!!! - Aravind
显示剩余3条评论
1个回答

1

请参考如何获取本地网络计算机列表?的答案,了解如何获取计算机列表。

当您获得列表后,可以使用WMI查询计算机以获取已登录用户。

string comp = "Computer";
ConnectionOptions options = new ConnectionOptions();
//user (domain or local) with sufficient privileges to access the remote system through WMI
options.Username = "Usersname"; 
options.Password = "Password";
ManagementScope s = new ManagementScope(string.Format(@"\\{0}\root\cimv2", comp), options);

ManagementPath p = new ManagementPath(string.Format("Win32_ComputerSystem.Name='{0}'", comp));

using(ManagementObject cs = new ManagementObject (s, p, null ))
{
    cs.Get();
    Console.WriteLine(cs["UserName"]);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接