我可以成功綁定到AD LDAP,並修改和創建對象。如何使用Net :: LDAP修改布爾LDAP活動目錄屬性?
但是,如果我想更新或設置類型「布爾」的屬性,然後我得到這個錯誤:
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
的類型爲string
或int
,這是不正確的;它應該使用'布爾',但我看不出如何使它做到這一點。
我得到:''Bareword'true'不允許使用'strict subs'' Perl顯然沒有定義這個常量。引用的小寫字母與引用的大寫字母給出了相同的錯誤。 – 2014-11-06 01:44:54
您是否嘗試將值設置爲布爾文字? – Stephen 2014-12-02 08:52:41
Perl沒有布爾數據類型。我添加了布爾模塊,但這也沒有幫助。嘗試了1,-1,0xff,0xffff,0xffffffff,'true','True','TRUE',仍然有相同的屬性轉換錯誤。 – 2014-12-03 19:27:37