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