我尝试为推送数据创建一些代码到Active Directory中。顺便说一句,我使用的是Zend Framerowk 2,对于目录服务,我使用的是Active Directory。我试图创建一些功能,将数据添加到Active Directory,但我遇到了问题。始终显示错误消息
错误消息
0x35(服务器不愿意执行; 0000209A:SvcErr:DSID-031A1081, 问题5003(WILL_NOT_PERFORM)
这是我的代码
$ldap = new Ldap($ldap_config);
$ldap->bind();
//add member user into role
$entry = array();
Attribute::setAttribute($entry, 'objectclass', 'top');
Attribute::setAttribute($entry, 'objectclass', 'person');
Attribute::setAttribute($entry, 'objectclass', 'organizationalPerson');
Attribute::setAttribute($entry, 'objectclass', 'user');
Attribute::setAttribute($entry, 'cn', '123ABCD');
Attribute::setAttribute($entry, 'distinguishedname', "CN=123ABCD,OU=Staff,DC=project,DC=company,DC=go,DC=id");
Attribute::setAttribute($entry, 'dn', "CN=123ABCD,OU=Staff,DC=project,DC=company,DC=go,DC=id");
Attribute::setAttribute($entry, 'instancetype', 4);
Attribute::setAttribute($entry, 'displayName', "FebryFairuz");
Attribute::setAttribute($entry, 'sAMAccountName', "123ABCD");
Attribute::setAttribute($entry, 'employeeID', "123ABCD");
Attribute::setAttribute($entry, 'givenName', "Febry");
Attribute::setAttribute($entry, 'mail', "febryfairuz@hotmail.com");
Attribute::setAttribute($entry, 'memberOf', "CN=Default,OU=Role,DC=project,DC=company,DC=go,DC=id");
$result_update = $ldap->add("CN=123ABCD,OU=Staff,DC=project,DC=company,DC=go,DC=id", $entry);
var_dump($result_update);
如果我删除Attribute::setAttribute($entry, 'memberOf', "CN=Default,OU=Role,DC=project,DC=company,DC=go,DC=id");
它运行良好并插入AD。但如果我试图添加memberOf的属性,我得到一个这样的错误。所以我的代码有问题吗?
或者我可以做些什么来解决这个问题?
我希望你能帮助我..
答案 0 :(得分:2)
您无法直接修改memberOf
属性,因为它是AD中的反向链接属性。您需要做的是修改组的member
属性并将用户添加到该属性。