我现在有一个奇怪的问题&我完全没有想法。我编写了一个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个用户分配给所有用户时此属性仅显示的原因是什么?
非常感谢任何建议或帮助。
答案 0 :(得分:1)
MemberOf将包含用户所属的所有组的列表(其多值属性),但有一个例外:用户的主要组不会在该列表中。因此,如果用户只是域用户的成员,并且默认情况下也是用户的主要群组,那么“会员”也是该用户不存在该属性。将用户添加到另一个组,您将在MemberOf中看到该组,而不是域用户。
这假定您拥有读取此属性的安全权限,但它通常对几乎所有人开放。