1

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

服务器不愿意执行;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 架构中。

4

2 回答 2

2

我刚刚发现,为了添加动态(每个实例)辅助类,域的森林功能级别必须是 2003

于 2008-12-15T21:41:15.990 回答
0

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

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

于 2008-12-15T17:47:21.610 回答