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

x
?
Solved

Import Distribution Lists from CSV into Exchange 2010

Posted on 2012-03-12
6
Medium Priority
?
9,715 Views
2 Endorsements
Last Modified: 2012-03-12
Hello,

I have a CSV file containing entries I would like to add to an Exchange Distribution List using Powershell. I have learned how to create a distribution list using Powershell, but still not sure how to add a list of entries into the Distribution List via Powershell.

I can create a distribution list like this and it works:

New-DistributionGroup -name "ITDepartment" -IgnoreNamingPolicy

Now that I have a Distribution Group, how do I add members into it using Powershell? Here is the structure of my CSV file, and it is located on my c: drive:

<Email>,<FullName>

How can I use PowerShell to add a line entry from this CSV file into the Distribution List I created? Then, how would I use PowerShell to add all entries from the CSV file?

Thanks for your help.

John
2
Comment
Question by:jhieb
[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
  • 3
  • 3
6 Comments
 
LVL 43

Accepted Solution

by:
Adam Brown earned 2000 total points
ID: 37710644
You would utilize the import-csv cmdlet and the add-distributiongroupmember cmdlets together to do this. Adding all the entries is a lot easier than just adding a single line from the CSV, so I'll just give you that one :D

import-csv <csv filename> | foreach {add-distributiongroupmember "ITDepartment" -member $_.email}

Open in new window


Basically, the import-csv cmdlet reads out each entry in the CSV file. The | character is a pipeline that pushes what is read from the import-csv cmdlet into whatever is next. Foreach tells the system that for each line read from the CSV file, do the following. Then we use add-distributiongroupmember against the ITDepartment List and add the member by using the pipelined email variable. $_.<attribute> is what does that.
0
 
LVL 1

Author Comment

by:jhieb
ID: 37710715
Thanks. I ran the command and it seems to have worked, but my members did not show up in the ITDepartment list. Do I need to delare column headers or something so that PowerShell knows the format of the CSV file? I don't understand how PowerShell will know which values to use, and this part of your example confuses me:

{add-distributiongroupmember "ITDepartment" -member $_.email}

How does this tell PS which columns are what?

Attached, is a sample CSV file.

Thanks.
dlist.txt
0
 
LVL 43

Assisted Solution

by:Adam Brown
Adam Brown earned 2000 total points
ID: 37710725
Yes, you do have to have a header line for the CSV to be readable.
add this to the top line of your CSV:

name,email
0
Ready for your healthcare security check-up?

In the past few years, healthcare organizations have become a prime target for advanced attacks. Does your organization have what it needs to defend itself? Schedule your healthcare security check-up today and download our free Healthcare Security Resource Kit today!

 
LVL 1

Author Comment

by:jhieb
ID: 37710794
Thanks. That worked and I was able to add two dlist members to the list. I get an error with this command. Do you know how to get rid of this error?



[PS] C:\>import-csv c:\temp\dlist.txt | foreach {add-distributiongroupmember "ITDepartment" -member $_.email}
Cannot validate argument on parameter 'Member'. The argument is null. Supply a non-null argument and try the command ag
ain.
    + CategoryInfo          : InvalidData: (:) [Add-DistributionGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Add-DistributionGroupMember

Cannot validate argument on parameter 'Member'. The argument is null. Supply a non-null argument and try the command ag
ain.
    + CategoryInfo          : InvalidData: (:) [Add-DistributionGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Add-DistributionGroupMember

[PS] C:\>
0
 
LVL 43

Expert Comment

by:Adam Brown
ID: 37710806
That means that the value read in from the CSV file didn't have any data in it. If you have any empty lines at the end of your CSV file, or if any line has a name but no email address it will do that.
0
 
LVL 1

Author Closing Comment

by:jhieb
ID: 37710854
I thought I needed a carriage return after each entry. It looks like all I need is a line entry. Thank you for the help. This works great!
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

How to deal with a specific error when using the Enable-RemoteMailbox cmdlet to create a mailbox in the cloud-based service, for an existing user in an on-premises Active Directory.
Want to know how to use Exchange Server Eseutil command? Go through this article as it gives you the know-how.
The basic steps you have just learned will be implemented in this video. The basic steps are shown to configure an Exchange DAG in a live working Exchange Server Environment and manage the same (Exchange Server 2010 Software is used in a Windows Ser…
Loops Section Overview
Suggested Courses

610 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