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