Hello,
Today, I will show you how to manage MailContacts in an exchange 2007 / exchange 2013 co-existence scenario and also how to easily migrate your bulk mail contacts from Exchange 2007 to Exchange 2013 , this can also be applied to Exchange version 2010 where you plan to move up to 2013/2016 or when you have co-existence and have to toggle managing MailContacts between the higher and lower Exchange version.
Always Note:-
You cannot use a lower version of Exchange server to modify an Exchange object that was created/upgraded in a higher version of Exchange, and likewise, from a higher version of Exchange you will be first asked to upgrade that Exchange object to a higher version before you can modify it.
Common errors you will face:-
Exchange 2007
Or via powershell:-
From Exchange 2013 powershell when modifying a mailcontact originally created in Exchange 2007 you will get this warning:-
TIP:- Always check the Exchange version of the object that you need to modify or migrate, this will make things easier..
In powershell you can run:-
Get-recipient mytest@contoso.de | fl exchangeversion, name, externalemailaddress
This outputs the Exchange version – Exchange 2013 0.20 {15.0.0.0} for the external mailcontact menothappy@contoso.de
You can check the different Exchange versions on Microsoft technet link here – https://technet.microsoft.com/en-us/library/hh135098(v=exchg.150).aspx
To upgrade/migrate/modify a mailcontact that was created in Exchange 2007, we want to manage this mailcontact in our Exchange 2013 :-
Created in 2007:-
In Exchange 2013:-
We can run the following commands in Exchange Management Shell in Exchange 2013 to upgrade the mailcontact :-
- Get-MailContact ‘Happy, Me’ | fl ExchangeVersion,ExternalEmailAddress
- Get-mailcontact ‘Happy, Me’| Set-mailcontact -ExternalEmailAddress ‘mytest@contoso.de‘ -Force:$true
- Get-recipient ‘Happy, Me’ -ReadFromDomainController:$true| fl ExchangeVersion,ExternalEmailAddress
To do it from ECP Exchange 2013 (read and accept the warning message):-
Once completed you can now easily manage the mailcontact in 2013. Lets try to change the SMTP email address from mytest@contoso.de to menothappy@contoso.de :-
We can do it easily, no more warnings no more errors and in future we can easily change/modify/delete the mailcontact from Exchange 2013.
For Migrating mailcontacts in bulk, you can first use the commands I have provided above to gather information for their ExternalEmailAddress , displayname, put them all in a CSV, name the columns ExternalEmailAddress, DisplayName, then add your mailcontacts external emailaddress and their display names.
You can modify the powershell command above to something like:-
Import-CSV “D:\mycontactsbulk.csv” | foreach {Set-MailContact $_.DisplayName -ExternalEmailAddress $_.ExternalEmailAddress -Force:$true}
First test it with 1 contact and get the results and then you can do it in bulk.