C# 目录服务:如何在 AD 中获取组的子组

本文关键字:获取 AD 目录服务 | 更新日期: 2023-09-27 18:36:01

如何使用目录服务从组获取子组。

假设我在AD中有以下组:

Master Group
     Group 1
     Group 2

我想获取属于主组的所有组。所以就我而言,我想得到一个包含组 1 和组 2 的列表

这是我代码的一部分:

using (var ctx = new PrincipalContext(ContextType.Domain, "myDomain.COM"))
{
    var group = GroupPrincipal.FindByIdentity(ctx, "Master Group");
    var results = group.Group();// returns nothing
}

C# 目录服务:如何在 AD 中获取组的子组

GroupPrincipal 中没有Group(bool)方法。
我猜你的意思是 GetMembers(bool) 方法?

true传递给GetMembers时,将跳过所有子组(它仅返回叶对象,如用户或计算机)。

您可以改为传递false并过滤掉所有非组成员。但这意味着你只能获得直接成员组,并且需要有某种方法来获取所有嵌套的成员组(例如递归方法)。