通过ext / ldap将LDAP条目添加到Active Directory

时间:2008-12-15 16:05:17

标签: php active-directory ldap

使用ext / ldap我正在尝试将条目添加到Active Directory。只要我只使用一个结构objectClass,一切都按预期工作,但只要我尝试添加一个带有第二个辅助objectClass的条目,服务器就会报告错误:

  

服务器不愿意执行; 00002040:SvcErr:DSID-030F0AA0,   问题5003(WILL_NOT_PERFORM),数据   0

以下代码有效:

ldap_add($ldap, 'OU=Test,OU=Test,DC=domain,DC=example,DC=local', array(
    'ou' => 'Test',
    'objectClass' => 'organizationalUnit',
    'l' => 'location'
));

这不是:

ldap_add($ldap, 'OU=Test,OU=Test,DC=domain,DC=example,DC=local', array(
    'ou' => 'Test',
    'associatedDomain' => 'domain',
    'objectClass' => array('organizationalUnit', 'domainRelatedObject'),
    'l' => 'location'
));

如果我尝试将辅助objectClass添加到现有条目,也会发生同样的情况:

ldap_mod_add($ldap, 'OU=Test,OU=Test,DC=domain,DC=example,DC=local', array(
    'associatedDomain' => 'domain',
    'objectClass' => 'domainRelatedObject'
));

相应的错误消息基本相同

  

服务器不愿意执行;   00002040:SvcErr:DSID-030508F8,   问题5003(WILL_NOT_PERFORM),数据   0

由于所有其他更新和添加操作都有效,我认为问题必须与objectClass属性相关。

由于我对Active Directory的经验不足(我习惯使用OpenLDAP): Active Directory中的objectClasses是否存在任何已知问题?我在这里错过了什么吗?有没有任何限制,不允许添加,例如domainRelatedObjectorganizationalUnit?到底发生了什么事情; - )?

以防万一你想知道:domainRelatedObject存在于Active Directory架构中。

2 个答案:

答案 0 :(得分:2)

我刚刚发现,为了添加动态(每个实例)辅助类,forest functional level of the domain must be 2003

答案 1 :(得分:0)

您可能没有权限设置objectClass属性。查看是否可以在创建后通过ADSI Edit附加辅助类。如果不能,请先修复权限(查看“安全设置”的“高级”视图中的“属性”选项卡)

我现在可以将此特定类附加到organizationalUnit对象上,作为域管理员;原则上,这是可能的。