Wow..that's good and bad to know :)

It sounds like I am going to have no other option but to learn 
Powershell...something I have been purposely putting off.

Is there any other way to do it besides Powershell?


Thanks

John


From: Yash Vartak [mailto:var...@vartakinc.com]
Sent: Monday, January 11, 2010 9:25 AM
To: Sheahan, John; 'perl-ldap@perl.org'
Subject: Re: Creating AD account and Exchange Account

Yes that's right setting attributes works fine for AD\Exchange 2003, but this 
method fails when you upgrade the setup to Exchange 2007.

ADSI\COM , and LDAP are not supported by Exchange 2007, Exchange 2007 is not as 
tightly integrated with AD as Exchange 2003, (as in Exchange 2007 you can't 
right click on a AD user and select create mailbox), you need to do it through 
a different Exchange 2007 console to create a mailbox for a AD user.)

Regards,
Yash


On 1/11/10 8:56 PM, "Sheahan, John" <john.shea...@priceline.com> wrote:
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:yash_var...@nol.com.sg]
Sent: Sunday, January 10, 2010 2:10 AM
To: Sheahan, John; 'perl-ldap@perl.org<perl-ldap@perl.org>'
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. 
j...@rallencorp.com
     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:john.shea...@priceline.com]
Sent: Wednesday, December 30, 2009 2:07 AM
To: 'perl-ldap@perl.org<perl-ldap@perl.org>'
Subject: Creating AD account and Exchange Account

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

john

Regards

Yash

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ph +65 9456 8179 | http://www.vartakinc.com




Reply via email to