首页 > 解决方案 > 如何使用托管代码获取本地计算机上的所有组(无 P/Invoke)

问题描述

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

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

标签: c#.netwindows

解决方案


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
        }
   }
}

推荐阅读