【问题标题】:Get windows users with C#使用 C# 获取 windows 用户
【发布时间】:2020-10-07 02:40:09
【问题描述】:

如何使用 .NET (C#) 获取本地计算机上所有 windows 用户的列表?

【问题讨论】:

标签: c# .net windows-users


【解决方案1】:

这里有一篇博文(附代码),解释了如何做到这一点:

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组。

【讨论】:

  • 知道它有多可靠吗?即有使用 WMI 的替代品声称它可以毫无问题地使用,但它的故障率 > 0.5%
  • 根据我的经验,这种方法是可靠的。至于可信度如何,我无话可说。它应该是完全可靠的。
【解决方案2】:

这取决于你真正“追求”什么...如果你在 Windows 域上(使用活动目录),那么你可以查询 Active DirectoryIF 活动目录被用来限制被“授权”使用本地机器的用户。

如果您的要求不那么严格,那么您可以检查系统用户配置文件中的文件夹,其中每个文件夹除了默认用户和所有用户代表已登录到本地计算机的用户配置文件。 注意这可能包括系统和/或服务帐户...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2012-07-20
    • 1970-01-01
    • 2015-05-27
    • 2023-04-10
    • 1970-01-01
    • 2016-01-28
    • 2017-02-27
    相关资源
    最近更新 更多