使用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是否存在任何已知问题?我在这里错过了什么吗?有没有任何限制,不允许添加,例如domainRelatedObject
到organizationalUnit
?到底发生了什么事情; - )?
以防万一你想知道:domainRelatedObject
存在于Active Directory架构中。
答案 0 :(得分:2)
我刚刚发现,为了添加动态(每个实例)辅助类,forest functional level of the domain must be 2003。
答案 1 :(得分:0)
您可能没有权限设置objectClass属性。查看是否可以在创建后通过ADSI Edit附加辅助类。如果不能,请先修复权限(查看“安全设置”的“高级”视图中的“属性”选项卡)
我现在可以将此特定类附加到organizationalUnit对象上,作为域管理员;原则上,这是可能的。