In the first part of this series I had an overview ofExchange migration which can be found here.
In the second part of these series I will provide more abouthandling the transformation to UPN. When you decide to use e-mail addresses foryour UPN, you will need to make sure that you create the UPN from the usede-mail address of the user. Although this may seem trivial it may not be.Generally you will want to create the UPN from user’s alias attribute and the E-maildomain. However alias attribute is populated only once during the mailboxcreation and administrator can change the mail address of the user after it hasbeen created. In order to identity these account we need a script to comparethese values. The script will basically do the following:
First read all the mailboxes in the organization and loop onthem. Please note that you will need to put resultsize unlimited parameter toget the whole picture.
get-mailbox-resultsize unlimited | foreach{
Then you would need to get the e-mail addresses of the userinside the loop.
for ($i=0;$i -lt$_.EmailAddresses.Count; $i++)
Once you have the list, you will go through the list lookingfor address prefix SMTP which will give you the Primary SMTP address (Secondaryones will be given by smtp). Some of the users may have empty Email addressesso you need to check that condition also
$address =$_.EmailAddresses[$i]
$a=$address.AddressString.ToString()
if($address.PrefixString -eq "SMTP" -and $a.length -gt 0 -and $a.indexof("@")-gt 0)
Now that you have found the address you need to store it tobe used after the loop.
$Primary=$a.substring(0,$a.indexof("@"))
Now lets check if this matches the alias attribute
if([String]::Compare($_.Alias,$Primary,$True) -ne 0)
You will generally have the necessary plumbing to write theresults into a log file for easy consumption. The complete script can be foundas an attachment to the blog. The script is provided as is without any warrantyso use it at your own risk.
After you have identified these users you will need tocorrect the alias attribute according to the primary SMTP address attribute.The script for this is left as an exercise to the user.
You may be asking why we were so diligent about correctingthe alias attribute instead of setting the attribute through a script. Thereason is simple; writing scripts to touch large number of users requirescareful testing.
So now we need to dothe following:
After this tasks your users will be able to use the samee-mail address as their logon names.
Exchange migration has always been a topic of interest fororganizations. As more and more organizations depend on Exchange as their coreinfrastructure downtime during upgrades have been noticeable by the clients andneed detailed planning. When there is a need to change the forest as a part ofthis upgrade, the problem becomes a complex migration exercise.
Let’s take a hypothetical organization running Exchange 2007which wants to move to Exchange 2010 in a new forest. For the sake of argumentlets say customer only wants to migrate exchange functionality to the newforest and the old forest will remain where Exchange will be uninstalled. Whenthe number of clients involved is large, the mailbox move process can takelonger than the organization can tolerate downtime and coexistence is needed.Coexistence can be defined as where you have 2 exchange organizations in 2different forests and it acts like a single organization. Here are importantpoints to consider for kind of migration:
In order for these functions to work, you need do analysison source forest:
This part clearly shows you need to have a lot ofpreparation before you do the migration. We will focus on more details in laterseries.