Solved

mail enabled contacts script

Posted on 2010-09-08
8
876 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
  • 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
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 

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

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

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

In this article, I am going to show you how to simulate a multi-site Lab environment on a single Hyper-V host. I use this method successfully in my own lab to simulate three fully routed global AD Sites on a Windows 10 Hyper-V host.
Read this checklist to learn more about the 15 things you should never include in an email signature.
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 shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

839 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