Link to home
Start Free TrialLog in
Avatar of charles_cuerrier
charles_cuerrier

asked on

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.
Avatar of SreRaj
SreRaj
Flag of India image

Hi,

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

http://www.msexchange.org/articles-tutorials/exchange-server-2003/tools/ADModify-Change-Exchange-Specific-AD-User-Attributes.html
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.

1.

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

2.

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

3.

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.

4.

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

5.

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

6.

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


7.

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

Open in new window

8.

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

9.

Once the mailbox has been moved, the users Outlook profile will require modification in order to re-connect them to the target exchange organisation.
Avatar of charles_cuerrier
charles_cuerrier

ASKER

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.

User generated image
ASKER CERTIFIED SOLUTION
Avatar of charles_cuerrier
charles_cuerrier

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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.
That didn't answer the question but it did show that there is no answer.