My guess is that this is more of an IIS 6.0 Security issue but I thought I'd ask some PERL gurus to look through the PERL first.
I've written a script that resets the password for a user in our Active Directory for our help desk folks. The script works fine from several computers and works when executed from the command line on the web server. However, when it is executed as CGI from the web server one of the OLE commands (GetObject) doesn't return a value...it should return a hash. It's the line that contains: my $u = Win32::OLE->GetObject($ADsPath). If I put a die statement here the entire script will die. 1) Does the code look good? Its possible that the connection information isn't working but the script works anyway when I'm logged into the console running it via the command line. 2) Does anyone know what the Win32::OLE->GetObject is doing on the server? If the code is good, my guess is that this command is trying to use some resource that I must allow the web server user to access.. Thanks in advance for any light you may be able to shed. Here's a snippet of the code: ###--Create LDAP Connection to Active Directory my $adsinamespaces = CreateObject OLE 'ADsNameSpaces' || die "couldn't create"; my $ldapnamespace= $adsinamespaces->getobject("","LDAP:")||die "didn't work"; my $userdsobject=$ldapnamespace->OpenDSObject("LDAP://$server/OU=Users,dc=wsc,d c=western,dc=edu","cn=$admin,ou=Domain Admins,OU=Users,dc=wsc,dc=western,dc=edu",$admin_password,1)||die "didn't connect"; ###--Bind to specific user account my $ADsPath="LDAP://CN=$user,OU=$ou,OU=Users,DC=WSC,DC=western,DC=edu"; ####---------------The next line fails-------------############## if (my $u = Win32::OLE->GetObject($ADsPath)) { $u->SetPassword( $pass ); $u->Put("pwdLastSet", 0); $u->SetInfo(); print qq( <h3><strong>Password Reset</strong></h3> <p><font face="Arial, Helvetica, sans-serif">The password for $user has been reset to: <strong>$pass</strong> </font></p>); } else {print qq( <h3><strong>Error!</strong></h3> <p><font face="Arial, Helvetica, sans-serif">I could not locate $user in the $ou Organizational Unit (OU). <br> u was |$u| <br> adspath was |$ADsPath| <br> userdsobject was |$userdsobject| <br> adsinamespaces was |$adsinamespaces| <br> ldap was |$ldapnamespace| </font></p> ); } ----------------------------------------- Mike Garner Computer Services, WSC [EMAIL PROTECTED] 970.943.3123 (voice) 970.943.7069 (fax)