如何使用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::ASN1stringint类型是不正确的; 它应该使用'布尔',但我看不出如何使它做到这一点。


根据LDAP规范; 字符串值“TRUE”,“True”,“true”等都是有效的。

未知属性或该用户不可用的属性将抛出“错误属性转换操作”错误。

查看属性并使用它们显示msExchHideFromAddressList应该是msExchHideFromAddressLists < - 注意复数。

链接地址: http://www.djcxy.com/p/23283.html

上一篇: How do I modify a Boolean LDAP Active Directory attribute using Net::LDAP?

下一篇: CruiseControl.NET Infinite Loop on ForceBuild