RE: Creating AD account and Exchange Account

"Sheahan, John" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.ldap
Message-ID <09F205C089889344BDDB6FB253D417215949FD2F21@NW-E2K7-ECL1.corp.pcln.com>
Thanks a lot Yash.

I was able to create both the AD and Exchange 2003 account from my Perl script using Net Ldap.

Are you saying that you think this won't work once I eventually go to Exchange 2007?

Thanks

john



From: Vartak, Yash V [mailto:[email protected]]
Sent: Sunday, January 10, 2010 2:10 AM
To: Sheahan, John; '[email protected]'
Subject: RE: Creating AD account and Exchange Account


John,



Sorry for replying this mail so late, I saw it just a day back.

I guess you have had trouble while creating a exchange 2007 mailbox with AD using perl



Below is a sample code, this would create a AD active user UAC 512



$ADS_UF_NORMAL_ACCOUNT=512



sub Make_User {

      my ($objConn, $emplid, $ntID, $cn, $dn, $displayName,

            $m_server, $s_grp, $g_name, $sn, $grp, $ou,

            $dn, $company, $type, $mail, $pwd, $success) = @_;

      my ($ADS_UF_NORMAL_ACCOUNT, $objParent, $objUser);

      print LOG "make_user starting Success = $success\n" if ($debug);

      use Win32::OLE;

      Win32::OLE->Option(Warn => 2);



      # Taken from $ADS_USER_FLAG_ENUM



      print "DN = $dn\n CN = $cn\n" if($debug);

      $ADS_UF_NORMAL_ACCOUNT = 512;

      # Create base user account

      $objParent = Win32::OLE->GetObject("LDAP://".$dn);

      $objUser   = $objParent->Create("user", $cn); # e.g. joes

      $objUser->Put('sAMAccountName' , $ntID);   # e.g. joes

      $objUser->Put('userPrincipalName' , $ntID. "\@ad.xyz.com"); # e.g. [email protected]

      if (($g_name) && ($g_name ne $sn)) {

         $objUser->Put('givenName', $g_name);   # e.g. Joe

      }

      $objUser->Put("sn", $sn);           # e.g. Smith

      $objUser->Put("displayName", $displayName); # e.g. Joe

      $objUser->SetInfo;

      if (Win32::OLE->LastError) {

         $success = 0;

      }

      # set the password, enable the account & set VPN access

      $objUser->SetPassword($pwd);

      $objUser->Put("userAccountControl", $ADS_UF_NORMAL_ACCOUNT);

      $objUser->Put("pwdLastSet", '0');

      $objUser->Put("company", $company);

      #set dial access

      if (($grp) and ($grp ne "512")) {

         $objUser->Put('msNPAllowDialin', "TRUE");

      }

      $objUser->SetInfo;

      if (Win32::OLE->LastError) {

         $success = 0;

      }

   } # end Make_User



Once you are done with creating a active user .. use external powershell to create a mail box, I know this is cumbersome but only reliable way to create a mail box on Exchange 2007.



enable_nt_mb.ps1  is a external power shell script to mail enable and existing nt id it take ntid , mailserver, storagegrp as command line paramenters



      my $yCmd="powershell -command \"& {d:\\enable_nt_mb.ps1 $ntID $m_server $s_grp}\"";

       my $opCmd=`$yCmd`;



Something on these lines.



Regards,

Yash Vartak





-----Original Message-----
From: Sheahan, John [mailto:[email protected]]
Sent: Wednesday, December 30, 2009 2:07 AM
To: '[email protected]'
Subject: Creating AD account and Exchange Account



Has anyone been able to create the AD and Exchange Account from a perl script?



john
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.