I am attempting to use Net::LDAPS so I can change Active Directory passwords (from an
earlier posting), but when I use "new" constructor, nothing is returned to my $ldaps
variable. When I run the script using "Net::LDAP" instead of "Net::LDAPS", the LDAP
hash is printed. Shouldn't "new Net::LDAPS" return a hash?
use Net::LDAPS;
$ldaps = new Net::LDAPS('myserver.example.com');
print "LDAPS:$ldaps\n";
Dan Swanson
Programmer / Analyst / System Admin
George Fox University
503.554.2576
-----Original Message-----
From: Christopher A Bongaarts [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 01, 2003 12:45 PM
To: Dan Swanson
Cc: [EMAIL PROTECTED]
Subject: Re: Password change in LDAP
In the immortal words of Dan Swanson:
> I have a Perl script using Net::LDAP to create new accounts in
> Microsoft Active Directory. Everything is working well except the
> password change (see output below). I am attempting to perform a
> ldap->modify(replace) which works well for other attributes, but not
> the password. I am getting a LDAP_UNWILLING_TO_PERFORM error. Has
> anyone encountered this error before?
AD requires that the connection be secure (LDAPS) and uses a specific
format for the password. If your password is in $password, this
should do it for you:
$newpassword = pack "v*", unpack "C*", qq("$password");
(It must be enclosed in literal double quotes, then put in UTF-16(?)
form.)
%% Christopher A. Bongaarts %% [EMAIL PROTECTED] %%
%% Internet Services %% http://umn.edu/~cab %%
%% University of Minnesota %% +1 (612) 625-1809 %%