Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 932
  • Last Modified:

I need to bulk create email forwarding on Exchange 2003

I am migrating from an Exchange 2003 server to a new domain and need to enable about 4000 users to forward their emails to a new email address. I am able create the contacts \I just need to create the forwards from a csv file. Any help would do.
  • 3
  • 3
  • 3
1 Solution

You could try using ADModify to establish this. Please refer the following article which shows how to modify Exchange attributes using ADModify.

What you should do is configure Exchange 2010 and 2003 for co-existence and then use native Exchange 2010 tools to help you with the migration.

The general process I would follow would be to

1: Export the GAL from legacy domain using CSVDE
2: Cleanup the export and change the UPN's, Email address etc.
3: Import the CSV into the Exchange 2010 organisation as contacts. These contacts have a primary SMTP email address of the mailbox in the source domain.
4: Run the PrepareMoveRequest.ps1 exchange script to stamp the source account GUID to the target account (don't use ADMT)
5: Migrate mailbox, the process will convert the source account into a contact and convert the target account into a mailbox.

It's all here http://blogs.technet.com/b/meamcs/archive/2011/06/10/exchange-2010-cross-forest-migration-step-by-step-guide-part-i.aspx
Some additional notes from the last time I did this.


Either use ADMT or Bulk create new User accounts, you can use the CSV to do this in the instructions below.


In SOURCE a create an CSV export file of all the users
csvde -l displayName, samAccountName, mailNickname, mail - -r "objectclass=user" -f c:\2003_Mailboxes.csv

Open in new window


Edit the CSV file created above; delete all built in accounts and domain accounts with mailboxes that are not to be migrated, rename the headers in the CSV file to match the input values used by the Import-CSV Exchange Management Shell cmdlet.

Change DisplayName to Name
Change samAccountName to Identity
Change mailNickname to Alias
Change mail to EmailAddress

Now is a good opportunity to edit the CSV file and remove invalid characters from the Alias field and bulk set all the accounts to use @TargetNameSpace to enable cross forest routing.


In Target, import the CSV to mail enable the previously migrated user accounts
Import-CSV C:\2003_Mailboxes.csv | ForEach-Object -process {Enable-MailUser -ExternalEmailAddress $_.EmailAddress -Alias $_.Alias -Identity $_.Identity}

Open in new window


Prepare Target users for mailbox move using the Prepare-Moverequest.ps1 script provided by Microsoft

$LocalCredentials = Get-Credential (Admin account in the Target Domain)
$RemoteCredentials = Get-Credential (Admin Account in the Source Domain)

Import-CSV C:\2003_Mailboxes.csv | ForEach-Object –process {Prepare-MoveRequest.ps1 -Identity $_.Identity -RemoteForestDomainController source-dc.source.local -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC.SOURCE.LOCAL -LocalForestCredential $LocalCredentials -UseLocalObject}

Open in new window


Move Mailboxes
$RemoteCredentials = Get-Credential

New-MoveRequest -Identity 'username' -RemoteLegacy -TargetDatabase "Mailbox Database 1" -RemoteGlobalCatalog DC.SOURCE.LOCAL -RemoteCredential $RemoteCredentials -TargetDeliveryDomain target.local'

Open in new window


To verify the progress of a submitted move request, use the following
Get-MoveRequestStatistics -MoveRequestQueue "mailbox database name"

Open in new window


To move multiple mailboxes in a single request, and using the CSV file created previously.
[$RemoteCredentials = Get-Credential
Import-CSV C:\2003_Mailboxes.csv | ForEach-Object –process {New-MoveRequest -Identity $_.Identity -RemoteLegacy -TargetDatabase " Mailbox Database 1 " -RemoteGlobalCatalog 'source-dc.source.local' -RemoteCredential $RemoteCredentials -TargetDeliveryDomain 'target.local'

Open in new window


Once the mailbox has been moved, the users Outlook profile will require modification in order to re-connect them to the target exchange organisation.
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

charles_cuerrierAuthor Commented:
Since we need to keep the old Exchange 2003 running after the migration ADModify seems to be the best bet. My question for this would be how to put a wildcard setting to take the forwarding address from a CSV or have it set up as firstinitial + lastname @domain.com
You need to enable the option 'Set Alternate Recipient To' and type in the Distinguished Name of the contact object. You can use variable %'givenName'% for first name and %'sn'% for lastname. So if contact is having a display name 'SecondName, FirstName [TestDomain]', you can refer it as %'sn'%, %'givenName'% [TestDomain]

Please refer following screenshot for example.

charles_cuerrierAuthor Commented:
Your solution seems to be the best and I can do it for an individual by manually entering givenName sn but when I use the %'sn'%, %'givenName'% it says that the DN entered is not valid. There is no such object on the server.
My DN is first name last name, John Doe. What would you suggest?
For FirstName LastName format, the syntax would be %'givenName'% %'sn'%

The Distinguished name refered is of the contact object, so you have to give the correct OU path where the contact object is created. Suppose there is a contact object with extenal domain mail address for user John Doe in AllContacts OU in NewDomain.com root, then the DN would be

CN=%'givenName'% %'sn'%,OU=AllContacts,DC=NewDomain,DC=com

If we are selecting all 4000 users, corresponding all 4000 contact objects should be there is the same OU and they should all have object name in the same format %'givenName'% %'sn'%
This method shouldn't be nessesary. When performing a cross forest mailbox move in exchange 2010 the move request will actually convert the mailbox back to a contact and set the correct smtp as part of the process.
charles_cuerrierAuthor Commented:
That didn't answer the question but it did show that there is no answer.

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

  • 3
  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now