如何使用.NET(C#)获取本地计算机所有Windows用户的列表?
这篇博客文章(含代码)详细解释了如何实现:
http://csharptuning.blogspot.com/2007/09/how-to-get-list-of-windows-user-in-c.html
作者列出了以下代码(引用自上述网站):
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry admGroup = localMachine.Children.Find("users","group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
DirectoryEntry member = new DirectoryEntry(groupMember);
lstUsers.Items.Add(member.Name);
}
你需要在代码的顶部添加using System.DirectoryServices
。要更改计算机,你需要将Environment.MachineName
更改为想要访问的任何计算机(只要你有权限这样做且防火墙不会阻止你这样做)。我还修改了作者的代码,以查看users
组而不是administrators
组。这取决于你真正想要什么... 如果你在使用Windows域(使用Active Directory),那么你可以查询Active Directory,如果 Active Directory 用于限制“授权”使用本地计算机的用户。
如果您的要求不是那么严格,那么您可以检查系统UserProfiles中的文件夹,其中每个文件夹除了 Default User 和 All Users 表示已登录到本地计算机的用户配置文件。注意:这可能包括系统和/或服务帐户...