Posso collegarmi correttamente a LDAP AD e modificare e creare oggetti.Come si modifica un attributo Booleano Active Directory LDAP utilizzando Net :: LDAP?
Tuttavia, se voglio aggiornare o impostare un attributo di tipo 'booleano', allora ottengo questo errore:
00000057: LdapErr: DSID-0C090C3E, comment: Error in attribute conversion operation, data 0, v1db1
Ecco un pezzo di codice Perl responsabile:
$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',
]);
Il problema sono gli ultimi tre attributi; se sono commentati, allora funziona. Ho provato a utilizzare 0 e 1 invece di "VERO" e "FALSO", ma ottengo lo stesso problema. Sembra che il codice Net::LDAP
chiama Convert::ASN1
con un tipo di string
o int
che non è corretto; dovrebbe usare 'boolean', ma non riesco a vedere come farlo.
Ottengo: 'Bareword" true "non consentito mentre" strict subs "in uso' Perl apparentemente non ha questa costante definita. La minuscola citata dà lo stesso errore del maiuscolo citato. –
Hai provato a impostare i valori su valori booleani? – Stephen
Perl non ha un tipo di dati booleani. Ho aggiunto il modulo booleano ma non è stato d'aiuto. Ho provato 1, -1, 0xff, 0xffff, 0xffffffff, 'true', 'True', 'TRUE', ancora lo stesso errore di conversione di attributo. –