【发布时间】:2020-10-07 02:40:09
【问题描述】:
如何使用 .NET (C#) 获取本地计算机上所有 windows 用户的列表?
【问题讨论】:
-
你说
of a specific machine,你是指本地/实际机器还是来自网络上的机器?
标签: c# .net windows-users
如何使用 .NET (C#) 获取本地计算机上所有 windows 用户的列表?
【问题讨论】:
of a specific machine,你是指本地/实际机器还是来自网络上的机器?
标签: c# .net windows-users
这里有一篇博文(附代码),解释了如何做到这一点:
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 DirectoryIF 活动目录被用来限制被“授权”使用本地机器的用户。
如果您的要求不那么严格,那么您可以检查系统用户配置文件中的文件夹,其中每个文件夹除了默认用户和所有用户代表已登录到本地计算机的用户配置文件。 注意这可能包括系统和/或服务帐户...
【讨论】: