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'
> 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'
> 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