如何使用托管代码获取本地计算机上的所有组(无P / Invoke)

时间:2018-04-26 14:00:40

标签: c# .net windows

所以我一直在寻找这个问题的答案,而且我遇到的一切似乎都是针对Active Directory或类似的东西。本地机器没有这方面的例子。

这里的目标基本上是获取系统中的所有用户组。如果您启动计算机管理,您将看到的相同,转到系统工具>本地用户和群组>小组

1 个答案:

答案 0 :(得分:0)

using (PrincipalContext context = new PrincipalContext(ContextType.Machine))
{
    using (GroupPrincipal groupPrincipal = new GroupPrincipal(context))
    {
        groupPrincipal.Name = "*";

        PrincipalSearcher principalSearcher = new PrincipalSearcher();
        principalSearcher.QueryFilter = groupPrincipal;
        PrincipalSearchResult<Principal> groupList = principalSearcher.FindAll();

        foreach (Principal group in groupList)
        {
            // Do something with info
        }
   }
}