使用PHP基于ObjectGUID从LDAP读取

使用PHP基于ObjectGUID从LDAP读取,php,filter,active-directory,ldap,guid,Php,Filter,Active Directory,Ldap,Guid,我已经为我们的广告环境创建了一个基于web的管理系统。我当前在尝试读取基于objectguid的目录项时遇到问题。这可能吗 我可以做一些类似的事情: $filter = "(&(objectclass=*)(objectguid=$objectguid))"; $search = ldap_read($ds, $dn, $filter); 其中$dn类似于CN=Test、OU=Group、DC=OCJ、DC=Domain、DC=Com。所以我知道它接受guid,但我想跳过$dn部分,只

我已经为我们的广告环境创建了一个基于web的管理系统。我当前在尝试读取基于objectguid的目录项时遇到问题。这可能吗

我可以做一些类似的事情:

$filter = "(&(objectclass=*)(objectguid=$objectguid))";
$search = ldap_read($ds, $dn, $filter);
其中$dn类似于CN=Test、OU=Group、DC=OCJ、DC=Domain、DC=Com。所以我知道它接受guid,但我想跳过$dn部分,只读取guid


有什么建议吗?我找不到任何表示可以使用GUID直接读取的内容。

若要仅读取GUID,请提供第三个参数来控制要返回的属性。第二个$dn参数是必需的,它指定搜索范围,如果您不想太具体,可以将其设置为root\u dn

如果您不希望结果集数组中有dn条目,这是不可能的,因为这是ldap_read函数的API,但是您可以通过遍历数组(map)将它们过滤掉


您还可以通过GUID进行绑定。将$dn设置为

,如上所述,我已经获得了GUID。我正在尝试仅基于guid读取条目,而不使用完整DN或只提供极端的基本DN。所以,DC=OCJ,DC=Domain,DC=Com,并按guid进行过滤(这没有给我任何东西),但得到所有属性。我得到了。我使用ldap_搜索而不是ldap_读取。谢谢你的帮助!修正-显然,在我逃脱之前,该网站没有在尖括号中显示这些内容。
$search = ldap_read($ds, $root_dn, $filter, array('objectguid'));