in reply to convert VBscript to Perl

I downloaded this code last year - can't remember where I got it, and I haven't used it but this may accomplish what you want:
use strict; use Net::LDAP; #-----------------------------------------------# # Customize for your own environment, # connect and authenticate #-----------------------------------------------# my $dc = 'dc1'; my $user = 'administrator@mycorp.com'; my $passwd = 'Adminpasswd'; my $dn = "cn=jdoe,cn=users,dc=mycorp,dc=com"; my $ldap = Net::LDAP->new($dc) or die "$@\n"; my $rc = $ldap->bind( $user, password => $passwd); die $rc->error if $rc->code; #----------------------------------------------# # Modify several attributes #---------------------------------------------# print "Setting givenname, sn and mail...\n"; $rc = $ldap->modify($dn, changes => [ add => [ givenname => "Johnny" ], add => [ sn => "Doh"], add => [ mail => 'jdoe@mycorp.com'], ]); die $rc->error if $rc->code; print "Changing givenname to John...\n"; $rc = $ldap->modify($dn, replace => { givenname => "John" }); die $rc->error if $rc->code; print "Deleting the mail attribute...\n"; $rc = $ldap->modify($dn, delete => [ 'mail' ]); die $rc->error if $rc->code; print "Setting the telephoneNumber and sn...\n"; $rc = $ldap->modify($dn, changes => [ add => [ telephoneNumber => '555-123-456 +7'], replace => [ sn => 'Doe'], ]); die $rc->error if $rc->code; print "\nModifications successful\n"; $ldap->unbind;

     "There are only two truly infinite things. The universe and stupidity, and I'm not too sure about the universe"- Albert Einstein

Replies are listed 'Best First'.
Re^2: convert VBscript to Perl
by softworkz (Monk) on Apr 26, 2005 at 17:44 UTC
    ++ for the help!

    I figured out how to do this via Perl, below is the code
    #!/usr/bin/perl -w use strict; use Win32::OLE; $Win32::OLE::Warn = 3; # Taken from $ADS_USER_FLAG_ENUM my $ADS_UF_NORMAL_ACCOUNT = 512; my $ADS_PROPERTY_APPEND = 3; my $NetId = "zeta28"; my $Name = "Zeta Jones"; my $FName = "Zeta"; my $LName = "Jones"; my $UserDir = "user12"; my $Pass = "S0mePass!"; my $objParent = Win32::OLE->GetObject("LDAP://OU=Domain Users, DC=HEAD +QUARTERS,DC=YOURCOMPANY,DC=com"); my $objUser = $objParent->Create("user", "cn=$Name"); $objUser->Put("sAMAccountName", "$NetId"); $objUser->SetInfo; $objUser->{AccountDisabled} = 0; $objUser->SetInfo; $objUser->SetPassword("$Pass"); $objUser->Put("mail", "$NetId".'@YOURCOMPANY'); $objUser->Put("givenName", "$FName"); $objUser->Put("sn", "$LName"); $objUser->Put("displayName", "$Name"); $objUser->Put("userPrincipalName", "$NetId".'@YOURCOMPANY'); $objUser->SetInfo; # add that user to the user12 global security group my $objGroup = Win32::OLE->GetObject("LDAP://CN=$UserDir, OU=Domain Us +ers, DC=HEADQUARTERS,DC=YOURCOMPANY,DC=com"); $objGroup->PutEx ($ADS_PROPERTY_APPEND, "member", ["cn=$Name,ou=domain + users, dc=HEADQUARTERS, dc=YOURCOMPANY, dc=com"]); $objGroup->SetInfo; # add that user to the general users group $objGroup = Win32::OLE->GetObject("LDAP://CN=General, CN=Users, DC=HEA +DQUARTERS,DC=YOURCOMPANY,DC=com"); $objGroup->PutEx ($ADS_PROPERTY_APPEND, "member", ["cn=$Name,ou=domain + users, dc=HEADQUARTERS, dc=YOURCOMPANY, dc=com"]); $objGroup->SetInfo;