如何使用Net :: LDAP修改布尔LDAP活动目录属性?
我可以成功绑定到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
的string
或int
类型是不正确的; 它应该使用'布尔',但我看不出如何使它做到这一点。
根据LDAP规范; 字符串值“TRUE”,“True”,“true”等都是有效的。
未知属性或该用户不可用的属性将抛出“错误属性转换操作”错误。
查看属性并使用它们显示msExchHideFromAddressList
应该是msExchHideFromAddressLists
< - 注意复数。
上一篇: How do I modify a Boolean LDAP Active Directory attribute using Net::LDAP?