如何使用 Net::LDAP 修改布尔 LDAP Active Directory 属性?

问题描述 投票:0回答:1

我可以成功绑定到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
,这是不正确的;它应该使用“布尔值”,但我不知道如何让它做到这一点。

perl active-directory ldap netldap
1个回答
6
投票

有关 LDAP 中“布尔值”的有效值,请参阅轻量级目录访问协议 (v3):属性语法定义

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

查看属性并通过谷歌搜索发现

msExchHideFromAddressList
应该是
msExchHideFromAddressLists
<- note the plural s.

© www.soinside.com 2019 - 2024. All rights reserved.