如何使用 .NET (C#) 获取本地计算机的所有 Windows 用户的列表?
问问题
11007 次
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 回答