选择' memberOf'来自Active Directory的信息

时间:2015-11-09 22:06:38

标签: php active-directory

我现在有一个奇怪的问题&我完全没有想法。我编写了一个PHP脚本,该脚本最初从AD中提取所有用户信息,并在我的页面上显示。在分配给组的100多个用户中,我只能在var_dump中查看其中4个的memberOf信息。请参阅以下代码:

$search_filter = "(&(sAMAccountName=my.username))";
    $attr = array("memberof");
    $result = ldap_search($ldap_connection, LDAP_DN, $search_filter, $attr);
    if (!empty($result)){
        $entries = ldap_get_entries($ldap_connection, $result);
    }

    if(!empty($entries)){
        $user_groups = array();
        foreach($entries[0]['memberof'] as $key => $value){
            $user_groups[] = $value;
        }
        array_shift($user_groups);
    }

    var_dump($user_groups);

此字段是否有任何限制,或者为4个用户分配给所有用户时此属性仅​​显示的原因是什么?

非常感谢任何建议或帮助。

1 个答案:

答案 0 :(得分:1)

MemberOf将包含用户所属的所有组的列表(其多值属性),但有一个例外:用户的主要组不会在该列表中。因此,如果用户只是域用户的成员,并且默认情况下也是用户的主要群组,那么“会员”也是该用户不存在该属性。将用户添加到另一个组,您将在MemberOf中看到该组,而不是域用户。

这假定您拥有读取此属性的安全权限,但它通常对几乎所有人开放。