我可以成功绑定到AD LDAP,并修改和创建对象。
但是,如果我想更新或设置类型'布尔'的属性,那么我会收到此错误:
00000057:LdapErr:DSID-0C090C3E,注释:属性转换操作出错,数据0,v1db1
这是一段负责的Perl代码:
$rv = $ldap->add($dn, attr=> [
cn => [$u],
objectClass => [ 'top','person', 'organizationalPerson', 'contact' ],
displayName => "$u Mailing List",
mail => $email,
name => $u,
mailNickname => $local,
proxyAddresses => [
"SMTP:$email",
"smtp:$local\@$SERVERDOM",
],
givenName => $u,
targetAddress => "SMTP:$email",
internetEncoding => 1310720,
msExchAddressBookFlags => 1,
msExchModerationFlags => 6,
msExchProvisioningFlags => 0,
msExchHideFromAddressList => 'TRUE',
msExchBypassAudit => 'FALSE',
msExchMailboxAuditEnable => 'FALSE',
]);
问题是最后三个属性;如果他们被评论出来,那么它是有效的。我尝试使用0和1代替' TRUE'并且' FALSE'但我得到同样的问题。似乎Net::LDAP
代码调用Convert::ASN1
的{{1}}或string
类型不正确;它应该使用' boolean',但我看不出如何做到这一点。
答案 0 :(得分:4)
根据LDAP规范;字符串值为" TRUE"," True"," true"等都是有效的。
未知属性或该用户无法使用的属性会在属性转换操作中出现错误'错误。
查看属性并使用Google搜索显示msExchHideFromAddressList
应为msExchHideFromAddressLists
< - 注意复数s。