10

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

4

2 回答 2

11

这是一篇博客文章(带有代码),解释了如何做到这一点:

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

于 2011-05-17T15:42:26.593 回答
4

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

如果您的要求不那么严格,那么您可以检查系统 UserProfiles 中的文件夹,其中Default User 和 All Users 之外的每个文件夹都代表已登录到本地计算机的用户配置文件。注意这可能包括系统和/或服务帐户...

于 2011-05-17T15:48:36.937 回答