在Windows中获取本地计算机用户名列表

我怎样才能得到本地计算机用户名在Windows使用C#的列表?

using System.Management; SelectQuery query = new SelectQuery("Win32_UserAccount"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); foreach (ManagementObject envVar in searcher.Get()) { Console.WriteLine("Username : {0}", envVar["Name"]); } 

此代码与KeithS发布的链接相同。 几年前,我用它没有问题,但忘记了它来自哪里,谢谢基思。

我使用这段代码来获取我的本地Windows 7用户:

 public static List<string> GetComputerUsers() { List<string> users = new List<string>(); var path = string.Format("WinNT://{0},computer", Environment.MachineName); using (var computerEntry = new DirectoryEntry(path)) foreach (DirectoryEntry childEntry in computerEntry.Children) if (childEntry.SchemaClassName == "User") users.Add(childEntry.Name); return users; } 

你可以检查这是在Windows 7上这个正确的列表。

尝试这个:

http://www.andreas-kraus.net/blog/how-to-list-all-windows-users/

它基本上使用WMI来获取用户名。

一种方法是列出C:\Documents and Settings (在Vista / 7: C:\Users )中的目录。

以下是获取本地计算机名称的几种不同方法:

 string name = Environment.MachineName; string name = System.Net.Dns.GetHostName(); string name = System.Windows.Forms.SystemInformation.ComputerName; string name = System.Environment.GetEnvironmentVariable(“COMPUTERNAME”);