perl - 如何使用 Net::LDAP 修改 bool LDAP Active Directory 属性?

标签 perl active-directory ldap netldap

我可以成功绑定(bind)到 AD LDAP,并修改和创建对象。

但是,如果我想更新或设置“ bool ”类型的属性,则会收到以下错误:

00000057: LdapErr: DSID-0C090C3E, comment: Error in attribute conversion operation, data 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类型为 stringint这是不正确的;它应该使用“ bool ”,但我看不出如何让它做到这一点。

最佳答案

根据 LDAP 规范; “TRUE”、“True”、“true”等字符串值均有效。

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

查看属性并在谷歌上搜索显示 msExchHideFromAddressList应该是 msExchHideFromAddressLists <- 注意复数 s。

关于perl - 如何使用 Net::LDAP 修改 bool LDAP Active Directory 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770259/

相关文章:

Perl 进程文件句柄

perl - 如何在perl脚本中正确使用fetchrow_arrayref?

active-directory - dsmod 或其他命令来编辑 AD 用户属性(街道、邮政信箱、城市、州、邮政编码)

Django LDAP 与 OpenWisp Django-IPAM

java - 使用 JNDI 的 LDAP 身份验证

Apache subversion LDAP 组访问 1 个存储库内的每个文件夹

perl - 使所需脚本使用另一个所需脚本中的变量

perl - 为什么这个密码检查没有按预期工作?

c++ - ldap_search 函数成功。但是 ldap_count_entries 给出零(0)?

Azure AD B2C 更改租户名称