Solved

Exchange 2007 Import multivalued proxyaddresses

Posted on 2010-08-20
9
1,547 Views
Last Modified: 2012-06-22
I have a csv containing an alias, and a proxyaddresses field which was from an AD dump.

I need a script to ADD (not replace) all of the addresses listed in the proxyaddresses field.  Some only have a few addresses, some have many.

I have several hundred distributiongroups that I have to add these two so I don't want to do it by hand.

I have sampled the following below but it doesn't like the fact that it has multiple values in the proxyaddress field.

Import-CSV C:\bah8.csv | foreach {
$Temp = Get-DistributionGroup -identity $_.alias
$Temp.EmailAddresses += $_.proxyaddresses
set-distributiongroup -instance $temp}

I have also tried removing the smtp: and replacing the ; with a comma, but it still thinks it's invalid.
Please advise!
0
Comment
Question by:adkwinadmin
  • 4
  • 4
9 Comments
 
LVL 32

Expert Comment

by:endital1097
Comment Utility
you need to run
Set-Distribution $temp -EmailAddresses $temp.EmailAddresses
0
 

Author Comment

by:adkwinadmin
Comment Utility
Also, here is a sample of the CSV format:

alias,proxyAddresses
abuse,smtp:abuse@domainA.com;smtp:testman@domainB.com
0
 
LVL 4

Expert Comment

by:crimmel
Comment Utility
First off, Set-DistributionGroup is what you want to use.  Not Set-Distribution.

Second, the collection of proxyAddresses needs to have a primary address for each address type.  You indicate primary by capitalizing the type.  Using your example above, it should read like this:

alias,proxyAddresses
abuse,SMTP:abuse@domainA.com;smtp:testman@domainB.com

Notice that the first SMTP in the list is now capitalized.
0
 

Author Comment

by:adkwinadmin
Comment Utility
I just want to add these smtp addresses to the pertaining distribution group, I don't want to change the primary address that has been laid down by the policy.  
0
The problems with reply email signatures

Do you wish that you could place an email signature under a reply? Well, unfortunately, you can't. That great Exchange/Office 365 signature you've created will just appear at the bottom of an email chain. What a pain! Is there really no way to solve this? Well, there might be...

 
LVL 32

Accepted Solution

by:
endital1097 earned 500 total points
Comment Utility
ahh, thanks


Import-CSV C:\bah8.csv | foreach {

$Temp = Get-DistributionGroup -identity $_.alias

$proxys = $_.proxyaddresses.split(";")

foreach($p in $proxy) { $Temp.EmailAddresses += $p }

set-distributiongroup $temp -EmailAddresses $temp.emailaddresses }

Open in new window

0
 
LVL 32

Expert Comment

by:endital1097
Comment Utility
because your csv has multivalues you need to create an array variable by splitting the value using your separator
hence split(";")
then you need to add each value of the array
0
 

Author Comment

by:adkwinadmin
Comment Utility
endital1097, when i run your script I get the following:

Exception setting "EmailAddresses": "Cannot convert value "System.Object[]" to
type "Microsoft.Exchange.Data.ProxyAddressCollection". Error: "Value cannot be
null.
Parameter name: item""
At C:\bah8.csv.ps1:4 char:31
+ foreach($p in $proxy) { $Temp. <<<< EmailAddresses += $p }
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException
0
 
LVL 32

Expert Comment

by:endital1097
Comment Utility
sorry i had a typo
should be $p in $proxys
forgot the s
0
 

Author Closing Comment

by:adkwinadmin
Comment Utility
Fantastic work!  Please use this solution as well as your typo correction.  I cannot believe that nobody else has requested this type of solution for an AD dump and import.

But you saved me HOURS of work!  Thanks!!
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Utilizing an array to gracefully append to a list of EmailAddresses
Find out how to use Active Directory data for email signature management in Microsoft Exchange and Office 365.
To show how to generate a certificate request in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.:  First we need to log into the Exchange Admin Center. Navigate to the Servers >> Certificates…
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…

763 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now