Migrate to 2010 Exchange, Distribution groups wrong.

We recently migrated over about 500 mailboxes to Exchange 2010 from another domain.

Some of the users have set up their own distribution lists on the old exchange server.  While they were brought over, any internal names are still trying to access the mailboxes by the name of their location in the old exchange server.

Is there any way to automate updating these lists? I am sure we could just delete and recreate, or even export, fix, import, but both of these would take days with all these users.

Thanks for any suggestions.
LVL 1
TacoFlavoredKissesAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

MegaNuk3Commented:
What are these DLs? Were they in the old GAL or were they within user's Contacts folders within their mailboxes? (Personal DLs)?

Have these DLs been migrated over and if so how?
TacoFlavoredKissesAuthor Commented:
They were in the users Contacts folders.

We did an exmerge of the data from the old exchange server to the new one.  I am not sure if these DLs would have been included in that or if not.  I assume so unless the users exported and imported them.
MegaNuk3Commented:
I am sure exmerge would of copied them over. What do these DLs contain? Other contacts from the users Contacts folder or contacts and mailboxes from the GAL?
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

TacoFlavoredKissesAuthor Commented:
The DLs contain both internal and external addresses.  All the external ones go out without issue.  The internal ones bounce, saying of course they can not find the mailbox at the location they were on the old mail server.
MegaNuk3Commented:
Import the old legacyExchangedn values of the mailboxes onto the new mailboxes as X500 email addresses then then DLs will work and replying to old emails.
MegaNuk3Commented:
Here is a link to a script that will make your life a lot easier:

http://blogs.technet.com/mbaher/archive/2008/02/17/auto-complete-reply-ability-i-need-my-x500.aspx 
TacoFlavoredKissesAuthor Commented:
That script looks great, and I have exported the aliases and x400 addresses from 2003 exchange.

When I try to import them into 2010 however I get an error:
Property 'EmailAddresses' cannot be found on this object; make sure it exists and is settable.
MegaNuk3Commented:
I think the script needs slight modification to work on Exchange 2010, try the one below
Import-CSV d:\sbs.csv | foreach { 
$Temp = Get-Mailbox -identity $_.alias 
$Temp.EmailAddresses += “X500:” + $_.legacyexchangedn 
set-mailbox -identity $Temp -EmailAddresses $Temp.EmailAddresses}

Open in new window

TacoFlavoredKissesAuthor Commented:
Property 'EmailAddresses' cannot be found on this object; make sure it exists and is settable.
At C:\cax.ps1:3 char:7
+ $Temp. <<<< EmailAddresses += "X500:" + $_.legacyexchangedn
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "System.Collections.ArrayList" value
 of type "System.Collections.ArrayList" to type "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter".
    + CategoryInfo          : InvalidData: (:) [Set-Mailbox], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-Mailbox
MegaNuk3Commented:
Can you post the first 2 lines of your csv file?

If you try get-mailbox -identity <alias from file> does it return anything?
TacoFlavoredKissesAuthor Commented:
alias,legacyexchangedn
auser,X400:c=US;a= ;p=STORE;o=Exchange;s=User;g=Alex;


Yes, If I put that in it does work.
Name                      Alias                ServerName       ProhibitSendQuota
---                      -----                ----------       -----------------
Alex User              auser              comex14         unlimited
MegaNuk3Commented:
That's not a legacyExchangeDN

legacyExchangeDN's look like this:
/o=Orgname/ou=AdminGroup/cn=Recipients/cn=MbxName

Find AUser's with ADSIEDIT and then put it in the file and it should work
TacoFlavoredKissesAuthor Commented:
I misunderstood the article.  I think I've got it now.  Will test this out tomorrow.  Thanks.
TacoFlavoredKissesAuthor Commented:
Alright, trying to import the correct values now, but still getting the error:


Property 'EmailAddresses' cannot be found on this object; make sure it exists and is settable.
At C:\cax.ps1:3 char:7
+ $Temp. <<<< EmailAddresses += "X500:" + $_.legacyexchangedn
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "System.Collections.ArrayList" value
 of type "System.Collections.ArrayList" to type "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter".
    + CategoryInfo          : InvalidData: (:) [Set-Mailbox], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-Mailbox
MegaNuk3Commented:
try it with just 2 lines in your .csv file:
1.) the header line (alias, legacyexchangeDN)
2.) alias and legacyexchangedn of the mailbox

can you post the first 2 lines of your csv file again please?
MegaNuk3Commented:
Does the object you are trying to add the X500 address to have e-mail addresses?

If you type
get-mailbox -identity auser |fl DislayName,Alias,EmailAddresses

does it return value for DisplayName, Alias & EmailAddresses?
TacoFlavoredKissesAuthor Commented:
[PS] C:\>get-mailbox -identity auser |fl DislayName,Alias,EmailAddresses


Alias          : auser
EmailAddresses : {SMTP:UserA@domain.org}
MegaNuk3Commented:
sorry that should of been DisplayName

Are you typing in the script manually into EMS or have you created a .ps1 file? It should work either way, I have tested it both ways and it is adding X500 addresses to my test mailboxes...
TacoFlavoredKissesAuthor Commented:
We tried a ps1.

If we use the following just typing it in it works:

$Temp = Get-Mailbox auser
$dn = "LDAP://" + $Temp.distinguishedname;
$obj = [ADSI]$dn;
$obj.ProxyAddresses +=  “X500:” + thepath
$obj.setinfo()
TacoFlavoredKissesAuthor Commented:
Nevermind.  It did not error, but I don't see the value in ADSIEdit
MegaNuk3Commented:
paste this code into say AddX500.ps1 put it in directory called maybe c:\X500

Change the path to the .csv file in the first line so it matches where your. csv file is, maybe put it in c:\X500 too

then open EMS on Exchange 2010 and type
c:\x500\AddX500.ps1
then press enter
you shouldn't get any errors
then do
get-mailbox -identity auser |fl DisplayName,Alias,EmailAddresses
and the user should now have an X500 address, do they not?
Import-CSV d:\sbs.csv | foreach { 
$Temp = Get-Mailbox -identity $_.alias 
$Temp.EmailAddresses += “X500:” + $_.legacyexchangedn 
set-mailbox -identity $Temp -EmailAddresses $Temp.EmailAddresses}

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
MegaNuk3Commented:
Thanks for the points, did the script work and resolve your distribution list issue?
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Exchange

From novice to tech pro — start learning today.