Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

mail enabled contacts script

Posted on 2010-09-08
8
Medium Priority
?
892 Views
Last Modified: 2012-05-10
I need a script to create a few hundred mail enabled contacts in AD. Anyone have an easy scrip to accomplish this? I will have all the names in a .csv for the script to call upon.

Thxs
0
Comment
Question by:KratosDefense
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
8 Comments
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 33632720
Take a look at this PAQ as it should help with this process...
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_22015257.html

Hope this helps~!
0
 
LVL 5

Expert Comment

by:MaxSoullard
ID: 33634896
Hi
Can you give a line of your csv, so I can create a script that can use it
0
 
LVL 5

Expert Comment

by:MaxSoullard
ID: 33635185
Try this code. The source csv is expected to be:

contact name,email@domain.com,description

Just instantiate the following variables:

strSourceFile = "SOURCE FILE PATH"
strContainer = "OU=Suppliers"


Const ForReading = 1

strSourceFile = "SOURCE FILE PATH"
strContainer = "OU=Suppliers" ' Insert the name of the OU where the accounts will be created

' Section to attach to Active Directory
Set objRoot = GetObject("LDAP://rootDSE")
strDNS = objRoot.Get("defaultNamingContext")
Set objDomain = GetObject("LDAP://" & strDNS)

'Reads the Source file
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strSourceFile, ForReading)
strAllLines = objFile.ReadAll
objFile.Close

arrLines = Split(strAllLines,VbCrLf)

For Each strLine In arrLines
	If strLine <> "" Then
		arrDetails = split(strLine,",")
		strContactName = "cn=" & arrDetails(0)
		strMail = arrDetails(1)
		strDescription = arrDetails(2)
		' Section to create the contact
		Set objOU = GetObject("LDAP://"& strContainer & "," & strDNS)
		Set objUser = objOU.Create("contact", strContactName)
		objUser.Put "Description", strDescription
		objUser.Put "Mail", strMail
		' Section to prevent errors caused by blank email address
		If strMail <> "" Then
			objUser.SetInfo
		End If
	End If
Next

Open in new window

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:KratosDefense
ID: 33638889
Max, here is an example of the .csv. I have 4 fields, givenname, sn, displayname, mail.

will this work with the script you provided?
contact.jpg
0
 
LVL 5

Expert Comment

by:MaxSoullard
ID: 33644551
This should work with your CSV, please try it first on a test environment. Let me know how it goes.
Const ForReading = 1

strSourceFile = "SOURCE FILE PATH"
strContainer = "OU=Suppliers" ' Insert the name of the OU where the accounts will be created

' Section to attach to Active Directory
Set objRoot = GetObject("LDAP://rootDSE")
strDNS = objRoot.Get("defaultNamingContext")
Set objDomain = GetObject("LDAP://" & strDNS)

'Reads the Source file
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strSourceFile, ForReading)
strAllLines = objFile.ReadAll
objFile.Close

arrLines = Split(strAllLines,VbCrLf)

For Each strLine In arrLines
	If strLine <> "" Then
		arrDetails = split(strLine,",")
		
		strContactName = "cn=" & arrDetails(2)
		strFirstName = arrDetails(0)
		strLastName = arrDetails(1)
		strMail = arrDetails(3)
		' Section to create the contact
		Set objOU = GetObject("LDAP://"& strContainer & "," & strDNS)
		Set objContact = objOU.Create("contact", strContactName)
		objContact.Put "Mail", strMail
        objContact.Put "givenName", strFirstName
        objContact.Put "sn", strLastName
		' Section to prevent errors caused by blank email address
		If strMail <> "" Then
			If InStr(strMail, "@")Then
				objContact.SetInfo
			End If
		End If
	End If
Next

Open in new window

0
 

Author Comment

by:KratosDefense
ID: 33651281
Max I ran the script, it created the contact object; however, it doesnt mail-enable them. Is it possible to have the script mail enable the contacts or is that something Im going to need to do through exchange/AD? Im running exchange 2003; unfortunatly, doesnt look like I can select multiple contacts and mail enable them; need to do it one by one. Hola and thxs
0
 
LVL 5

Accepted Solution

by:
MaxSoullard earned 2000 total points
ID: 33661669
try now
Const ForReading = 1

strSourceFile = "SOURCE FILE PATH"
strContainer = "OU=Suppliers" ' Insert the name of the OU where the accounts will be created

' Section to attach to Active Directory
Set objRoot = GetObject("LDAP://rootDSE")
strDNS = objRoot.Get("defaultNamingContext")
Set objDomain = GetObject("LDAP://" & strDNS)

'Reads the Source file
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strSourceFile, ForReading)
strAllLines = objFile.ReadAll
objFile.Close

arrLines = Split(strAllLines,VbCrLf)

For Each strLine In arrLines
	If strLine <> "" Then
		arrDetails = split(strLine,",")
		
		strContactName = "cn=" & arrDetails(2)
		strFirstName = arrDetails(0)
		strLastName = arrDetails(1)
		strMail = arrDetails(3)
		If strMail <> "" Then
			If InStr(strMail, "@")Then
				' Section to create the contact
				Set objOU = GetObject("LDAP://"& strContainer & "," & strDNS)
				Set objContact = objOU.Create("contact", strContactName)
				objContact.Put "Mail", strMail
		        objContact.Put "givenName", strFirstName
		        objContact.Put "sn", strLastName
				' Section to prevent errors caused by blank email address
				objContact.SetInfo
				
				Set objRecip = objContact
				FwdAddress = "smtp:" & strMail
				objRecip.MailEnable FwdAddress
				objContact.SetInfo
			End If
		End If
	End If
Next

Open in new window

0
 

Author Closing Comment

by:KratosDefense
ID: 33686363
thxs
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Are you an Exchange administrator employed with an organization? And, have you encountered a corrupt Exchange database due to which you are not able to open its EDB file. This article will explain all the steps to repair corrupt Exchange database.
Here in this article, you will get a step by step guidance on how to restore an Exchange database to a recovery database. Get a brief on Recovery Database and how it can be used to restore Exchange database in this section!
In this Micro Video tutorial you will learn the basics about Database Availability Groups and How to configure one using a live Exchange Server Environment. The video tutorial explains the basics of the Exchange server Database Availability grou…
This video discusses moving either the default database or any database to a new volume.
Suggested Courses

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question