繁体   English   中英

为什么php ldap_search在同一查询中返回不同的属性?

[英]Why does php ldap_search return different attributes within the same query?

我正在通过ldap_search运行Active Directory的查询,并返回ldap_get_entries尝试获取LastLogin,whenCreated,pwdLastSet。

返回的第一个用户没有索引(返回了约42个属性),但第二个用户却没有索引(返回了约75个属性)。 在总集合中,有很多没有,但是没有想要的字段。 我无法确定帐户中的任何差异。

它们在相同的OU中,并且在MMC的“属性”选项卡中显示相同的属性,并且值中包含数据,我将fields数组设置为空以返回全部,我尝试使用端口3268和389并使用ldap // 。 我什至尝试查询GC持有人与非GC持有人,但得到相同的结果。

DC是Windows Server 2016和带有Apache2的PHPv7。

$dc = 'domain controller';
$ds = ldap_connect('ldap//' . $dc . ':389');
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$ldap_bind = ldap_bind($ds, $ldap_un, $ldap_pwd);

$dn = "OU=$parent_ou,DC=<domain>,DC=com";

$filter = '';
$fields = array();
$attrs_only = 0; # default
$size_limit = 0; # unlimited
$time_limit = 0; # no limit
$deref = 0;

$sr = ldap_search($ds, $dn, $filter, $attrs_only, $size_limit, $time_limit, $deref);

$arr_entries = ldap_get_entries($sr);

查询连接,绑定并返回> 500个条目。

我希望为每个条目返回相同的属性,即使它们返回了NULL(not_set),但即使存在数据,它们的返回方式也不同。

谁能帮助我确定原因以及如何纠正它?

提前致谢。

似乎问题是权限。 显然我用来绑定的帐户没有足够的权限来获取数据。 现在,我必须找出为什么在三台服务器中的两台上采用这种方式。 有关更多信息,请访问AD访问控制

谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM