从 memberOf 属性 检索 AD sAMAccountNames

Retrieve AD sAMAccountNames from memberOf property

我们正在使用 DirectoryEntry 检索群组成员详细信息。 memberOf 属性 包含群组成员的 cn。但是,我们的域中充满了 cn 与 sAMAccountName 不同的组。

我需要获取组成员的 sAMAccountNames 列表(包括递归作为成员的组的成员资格等)。现在我查找 memberOf 属性,存储 cn,然后执行第二个 LDAP 查询以获取具有这些 cns 的对象的 sAMAccountNames。

有没有更好的方法来完成这个?

我不确定你是如何获得 CN 的,但是当我需要来自一个组的 SamAccountNames 时,我通常会这样写,

var samNames = new List<string>();
using (var group = GroupPrincipal.FindByIndentity(principalContext, "GroupName"))
{
     if (group != null)
     {
         var users = group.GetMembers(true);
         foreach (UserPrincipal user in users)
         {
             samNames.add(user.SamAccountName);
         }
     }
}