Exchange Mailbox Merge Wizard - Spiceworks



[pic]

Exchange Mailbox Merge Program

Published: September 2003

Updated: March 2005

Applies To: All versions of Exchange Server

Copyright

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2003–2004 Microsoft Corporation. All rights reserved.

Microsoft, Active Directory, Outlook, Windows, Windows NT, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Table of Contents

Introduction 1

Requirements and Setup 3

Using the Mailbox Merge Program to Reduce Downtime 3

For Exchange Server 5.5 3

For Exchange 2000 or Exchange 2003 6

Using Mailbox Merge as a Brick-Level Backup Agent 7

Migrating User Data between Organizations and Sites 8

Extracting Data from the Dumpster 9

Extracting Folder Rules 10

Extracting Data from a Damaged Private Microsoft Exchange Information Store 11

What Occurs When the Merge Program Encounters a Corrupted Message 11

Overwriting All Existing Data in the Target Store 11

Overwriting Older Existing Data in the Target Store 12

Removing Particular Messages from the Source Store 12

Limitations of the Mailbox Merge Program 15

Modes of Operation 17

Differences between Interactive and Batch Mode 19

Command-line options 21

Logging 23

Running the Mailbox Merge Program 25

Interactive Mode 25

Selecting Merge Procedure 25

Data Selection Criteria 27

Selecting Databases 36

Selecting Mailboxes 37

Selecting the Default Mailbox Locale 38

Selecting the Target Directory 39

Saving Program Settings 40

Merge Process Status 42

Support for .Ini File in Interactive Mode 43

Batch Mode 43

Minimum Batch Mode Settings 43

Specifying Mailboxes to Be Processed 44

Specifying Different Target Mailboxes 44

Using ExMerge.exe to Migrate Data Between Sites or Organizations 45

Working Against Mailboxes Homed on Different Servers 46

Specifying Folders to Be Ignored 46

Specifying Folders to Be Processed 47

Selecting Messages by Date 48

Selecting Messages Using the Message Modification Time 48

Archiving Data from a Mailbox 48

Saving Folder Permissions 48

Saving Folder Rules 49

Extracting Data from the Dumpster 49

Removing Specific Messages 49

Redirecting Messages to Another Folder 50

Running the Program Against Multiple Servers Without Customizing

the .Ini File 51

Specifying a Range of Mailboxes to Be Processed 51

Running the Mailbox Merge Program Using the Windows Scheduler 52

Using the Mailbox Merge Program in Non-US English

Environments 53

Localized Provider Names 53

Localized Folder Names 54

Copying Data 54

Renaming Folders 55

Algorithm to Determine the Number of Threads Used by

ExMerge.exe 57

.Ini File Settings 59

DomainControllerForSourceServer 59

SrcServerLDAP-Port 60

DestServerName 60

DomainControllerForDestServer 60

DestServerLDAP-Port 61

SelectMessageStartDate 61

SelectMessageEndDate 61

FileContainingListOfMessageSubjects 62

SubjectStringMatchCriteria 62

FileContainingListOfAttachmentNames 62

AttachmentNameStringMatchCriteria 63

FoldersProcessed 63

ListOfFolders 63

FileContainingListOfFolders 64

ApplyActionToSubFolders 64

LogFileName 64

LoggingLevel 64

DataDirectoryName 65

FileContainingListOfDatabases 65

RestoreDB 65

DelimiterUsedInMailboxFile 66

FileContainingListOfMailboxes 66

StartingIndex 66

EndingIndex 67

DateAttribute 67

DataImportMethod 67

ReplaceDataOnlyIfSourceItemIsMoreRecent 68

CopyUserData 68

CopyAssociatedFolderData 68

CopyFolderPermissions 69

CopyDeletedItemsFromDumpster 69

RemoveIntermediatePSTFiles 69

UseThisPSTFileForAllMailboxes 70

LocalisedPersonalFoldersServiceName 70

LocalisedExchangeServerServiceName 70

MapFolderNameToLocalisedName 70

RenameFoldersBasedOnFolderMappings 71

[Folder Name Mappings] 72

RenameSpecialFolders 72

[International] 73

DefaultLocaleID 73

UseLastLogonLocaleID 74

Tips for Running the Mailbox Merge Program 75

Common Problems 77

The Server 'SVR' Specified in the .ini File Is Inaccessible or Is Not a

Microsoft Exchange Server 77

Problems Getting Mailboxes on a Server 77

Error Configuring Message Service (MSEMS) 78

Error Opening Message Store (MSEMS) 78

Error Creating Message Service (MSPST MS) 78

Error Configuring Message Service (MSPST MS) 78

Error Opening Message Store (MSPST MS) 79

Store 'MSPST MS' Was Not Opened 80

Store 'MSEMS' Was Not Opened 80

Error Accessing Directory Object for 'DN' 80

The Ordinal 6883 Could Not Be Located in the Dynamic Link Library MFC42.DLL 81

The Dynamic Link Library Could Not Be Found in the Specified Path 81

Error Running the Program on a Computer with Outlook 2000 Installed 82

No Information Written to the Log File 82

MapFolderNameToLocalisedName and RenameFoldersBasedOnFolderMappings

Do Not Work with Double Byte Character Set (DBCS) Languages 82

Introduction

The Microsoft® Exchange Mailbox Merge Program (ExMerge.exe) enables a Microsoft Exchange administrator to extract data from mailboxes on an Exchange server and merge this data in mailboxes on another Exchange server. This is especially useful during disaster recovery. The program can also replace existing data instead of merging new data if specified by the administrator.

The program copies data from the source server to personal folders (.pst) files and then merges the data in the .pst files into mailboxes on the destination server.

Before using this program, read the section that follows about the limitations of ExMerge.exe.

Note    ExMerge.exe should be run only from Exchange 2000 Server or Exchange Server 2003 or from computers that have the Exchange 2000 or Exchange 2003 administrative tools loaded. ExMerge.exe can be run against Exchange 5.5, Exchange 2000, and Exchange 2003.

In this document, unless otherwise noted, "Windows" refers to Windows® 2000 operating system or later versions. Earlier versions of Windows, such as Windows NT® 4.0, are specified as required.

Requirements and Setup

You must run ExMerge.exe on a computer that is using the Exchange 2000 or Exchange 2003 administrative tools. It is recommended that you run ExMerge.exe on a dedicated management station that has Exchange administrative tools installed, instead of running ExMerge.exe on an Exchange server. You can run ExMerge.exe against Exchange 5.5, Exchange 2000, and Exchange 2003 servers.

For this program to work against an Exchange 5.5 server, you must log on to Windows with the Microsoft Exchange Service Account or have Service Account administrative credentials at the organization, site, and configuration levels of the Microsoft Exchange Directory. If you run ExMerge.exe in a cross-forest scenario (where the user account and user mailbox are located in separate Windows forests), you must have a two-way trust between the forests.

Important   Make sure that you log on with an account, such as Backup Operators, that has Receive As and Send As permissions on all the Exchange mailboxes.

Using the Mailbox Merge Program to Reduce Downtime

When servers are experiencing problems starting the Microsoft Exchange Information Store service, ExMerge.exe can be used to significantly reduce downtime. In this case, downtime is defined as the time when users cannot send and receive mail (as opposed to being able to access old folders and messages).

The following steps explain the procedures to follow for Exchange 5.5, and Exchange 2000 or Exchange 2003:

For the following procedures, assume that the production server is named PROD_SRVR and another recovery server is named RECOV_SRVR. Assume that RECOV_SRVR has the same version of Exchange Server installed on it as PROD_SRVR, including service packs, and has the same Exchange organization and site names. This server should not be added to the existing production site. Also assume that the location of the information store databases and transaction log files is the same on both servers.

Additionally, we assume that the Exchange store on the production server, PROD_SRVR, is having trouble starting, and that all Exchange services on RECOV_SRVR are working correctly.

For more information, see the Exchange Server 2003 Disaster Recovery Operations Guide (), or Disaster Recovery for Microsoft Exchange 2000 Server (). For more information about Recovery Storage Groups, see Using Exchange Server 2003 Recovery Storage Groups ().

For Exchange Server 5.5

1. Reset the Exchange store on PROD_SRVR:

a. Rename the EXCHSRVR\MDBDATA directory on each drive on PROD_SRVR to EXCHSRVR\MDBDATA.BAK.

b. Create a new EXCHSRVR\MDBDATA directory on each drive on PROD_SRVR.

c. Start the Exchange Information Store service on PROD_SRVR

d. Users on PROD_SRVR are now able to send and receive mail but currently have no old mail.

e. If you have to, back up the data in the EXCHSRVR\MDBDATA.BAK directories.

2. On RECOV_SRVR, stop the Exchange Information Store service.

3. Move all files from the EXCHSRVR\MDBDATA directories on every drive of the RECOV_SRVR server.

4. If a valid online backup is available for the information store on PROD_SRVR:

a. Verify that the MDBDATA directories on all drives of RECOV_SRVR are empty.

f. Copy any transaction logs generated on PROD_SRVR from the EXCHSRVR\MDBDATA.BAK directory that contains the logs to the EXCHSRVR\MDBDATA directory on RECOV_SRVR. Verify that this is the directory that should contain the transaction logs. For information about where to put the transaction logs, see the "DB Log Path" Registry value under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem.

g. Restore the online backup to RECOV_SRVR.

h. Start the Microsoft Exchange Information Store service.

5. If a valid online backup is not available, you may have to repair the existing Exchange store databases:

a. Back up the original databases on PROD_SRVR in the EXCHSRVR\MDBDATA.BAK directory.

i. Copy the PRIV.EDB and PUB.EDB files to the RECOV_SRVR.

j. Contact Microsoft Product Support Services before you proceed.

6. Assume that the Microsoft Exchange Information Store service on RECOV_SRVR is restored from backup or has been repaired and is running correctly. This information store is typically large and contains all the user data, except for the data that was generated after the Microsoft Exchange Information Store service was reset on PROD_SRVR.

7. Stop the Microsoft Exchange Information Store service on RECOV_SRVR and PROD_SRVR and swap the MDBDATA directories on both servers. If PROD_SRVR has sufficient disk space to hold the original PRIV.EDB and PUB.EDB, in addition to the databases created after the Information was reset, you can additionally reduce downtime by the following steps:

a. Stop the Microsoft Exchange Information Store service on RECOV_SRVR only.

k. On PROD_SRVR, on each drive that contains an EXCHSRVR\MDBDATA directory, create a new directory named EXCHSRVR\MDBDATA.NEW.

l. On RECOV_SRVR, rename the EXCHSRVR\MDBDATA directory on each drive to MDBDATA.NEW.

m. On RECOV_SRVR, create a new EXCHSRVR\MDBDATA directory on each drive.

n. Copy the PRIV.EDB and PUB.EDB files from the MDBDATA.NEW directory on RECOV_SRVR to the appropriate MDBDATA.NEW directory on PROD_SRVR. This is the directory on the drive that contains the currently used PRIV.EDB or PUB.EDB. Therefore, if the location of the PRIV.EDB on PROD_SRVR is E:\EXCHSRVR\MDBDATA, copy the PRIV.EDB from RECOV_SRVR to E:\EXCHSRVR\MDBDATA.NEW and do the same for the PUB.EDB file.

o. After you copy the PRIV.EDB and PUB.EDB files to the MDBDATA.NEW directory on PROD_SRVR, stop the Exchange Information Store service on PROD_SRVR.

p. On PROD_SRVR, rename the EXCHSRVR\MDBDATA directories on each drive to MDBDATA.RESET.

q. On PROD_SRVR, create new EXCHSRVR\MDBDATA directories on each drive.

r. On PROD_SRVR, move the PRIV.EDB and PUB.EDB files from the MDBDATA.NEW directory to the MDBDATA directory.

s. Copy the PRIV.EDB and PUB.EDB files from the MDBDATA.RESET directory on PROD_SRVR to the EXCHSRVR\MDBDATA directory on RECOV_SRVR. Make sure that you are copying the files to the correct drive on RECOV_SRVR. If you are not sure, see the "DB Path" Registry value under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\ParametersPrivate and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\ParametersPublic.

t. Now you have exchanged the PRIV.EDB and PUB.EDB files between PROD_SRVR and RECOV_SRVR. The MDBDATA directories on both servers should contain only the PRIV.EDB and PUB.EDB files, and no other files should be in these directories.

u. The PRIV.EDB and PUB.EDB on PROD_SRVR are the information store as it existed at the time of the crash and contain all user data generated until the time of the failure. The PRIV.EDB and PUB.EDB on RECOV_SRVR contain any data generated after you reset the Exchange Information Store service in Step 1. The database files on RECOV_SRVR should be much smaller than those on PROD_SRVR.

8. On both PROD_SRVR and RECOV_SRVR, at a command prompt, change to the EXCHSRVR\BIN directory, and run the following command:

ISINTEG -patch

9. Start the Microsoft Exchange Information Store services on PROD_SRVR and RECOV_SRVR. To additionally reduce downtime, you can perform Step 8 on RECOV_SRVR after you complete Step 7(i) and then start the Exchange Information Store service on PROD_SRVR. In other words, you can start the Microsoft Exchange Information Store service on PROD_SRVR before the copy process in Step 7(j) is completed.

10. As soon as the Microsoft Exchange Information Store service has been started on RECOV_SRVR, you might need to run the DS/IS consistency adjuster to create directory entries for the mailboxes in the information store database files.

11. Run ExMerge.exe against RECOV_SRVR, and merge all data from RECOV_SRVR into PROD_SRVR. You can use the one-step merge procedure or the two-step merge procedure. If you use the latter, you must first extract data on RECOV_SRVR to .pst files and then run ExMerge.exe again, against PROD_SRVR and merge the data from the .pst files into the mailboxes on PROD_SRVR. It is recommended that you specify an interval for the program to extract data. This interval should be approximately the time the Information Store was reset on PROD_SRVR.

12. At this point, after you reset the Microsoft Exchange Information Store service (Step1), all user messages and folders created on PROD_SRVR should be merged back into the mailboxes on PROD_SRVR and there should be no loss of data.

13. Perform a full online backup of the information store on PROD_SRVR.

Note:   Resetting the information store on the production server invalidates all client offline stores (.ost) files. Users receive an error when they try to log on to the Exchange client or Microsoft Office Outlook® or when they synchronize with the Exchange server. Users will have to create a new .ost file to work with the new store. When the original store is restored on the production server, any .ost files users create for the temporary store become invalid, and the users must create another .ost file.

The above procedure will not recover all user data. Read the section on the limitations of ExMerge.exe in this document. The above procedure will only merge data in the private information store. To recover data from the public information store, you must manually log on to a client connected to a mailbox on RECOV_SRVR and copy public folder data to a .pst file. Then, you must log on to a mailbox on PROD_SRVR, add the same .pst file to the profile, and copy the data from the copied public folders in the .pst file to the server-based public folders.

For Exchange 2000 or Exchange 2003

The process of using ExMerge.exe to minimize downtime differs slightly for Exchange 2000 or Exchange 2003 because of the requirements of Active Directory.

Note   There are references to the recovery storage group feature, which is available only in Exchange Server 2003.

The basic steps are as follows:

1. Record all the logical names needed to recover the database.

a. The Exchange 2000 or 2003 organization name.

v. The administrative group name to which the database belongs.

w. The storage group name to which the database belongs.

x. The logical database name.

y. The legacyExchangeDN value of the administrative group to which the database belongs.

Note   If the legacyExchangeDN is the First Administrative Group, you do not need to change this value. However, if this value is not equal to the First Administrative Group, you will need to change the value.

2. Perform one of the following two actions:

• Use the recovery storage group feature, which enables you to create a dedicated storage group to which you can restore a database on the same Exchange server. When you use this feature, you can use ExMerge.exe to log on to the restored database and extract the data. Recovery storage groups are available only in Exchange Server 2003. For more information about Exchange Server 2003 Recovery Storage Groups, see Using Exchange Server 2003 Recovery Storage Groups ().

• To create a separate Recovery Windows server, follow these steps:

z. Run DCPromo to create a separate Active Directory forest. Remember to isolate the recovery server from participating in the Production Active Directory.

aa. Do not configure the recovery server to use Dynamic Host Configuration Protocol (DHCP) services.

ab. Install Exchange 2000 or Exchange 2003 on the recovery server using the same Organization name as in the Production Server.

ac. Create a storage group that has the same logical name as the storage group from which the original databases were taken.

ad. Create logical database names in the storage groups. The names must match the production database names.

ae. Disconnect from the database(s) that you want to restore. Then, in Exchange System Manager, select the check box for "This database can be overwritten by a restore" on the properties of the database(s) you are restoring.

af. Restore your backup set(s). Ensure you select the Last Restore Set check box when you restore the last online backup set.

ag. Mount the database(s).

ah. Use Exchange System Manager to right-click the Mailboxes object for the database and run the Cleanup Agent. The mailboxes for the database will have red X marks next to them. This indicates that they are not currently linked to an Active Directory account.

ai. Use Mailbox Reconnect Tool (MBConn.exe) to connect the Mailboxes to Active Directory Accounts. This tool is in the \support\utils\i386 directory on the Exchange 2000 CD. For information about using Mbconn.exe, open the file Mbconn.chm.

Using Mailbox Merge as a Brick-Level Backup Agent

You can use Exchange Mailbox Merge to do brick-level backups. That is, you can use it to back up individual mailboxes to make recovery easier. You can use the program to extract data from one or more Exchange mailboxes into .pst files. The program cannot write the data to a backup tape, but after it extracts the data into .pst files on a local or network drive, the directory that contains the .pst files can be backed up to tape by using any available backup software, including NTBackup.

The Mailbox Merge Program (ExMerge.exe) can run in batch mode, in which it reads its configuration information from a settings file (.ini). Refer the section on the .ini file settings available for more details.

You can also run the program in a scheduled manner by using the Windows Scheduler. See the section on how to run ExMerge.exe using the Windows AT Scheduler later in this document.

You can schedule a job running ExMerge.exe to extract data from an Exchange Server to .pst files and then schedule another job to automatically back up to tape the .pst files generated by ExMerge.exe.

If you set the Import Procedure to Merge, the program will not copy a message if that message exists in the target store. Therefore, if you run ExMerge.exe daily and specify the same directory to which to save the .pst files, the program uses the existing .pst files that already contain user data and copies only messages and folders that exist in the server store but not in the .pst files. The program copies only new messages and folders, and it skips all messages and folders that it previously copied. This is similar to an incremental brick-level backup of the server-based mailboxes. The program takes less time to complete, because it copies only new data.

Another option could be to set the Import Procedure to "Replace data," and select the option to replace data only if the copy in the source store is more recent. This will cause the program to merge data into the .pst file and to update any data in the .pst file that was modified on the server.

Note   ExMerge.exe will not synchronize a .pst file with a server-based mailbox. If messages are deleted from the server-based mailbox, and if those messages are in the .pst file (messages that were copied during an earlier execution of ExMerge.exe), the program does not delete them from the .pst file.

If you use ExMerge to restore data from an old mailbox to a new mailbox on the same Exchange server, you must delete the old mailbox when you have verified that the merge operation has completed successfully or your rules might not work correctly. See the section "Extracting Folder Rules" later in this document.

Migrating User Data between Organizations and Sites

Although not designed as a migration tool, the Mailbox Merge Program can be used to migrate user data between mailboxes in different Microsoft Exchange sites or organizations. The program does not have some of the features of a migration solution, such as the ability to create mailboxes on the target server, the ability to set an alternative recipient on the source mailbox, or Inbox Rules forwarding mail from the old mailbox to the new mailbox. However, the program does let you migrate user data from one site or organization to another.

Tip   A recommended migration solution is to use Migration Wizard. For more information about migration solutions, see the Exchange Server 2003 Deployment Guide ().

When you migrate data between sites or organizations, it is recommended that you run the program in batch mode. This lets you migrate users from different servers or sites, if you have the correct permissions and network access. It also lets you have better control of the target mailboxes. For information about the permissions you need to run the Mailbox Merge Program, see "Requirements and Setup" earlier in this topic.

When you run the program in interactive mode, you can select mailboxes from one server only, and the target mailboxes should have the same Directory Name as the source mailboxes. Also, if you run the one-step merge procedure, the target mailbox should be in the same container path as the source mailbox.

None of the above limitations apply if you run the program in batch mode. In batch mode, the program reads the list of mailboxes that it will process from a text file (by default called mailboxes.txt). This file contains the distinguished names of the mailboxes you want to migrate and as the following format:

SourceDN [,TargetDN]

Where SourceDN is the distinguished name of the mailbox to extract data from and TargetDN is an optional value that you can specify, which is the distinguished name of the mailbox into which the data extracted from SourceDN will be merged. By specifying a TargetDN for each mailbox to be migrated, you can migrate data into a mailbox with a different directory name and a different container path. If needed, instead of using a comma as the delimiter, you can specify another delimiter using the DelimiterUsedInMailboxFile .ini file setting.

When you use ExMerge.exe to migrate users between organizations, you must specify the domain controllers, whether you are using interactive mode or batch mode.

• If you run ExMerge.exe in the source organization, you must specify the domain controller that is in the target organization.

• If you run ExMerge.exe in the target organization, you must specify the domain controller that is in the source organization.

In batch mode, enter the names of domain controllers in the following ExMerge.ini file parameters:

• Specify the domain controller for the source server in the DomainControllerForSourceServer parameter.

• Specify the domain controller for the target server in the DomainControllerForDestServer parameter.

To migrate user data from servers in Org1 into servers in Org2

Assume that the service accounts in both organizations are different.

1. Create a text file (for example, mailboxes.txt) that contains the distinguished names of the mailboxes to be extracted from Org1 and the target distinguished names in Org2. The mailboxes in Org1 can be on different servers and even different sites, as long as the other sites are using the same service account, and you have network access to those servers. This text file will be similar to the following:

/o=Org1/ou=Sales/cn=Recipients/cn=User1,/o=Org2/ou=NAmerica/cn=Recipients/cn=Sales/cn=User1

/o=Org1/ou=Sales/cn=Recipients/cn=User2,/o=Org2/ou=NAmerica/cn=Recipients/cn=Sales/cn=User2

1. Enter the name of the file that you created in Step 1 in the FileContainingListOfMailboxes entry of the .ini file.

14. Specify the .ini file modified in Step 2 on the command line, using the -F option, when you run ExMerge.exe. The command line that you use will be similar to the following:

EXMERGE -B -F C:\EXMERGE.INI

The program will read the mailboxes.txt file and copy the user data from the source mailboxes specified in the .ini file to the target mailboxes specified in the text file.

Note   You must create the target mailboxes before you run the program. ExMerge.exe will not create the target mailboxes.

Extracting Data from the Dumpster

The Mailbox Merge Program can extract data from the Dumpster (Deleted Items Recovery). It can recover messages and folders deleted by a user, but which are still available in the Exchange Information Store. This option extracts messages that a user deletes from the Deleted Items folder. This option also extracts messages that a user permanently deletes from any folder. For more information about Deleted Items Recovery, see the Microsoft Exchange Server documentation.

When you run the Mailbox Merge Program in interactive mode, select the "Items from Dumpster" option on the Data page of the Data Selection Criteria property sheet. This will cause the program to try to extract data from the Dumpster.

When you run the program in batch mode, set the CopyDeletedItemsFromDumpster setting to 1.

The program will try to extract data from the Dumpster only if the mailbox being processed is homed on Exchange Server 5.5 or later versions. The above settings are ignored if the server version is earlier than 5.5 or if the program is not extracting data from an Exchange server.

All data extracted from the Dumpster is added to the Deleted Items folder in the .pst file. If the Deleted Items folder is in the list of folders to be ignored by the program, messages in the Deleted Items folder will be ignored, but messages in the Dumpster that were permanently deleted from the other folders will not be ignored.

When it extracts data from the Dumpster, the program operates differently from when it extracts data from other server-based folders. The program extracts any messages at the root level of the Dumpster, and imports them into the .pst file according to the Import Procedure (copy, merge, or replace) specified by the user. However, any folders present in the Dumpster are not imported into the .pst file in the same manner. It always copies these folders to the target .pst file. If a folder that has the same name as a folder in the Dumpster already exists in the .pst file, the program appends a random number to the end of the folder name, therefore making the folder name unique. It then copies the folder to the .pst file.

All folders that the program copies to the Dumpster have the string "(Restored by ExMerge)" appended to their names so it is obvious which folders it extracted from the Dumpster. Individual messages extracted from the Dumpster are not modified in any way.

Note   The Archive option is not supported when extracting data from the Dumpster. In other words, ExMerge.exe will not permanently delete items from the Dumpster. It will delete items in all user folders if the archive option is selected, but it will not delete items in the Dumpster.

Any message search criteria (data range, subject lines, attachment names) specified are not applied when the program extracts data from the Dumpster. If you select the option to extract data from the Dumpster, the program copies all data in the Dumpster the .pst file. This could potentially be time-consuming.

Extracting Folder Rules

The Mailbox Merge Program lets you select whether to extract and import folder rules.

To have ExMerge.exe process the folder rules when you run the program in interactive mode, select the "Associated folder messages" option on the Data page of the Data Selection Criteria property sheet.

When you run the program in batch mode, set the CopyAssociatedFolderData setting to 1.

In Exchange Server 5.0 and later versions, folder rules are saved as associated messages in each folder. By extracting associated messages, the Mailbox Merge Program automatically extracts folder rules.

When you import data into a new (blank) information store, certain rules might not be restored to exactly the way they were in the source information store. This is especially true if the rules copy or move messages to folders. Rules do not contain the name of the folders. Instead, they contain the folder IDs. When the folders are re-created in the new information store, they are given new folder IDs. This causes the rules that refer to folder IDs on the original store to "break." The rules will be re-created, but they might not be enabled because the folder information is not valid. Therefore, when you import these rules into a new information store, you must manually modify rules and point to the correct folders.

In some scenarios, you may have to merge mail from a source mailbox to a destination mailbox on the same Exchange server. These scenarios include, performing brick-level backups and restoring data from a corrupted mailbox to a new mailbox. If you are using ExMerge to merge data from a source mailbox to a destination mailbox on the same Exchange server, make sure that you delete the source mailbox when you have verified that the merge operation completed successfully. If the original mailbox remains on the server, rules that move mail to specific folder IDs will continue to move mail to those folder IDs. Because those original folder IDs exist in the old mailbox this will cause temporary data loss for the user.

To remove the source mailbox

1. Delete the mailbox from Active Directory Users and Computers.

15. Run the Cleanup Agent in Exchange System Manager on the affected mailbox store. To do this, expand the mailbox store, right-click the Mailboxes folder, and then click Run Cleanup Agent.

16. Purge the mailbox from Exchange System Manager by right-clicking the mailbox, and then clicking Purge.

For more information about deleting a mailbox, see "Deleting a Mailbox without Deleting the User" in the Exchange Server 2003 Administration Guide ()

If you also select the option to archive data, the program will clear all associated folder messages from the source information store after you copy that data to the target information store. This provides a server-based solution for cleaning out rules, views, and forms from certain or all mailboxes on a server. The data is saved in the .pst file, so it can be re-imported back into the server if necessary.

Extracting Data from a Damaged Private Microsoft Exchange Information Store

Under certain circumstances, if a private information store becomes corrupted, ExMerge.exe might provide a way to extract data from the corrupted information store. If you can start the Microsoft Exchange Information Store service, you might be able to run ExMerge.exe against the damaged Exchange store and extract data for all user mailboxes on that server to .pst files.

You can then reset the Exchange store and merge the user data in the .pst files back to the new private information store.

What Occurs When the Merge Program Encounters a Corrupted Message

Typically, the program will try to copy all messages in a folder at the same time. This minimizes remote procedure call (RPC) traffic. However, if an error occurs when the program tries to copy the messages in a folder, it will automatically start copying messages one at a time and skip the message(s) that cannot be copied. This increases the network traffic and time required, but it lets the program to extract as much data as possible. After the messages in the current folder are copied, the program reverts to copying messages in bulk until it encounters another error. This is especially useful when you are trying to extract data from a damaged private information store, and a mailbox has one or more corrupted messages.

When the program encounters the above situation, errors are logged. These errors are similar to the following:

Error copying messages from folder '\Deleted Items' (MAPI_W_PARTIAL_COMPLETION)

Trying to copy messages in folder '\Deleted Items', individually.

Error copying message with subject 'T1' in folder '\Deleted Items'. (MAPI_W_PARTIAL_COMPLETION)

Errors encountered copying the messages in folder '\Deleted Items'. One or more messages may not have been copied.

Overwriting All Existing Data in the Target Store

Typically, when the program encounters a message in the source store that also exists in the target store, it does not copy that message from the source store to the target store. In other words, it copies only messages that exist in the source store but do not exist in the target store. However, in certain circumstances you might have to overwrite existing messages in the target store with the corresponding messages from the source store. For example, certain messages in a mailbox on an Exchange Server are corrupted and must be replaced with the corresponding messages from a backup.

To overwrite existing messages when you run the Mailbox Merge Program in interactive mode, select the "Replace existing data in target store" option on the Import Procedure page of the Data Selection Criteria property sheet. This causes the program to overwrite any existing messages in the target store that also exist in the source store.

Ensure that the "Replace data only if item in source store is more recent" option is not selected.

When you run the program in batch mode, set the DataImportMethod .ini option to 2 and the ReplaceDataOnlyIfSourceItemIsMoreRecent .ini option to 0.

Caution   If you select this option, the program takes longer to finish. It can also cause data loss if the messages in the target store were modified. Therefore, use this option with caution.

Although you must delete messages to overwrite them, you cannot recover the deleted messages by using the Item Recovery feature in Exchange Server 5.5. You can recover the deleted messages from a backup only.

If you select the option to overwrite messages, the program will log the following message:

"The program will overwrite existing messages in the target store, by first deleting these messages and then copying the messages from the source store."

Overwriting Older Existing Data in the Target Store

You can overwrite only those messages in the target store, which also exist in the source store and which have been modified after the version in the target store. This can be important in certain disaster recovery situations in which you are extracting data from a later database that is damaged and importing data into an older database that you restored from backup.

To do this when you run the program in interactive mode, select the "Replace existing data in target store" option on the Import Procedure page of the Data Selection Criteria property sheet. Also select the "Replace data only if item in source store is more recent" option.

When you run the program in batch mode, set the DataImportMethod .ini option to 2 and the ReplaceDataOnlyIfSourceItemIsMoreRecent .ini option to 1.

Running the program that has the above options selected causes it to check each message in the source store. If the message exists in the target store, the program then checks the PR_LAST_MODIFICATION_TIME property of the message in the source and target stores. If the value of this property in the source message is later than that of the message in the target store, the message in the target store is deleted, and the message in the source store is copied to the target store. If the last modified time of the message in the source store is the same or older than that of the message in the target store, the message is not copied.

If the message in the source store does not exist in the target store, the message will be copied to the target store.

This option is useful in a disaster recovery situation in which you must merge data and replace it into a production server. The setting merges new messages into the target store, and unlike the Merge option, it also replaces any existing messages in the target store for which an updated version exists in the source store. Therefore, this option causes the program to run more slowly than the Merge option but faster than the Copy or Replace options.

Removing Particular Messages from the Source Store

In certain cases it may be necessary to remove particular messages from all mailboxes on one or more Exchange servers. For example, a sensitive message was accidentally mailed to users who should not have received it, or a message with a "virus infected" attachment was mailed to one or more users.

To remove certain messages from mailboxes when you run the program in interactive mode, on the Message Details page of the Data Selection Criteria property sheet, specify one or more subject lines and/or attachment names for the messages that you want to remove. On the Import Procedure page, select the "Archive data to target store" option.

For details on how to remove certain messages when you run the program in batch mode, refer to the section "Removing Specific Messages."

Note   The Mailbox Merge Program cannot apply the search criteria to embedded messages. Therefore, when you remove all messages with a particular attachment or subject line, any messages that contain embedded messages with the specified attachment name or subject line will not be removed. It is recommended that you run a virus-scanning program to remove infected messages. For more information about antivirus software, see Microsoft Knowledge Base article 823166, "Overview of Exchange Server 2003 and antivirus software" ().

For each mailbox checked, the program creates a .pst file and moves messages that meet the specific criteria to this file. Each .pst file will be at least 32 KB.

To speed up operation, specify a range of dates between which the program should look for the messages, and specify a set of folders in which the program should look.

Limitations of the Mailbox Merge Program

ExMerge.exe merges user folders and messages. It also merges folder rules but only if the rules were created on Exchange Server, version 5.0 or later. It does not support version 4.0 Inbox Rules and it does not support forms, views, and Schedule+ data. The program merges Outlook Calendars, Contacts, Journal, Notes, and Tasks. Copied messages lose their single-instance storage, and this can cause an increase in the size of the Microsoft Exchange private information store.

The disk space requirements indicated by the program are an estimate based on the size of the mailboxes selected. The actual disk space required is more than the indicated disk space because of how messages are stored in .pst files. Also, the required disk space that the program indicates does not account for the disk space required for any items that will be recovered from the Dumpster. Ensure that the disk drive to which the .pst files will be saved has sufficient free disk space to avoid encountering errors because of low disk space.

When it extracts data from the Dumpster, the program cannot selectively extract data based on date or time. All items in the Dumpster will be extracted. Also, the program extracts only messages that a user deleted from the Deleted Items folder. If a user permanently deleted messages from other folders, ExMerge.exe cannot extract them from the Dumpster.

When it extracts and imports folder permissions, the program overwrites the permissions on the target folder that has the permissions on the source folder.

When you use the program to import messages, do not use date, subject, or attachment selection criteria. Whether you use the one-step merge procedure (which both exports messages and imports .pst files) or Step 2 of the two-step merge procedure (which imports .pst files), using date, subject, or attachment selection criteria cause the import process to fail. To extract and import messages that have a specific date, subject line, or attachment name, use the two-step merge procedure: enter data selection criteria when exporting messages from the source store, but omit data selection criteria when importing .pst files to the target store.

When you use the program to remove messages from the source store based on attachment name or subject line, the specified criteria are not applied to embedded messages. This is important when you are trying to remove messages infected with a virus. It is possible that even after you run this program, mailboxes will still contain infected messages if these messages have been embedded (attached) inside another message. It is recommended that you run a virus-scanning program to remove infected messages. For more information about antivirus software, see Microsoft Knowledge Base article 823166, "Overview of Exchange Server 2003 and antivirus software" ().

Modes of Operation

The program supports two merge procedures:

• One-step merge

• Two-step merge

In the one-step merge, by default, the program copies data from the source mailbox to a .pst file and then merges the data in the .pst file into the same mailbox on the destination server. The mailbox on the destination server must have the same mailbox name and the same container path as the source server. The distinguished name of the mailbox on the destination server is obtained by replacing the organization and site names in the distinguished name of the mailbox on the source server that has the organization and site names of the destination server.

The program can also merge data into a mailbox with a different container path and mailbox name, if the distinguished name/directory name of the destination mailbox is specified in a text file. For more details on how to do this, see the section "Differences between Interactive and Batch Modes" later in this document.

In the two-step merge procedure, the user can do one of two operations:

1. Merge data from a server-based mailbox to .pst files

17. Merge data from .pst files into a server-based mailbox.

The program can work in both interactive and batch modes. In interactive mode, a wizard is presented to the user that prompts for information before you start the merge process.

In batch mode, the program takes all configuration parameters from a settings (.ini) file and then by default runs without displaying any user interface. This enables the program to run using the Windows Scheduler. It is also possible to run the program in batch mode while displaying a user interface, which shows the progress of the operation.

For more information about running the program, see the section "Running the Mailbox Merge Program" later in this document.

Differences between Interactive and Batch Mode

There are some differences, described as follows, between the features supported by the Mailbox Merge Program in batch mode versus interactive mode:

• Support for processing mailboxes on different servers   In batch mode, the mailboxes.txt file that contains the list of mailboxes can contain mailboxes on different servers. In interactive mode, the program only allows for mailbox selection from one server.

• Support for processing mailboxes in different sites   In batch mode, if you have rights to the mailbox and can access the servers in the other sites, you can process mailboxes in different sites. In interactive mode, the program allows for mailbox selection only from one server in one site.

• Source and target mailboxes can be in different organizations and sites   In batch mode, source and target mailboxes can be in different organizations and sites. In interactive mode, source and target mailboxes can be in different organizations and sites, but the directory name of the source and target mailboxes must be the same. If running the one-step merge, the container paths of the source and target mailboxes must also be the same.

• Source and target mailboxes can have different directory names   In batch mode, source and target mailboxes can have different directory names if a TargetDN is explicitly specified in the mailboxes.txt file. This action is not supported in interactive mode.

• Source and target mailboxes can be in different container hierarchies   In batch mode, source and target mailboxes can have different directory names if a TargetDN is explicitly specified in the mailboxes.txt file. In interactive mode, if you run the one-step merge, the target mailbox must have the same container path. If you run the two-step merge, you can import data into mailboxes with a different container path than that of the mailboxes from which data was extracted. However, the directory names of the source and target mailboxes must be the same.

• Ability to pause the program   In batch mode, you cannot pause the program. In interactive mode, you can pause and restart the program.

• Ability to import data into multiple mailboxes from a single .pst file   In batch mode, set the MergeAction to Import and specify the .pst file name (using the UseThisPSTFileForAllMailboxes setting) in the .ini file. This action is not supported in interactive mode.

• Ability to specify a range of mailboxes to be processed   In batch mode, set the StartingIndex and EndingIndex settings in the .ini file. This action is not supported in interactive mode.

Command-line options

Following are the command-line options that are supported by the program:

EXMERGE [-B] [-D] [-F FILENAME] [-LOGMIN | -LOGMED | -LOGMAX] [-SRCSERV SOURCESERVERNAME] [-TGTSERV TARGETSERVERNAME] [-NUMTHREADS ]

Where:

-B - Operate the program in batch mode. No windows are displayed. Specify when you run the program in a scheduled manner.

-D - Display window with progress data. Only applicable when the -B option is specified. Do not specify when you run the program from the Windows Scheduler.

-F FILENAME - Name of a setting's file (.ini) that contains the settings to use. Use only the characters A through Z and 0 through 9.

-LOGMIN - Minimum logging level

-LOGMED - Medium logging level

-LOGMAX - Maximum logging level

-SRCSERV - Specifies the source server name in SOURCESERVERNAME

-TGTSERV - Specifies the destination server name in TARGETSERVERNAME

-NUMTHREADS- Overrides the number of worker threads used by the program. For more information, see the section "Algorithm used to determine the number of threads used by the program" later in this document.

When you run the program in batch mode by specifying the -B command-line option, by default, the program runs without a user interface displayed. The log file contains information that indicates the progress of the program. If you want a user interface to be displayed, specify the -B -D command-line options.

By using the -F command-line option, the administrator can specify the name of an .ini file to be used by the program. This lets an administrator configure different settings in different .ini files, and then run ExMerge.exe with these different .ini files. This makes configuring the program much easier.

Command-line options override any corresponding settings in an .ini file.

Logging

The program creates a log file that contains any errors encountered during operation, as well as messages that indicate the progress of the current operation. By default this log file is called ExMerge.log. ExMerge creates the log file in the same directory as the ExMerge.exe file. You can change the name of the log file generated by specifying a log file in the LogFileName setting of the .ini file.

If the .ini file is not called ExMerge.ini or is not present in the directory that contains the ExMerge.exe executable, you must specify the name of the .ini file using the -F command-line option, when you run ExMerge.exe.

ExMerge.exe supports the following command-line options, which control the amount of information logged:

• -LogMin

• -LogMed

• -LogMax

ExMerge.exe supports multiple threads. To make it easier to troubleshoot, each thread writes to its own log. These log files will be named ExMerge-(Thread0).log, ExMerge-(Thread1).log, and so on. The logging level specified at the command line or the .ini file is used to control the level of logging to the thread log files.

Running the Mailbox Merge Program

You can run the Mailbox Merge Program in one of two modes, interactive or batch. Running the program in each of these modes is explained in the following sections.

Interactive Mode

To run the program in interactive mode, double-click the ExMerge.exe file from Windows Explorer or File Manager. You can also run the program in interactive mode from the command line with options such as -logmax and others. For additional details, see the section "Command-Line Options" earlier in this document.

Note   To run successfully, ExMerge.exe must be able to access the DLL EXCHMEM.dll. You can find EXCHMEM.dll in the Exchsrvr\bin directory on your Exchange server. On the computer on which you run ExMerge.exe, you must either copy EXCHMEM.dll to the same directory as ExMerge.exe, or add the exchsrvr\bin directory to the system path.

In interactive mode, the program operates as a wizard. It presents the user with a series of pages on which the user can specify information. At the bottom of each page are a Back button and a Next button. By using these buttons, you can navigate the pages of the wizard.

Selecting Merge Procedure

On starting the program, the welcome page is displayed.

Click Next to display the Procedure Selection page, as shown in Figure 1.

[pic]

Figure 1   Procedure Selection page

If you select the Two Step Procedure, the following page is displayed, which lets you select whether you want to extract data to personal folders or import data from personal folders.

[pic]

Figure 2   Two Step Procedure page

After you select the merge procedure, you are prompted for the name of the server from which to extract data or into which to import data, or both. Figure 3 shows the page for entering the name of the server from which to extract data.

[pic]

Figure 3   Entering a server name

Optional Information

If no Windows 2000 Server or Windows Server 2003 domain controller is specified, the program will use the first available domain controller to determine whether the specified Exchange server is running Exchange 2000 or later versions. If this is the case, the program will extract a list of storage groups and databases from Active Directory. If a domain controller is specified, the program queries the specified domain controller.

Important   If you are using ExMerge.exe to migrate users between organizations, you must specify the domain controller under Microsoft Windows 2000 Domain Controller Name.

• If you are running ExMerge.exe in the source organization, you must specify the domain controller that is in the target organization.

• If you are running ExMerge.exe in the target organization, you must specify the domain controller that is in the source organization.

By default, the program performs lightweight direct access protocol (LDAP) queries on port 389. In certain situations, you might need the program to query another port. In that case, specify the new LDAP port. The most common situation in which a specific LDAP port must be specified is one in which you are running an Exchange 5.5 server on a Windows 2000 or Windows Server 2003 domain controller. In this case, the Exchange Directory must use a different LDAP port, because Active Directory uses the default LDAP port (389).

Data Selection Criteria

You can specify criteria that control how data is extracted from the source store or imported into the target store. To do this, click Options on the Source Server page (Figure 3). This displays the property sheet shown in Figure 4. After you specify the required information, click OK.

Selecting the type of data to be extracted

[pic]

Figure 4   Data tab of the Data Selection Criteria property sheet

The Data page lets you select the types of data to extract from the source store and import into the target store. There are four possible options, as shown in Figure 4.

User messages and folders

This option, selected by default, lets you extract all types of messages from the source store. This includes normal mail messages, contacts, appointments, tasks, notes, and journal items. Generally, any item that is visible using the Exchange client or Microsoft Office Outlook®, will be extracted if this option is selected.

Note   The program will not extract Schedule+ data, even if this option is selected.

Associated folder messages

This option controls whether associated messages in user folders are extracted from the source store. Associated messages are special messages that are normally not visible through the client. These messages are used to save settings. For example, in Exchange Server version 5.0 and later versions, folder rules are saved as associated messages. Folder views are also saved as associated messages.

If you are running Exchange Server 5.0 or later versions, you can select this option to extract folder rules from the source store.

Folder Permissions

This option controls whether the program extracts folder permissions from the source store. Because of how permissions are stored, the program cannot merge permissions. Instead, the program overwrites existing folder permissions in the target store with permissions from the source store.

If this option is selected, all existing permissions on the target store will be lost and replaced by the permissions on the source store. Also, the folder permissions might not be valid if the data is imported into a new site or organization. This option is most useful when you extract data from a backup and import it into a server in the original site.

Items from Dumpster

This option controls whether the program tries to extract data from the Dumpster. The Dumpster is a new feature in Exchange Server 5.5. It is also referred to as Deleted Items Recovery. The Dumpster enables a user to recover items that have been deleted. The Exchange administrator must enable this feature.

This option is available only when the source store is running Exchange Server 5.5 or later versions and when extracting data from an Exchange server-based mailbox to personal folders.

Selecting the Import Procedure

The Import Procedure tab lets you select how the program adds items to the target store. Figure 5a shows the four import procedures.

[pic]

Figure 5a   Import Procedure tab with Merge data into the target store option

Copy data to the target store

This option causes the program to blindly copy each message from the source store to the target store, that is, without checking whether that message is in the target store. Therefore, this option can be the fastest, depending on the number of messages already in the target store, but it can also cause duplicate messages in the target store.

This option should be used only if you are sure that the target store does not contain any of the messages that are in the source store.

You will notice the greatest performance improvement when you import data into a store that already contains a large amount of data.

Merge data into the target store

This is the default selection and causes the program to merge data into the target store. Before it copies any messages in a folder to the target store, the program checks whether the message exists in the target store. ExMerge.exe copies only messages that are not already in the target store. Although this option may be slower than the option to Copy data, it is preferred. This option will avoid copying existing messages to the target store and add only new items to the target store.

Note   ExMerge.exe does not synchronize a .pst file with a server-based mailbox. If messages are deleted from the server-based mailbox but still exist in the .pst file, ExMerge does not delete the messages from the .pst file.

Replace existing data in target store

If this option is selected, the program will overwrite any existing messages in the target store that also exist in the source store. For each folder being processed, the program first deletes any messages in the target store that exist in the source store and then copies the messages from the source store. If you select this option, the program takes longer to finish running. It can also cause data loss if the messages in the target store were modified and are different from those in the source store. Therefore, use this option with caution.

[pic]

Figure 5b   Import Procedure tab with Replace existing data in target store option

Replace data only if item in source store is more recent

If this option is selected, the program will still work in Replace mode. However, before it replaces any messages that exist in the target store, it checks the last modified time of the message in both stores. The message in the target store is overwritten (deleted and copied) only if the copy of the message in the source store was modified more recently than the copy in the target store.

If the message does not exist in the target store, the program will copy it from the source store to the target store.

This option is useful in a disaster recovery situation in which data must be merged and replaced into a production server. The setting merges new messages into the target store and, unlike the Merge option, it also replaces any existing messages in the target store for which an updated version exists in the source store. Therefore, this option causes the program to run more slowly than the Merge option but faster than the Copy or Replace options, because normally, most of the messages are not copied to the target store.

Note   To determine which message has been more recently modified, the program checks the PR_LAST_MODIFICATION_TIME message attribute. The program does not use the date attribute setting specified on the Dates page to determine whether to replace a message.

Archive data to target store

If you select this option, the program will copy data from the source store to the target store. The program will not verify that the messages exist in the target store. After the messages are copied to the target store, the program will delete them from the source store.

To avoid irrecoverable data loss, the program will only support this option when it extracts data from an Exchange server to personal folders. If you select this option with the one-step merge, the program archives data when it extracts it from the Exchange server, but merges data when it imports it into the Exchange server. Therefore, if you select the Archive setting by mistake, and the data in the source mailbox is deleted, a copy of the data is still available in the .pst file. This is true only if you do not select the option to automatically delete the .pst files.

Specifying folders

The Folders tab lets you specify a set of folders to be ignored or a set of folders that are the only folders for the program to process (Figure 6). Folder selection is based on an exact character match, not on folder type. For example, if you select the "\Inbox" folder for processing, ExMerge.exe will process only the folders named "Inbox." It will not process Inbox folders in other languages or Inbox folders that have been renamed.

[pic]

Figure 6   Folders tab on the Data Selection Criteria page

To specify folders to be ignored

1. Select Ignore these folders.

18. Click the enabled Modify button.

19. From the Folders Selection dialog box, select the folders that you want, and then click OK.

To specify folders to be processed

1. Select Process only these folders.

20. Click the enabled Modify button.

21. From the Folders Selection dialog box, select the folders that you want, and then click OK.

If the "Apply action to sub folders of the selected folders" option is selected, the action to ignore certain folders or process certain folders is automatically applied to any subfolders of the selected folders.

Therefore, if you are ignoring certain folders, selecting this option causes subfolders of the selected folders to be ignored. Otherwise, subfolders are processed. If you are processing only certain folders, selecting this option causes the subfolders of the selected folders to be processed as well. Otherwise, subfolders are not processed.

Note   If you specify folders for ExMerge.exe to ignore, ExMerge.exe will still create these folders on the merged mailbox, but it will ignore the messages in the folder.

Selecting messages by date of delivery

The Dates tab lets you select messages from the source store based on delivery or modification date. Use this tab only when you export messages from the source store to .pst files.

Important   Do not use data selection criteria when you are using ExMerge.exe to import .pst files into the target store. Whether you use the one-step merge (which both exports messages and imports .pst files) or Step 2 of the two-step merge (which imports .pst files), using data selection criteria causes the import process to fail. To extract and import messages that have a specific date range, you must use the two-step merge. Enter date-range selection criteria when you export messages from the source store, but omit date-range selection criteria when you import .pst files into the target store.

[pic]

Figure 7   Dates tab on the Data Selection Criteria page

The Data Selection Criteria property page lets you specify a range of dates between which to extract data. If a range of dates is specified, you can also select which message date attribute to use when you extract data. You can select whether to extract data based on the delivery time of the message (PR_MESSAGE_DELIVERY_TIME) or based on the time the item was last modified (PR_LAST_MODIFICATION_TIME).

Note   When you extract items from the Dumpster with a range of dates selected, if the option to extract data from the Dumpster is also selected, the program extracts all available items in the Dumpster, regardless of the range of dates that you specified on the Dates tab. This caveat only applies when extracting data from the Dumpster.

Selecting messages by message details

The Message Details tab (Figure 8) lets you select messages from the source store based on the message subject and/or the names of any attachments in the subject. Use this tab only when you are exporting messages from the source store to .pst files.

Important   Do not use message detail criteria when you are using ExMerge.exe to import .pst files to the target store. Whether you use the one-step merge (which both exports messages and imports .pst files) or Step 2 of the two-step merge (which imports .pst files), using subject or attachment selection criteria causes the import process to fail. To extract and import messages that have a specific subject line or attachment name, you must use the two-step merge. Enter subject or attachment selection criteria when you export messages from the source store, but omit subject or attachment selection criteria when you import .pst files into the target store.

[pic]

Figure 8   Message Details tab on the Data Selection Criteria page

You can specify multiple subjects and multiple attachment names.

The program uses the following algorithm to search for messages in the source store:

(Date Restriction) AND (Subj1 OR Subj2 OR … Subjn) AND (Att1 OR Att2 OR … ATTn)

Where:

Date Restriction is the range of dates specified on the Dates page.

Sub1 … Subn are one or more subject lines specified.

Att1 … Attn are one or more attachment names specified.

If you do not specify a range of dates, subjects, or attachments, that component is removed from the algorithm. For example, if you do not specify a date restriction, the algorithm is:

(Subj1 OR Subj2 OR … Subjn) AND (Att1 OR Att2 OR … ATTn)

If you do not specify attachment names, the algorithm is:

(Date Restriction) AND (Subj1 OR Subj2 OR … Subjn)

These criteria are useful when you want to copy or remove specific messages from one or more mailboxes on a server. In other situations you will not need to specify anything in the Message Details tab.

String Compare Criteria

The Data Selection Criteria property page lets you specify the string compare criteria for subject lines, and for attachments.

Each of the possible settings for the string compare criteria is explained in the following section.

Sub string match, ignore case

When you select this setting, the program looks for messages in the source folder that has the strings specified and that are contained inside the subject lines or attachment names of messages in the source folder. The comparison is case-insensitive.

For example, suppose a folder in the source store contains messages that have the following subject lines:

"This is a test," "Testing," "Testy," and "Test."

If "Test" is a subject line specified on the Message Details tab, the program will select all the above messages because they contain the word "test."

The search criteria work the same for attachment names. Messages that have attachments with names that contain the strings specified are selected.

Full string match, ignore case

When you select this setting, the program looks for messages that contain the entire string specified. The comparison is case-insensitive.

Using the above example, a hypothetical folder in the source store contains messages with the following subject lines:

"This is a test," "Testing," "Testy," and "Test."

If "test" is a subject line specified in the Message Details tab, the program selects only the message with the subject "Test."

The search criteria work in the same manner for attachment names. When you specify attachment names, the program compares the complete attachment name, including the extension, against the list of specified attachment names.

Exact Match

When you select this setting, the program checks for messages that contain the entire string specified. The comparison is case-sensitive.

Using the above example, a hypothetical folder in the source store contains messages with the following subject lines:

"This is a test," "Testing," "Testy," and "Test."

If "test" is a subject line specified in the Message Details tab, the program does not select any messages, because none of the messages contain a subject line of "test." However, if you specify "Test" as a subject line in the Message Details tab, the program selects the message with the subject "Test."

The comparison works similarly when you specify attachment names. However, the search is not case-sensitive. As in the "Full string" match described above, the extension name is considered part of the attachment name.

Selecting Databases

If the Exchange server name that you specify is running Exchange 2000 Server or later versions, the program queries Active Directory and obtains a list of storage groups and databases on that Exchange server. The program then displays the Database Selection page (Figure 9).

[pic]

Figure 9   Database Selection page

On the Database Selection page, you can select one or more databases. The program then extracts only user accounts that have mailboxes homed on the selected databases.

Because you can use ExMerge.exe to extract data from restored databases, any existing restored databases are listed on the Database Selection page. Do not select a combination of restored databases and regular databases in the file during a single extraction process. ExMerge.exe does not process both types of databases simultaneously.

The process of extracting mailboxes homed only on certain databases involves first querying Active Directory. After the results of this query are received, the program queries the Exchange Information Store to extract Exchange-specific data, such as the mailbox size and locale ID.

If a domain controller was specified when querying Active Directory, the program will query that domain controller. Therefore, if user accounts are present in different domains, the program might not list these accounts if they are present in domains other than the domain that contains the specified domain controller and its child domains.

If no domain controller is specified, the program queries the global catalog for mailboxes homed on the selected databases. This query causes the program listing user accounts in all domains.

Therefore, if you have user accounts in several discontinuous domains, and you want to list all these user accounts, do not specify a domain controller. Not specifying a domain controller causes the query to take longer to finish.

Note   If there is only one database on the specified Exchange server or if the server is running Exchange 5.5, the program does not display the list of databases and proceeds directly to extract the list of mailboxes.

If you are doing a one-step merge, the program queries the source server for a list of mailboxes homed on that server. If you are doing a two-step merge, when the program extracts data to personal folders, it extracts the list of mailboxes on the source server; whereas when the program imports data from personal folders, it extracts the list of mailboxes on the target server.

Selecting Mailboxes

The program displays to the user, the list of mailboxes found, as shown in Figure 10. You can now select one or more mailboxes to work on. Because you can use ExMerge.exe to extract data from restored mailboxes, any existing, valid restored mailboxes are listed on the Mailbox Selection page. Do not select a combination of restored mailboxes and regular mailboxes in the file during a single extraction process. ExMerge.exe does not process both types of mailboxes simultaneously.

Sort the displayed columns to make searching for mailboxes easier.

Note   When You Run the program against an Exchange 5.5 server, the list of mailboxes is extracted only from the private information store of the Exchange server. Only mailboxes that have resources on that server (visible from the Exchange Administrator program) are extracted. ExMerge.exe does not list mailboxes that have never been logged on to, or that have never received mail.

You will not notice this problem when you run the program against an Exchange 2000 or Exchange 2003 server.

The directory name displayed is not the mailbox alias name. It is generally the same as the alias name, but that is not always the case. The directory name is obtained from the mailbox distinguished name and cannot be changed, whereas the alias name can be changed from the Exchange Administrator program. ExMerge.exe uses the directory name and not the alias name when generating .pst files.

[pic]

Figure 10   Mailbox Selection page

The indicated amount of free disk space required is based on the mailbox size and is intended to be an estimate only. The actual amount of disk space required might be more than the amount indicated in the example above, especially when you are extracting data from the Dumpster.

If any of the message selection criteria (date, folders, subject line, or attachment name) is selected, the program does not display any disk space requirements, because it is not possible for the program to calculate this amount without a costly traversal of each mailbox.

Selecting the Default Mailbox Locale

After you select the mailboxes that you want, the program displays the Locale Selection page, shown in Figure 11.

[pic]

Figure 11   Locale Selection page

ExMerge.exe now has better support for non-English language mailboxes than earlier version of the program. Earlier versions of the program logged on to each mailbox with the language of the local Exchange client or Exchange Administrator program. Because of this, the default folders might have been created in an incorrect language.

The current version of the program gets the mailbox locale for each mailbox processed from the information store. It then logs into the information store using this locale. This results in the Exchange server returning information to ExMerge.exe exactly as it would to a client in the mailbox owner's language. In other words, for a French mailbox, ExMerge.exe will act as a French client, and for a Japanese mailbox, the program will appear to the server as a Japanese client. This removes problems that occurred with previous versions of the program when it was used to export data from a non-English mailbox.

As shown in Figure 11, the user can also specify a default locale. This is the locale that the program will log on as, when it encounters a mailbox that has never been accessed. This locale controls the language of the default folders in the new initialized mailbox. When ExMerge.exe logs into a newly created mailbox, the default folders are created using the locale with which the program logged on. By controlling which locale the program uses to log on to new mailboxes, you can control the language in which the mailbox's default folders are created.

Note   If you are importing data to a server that is accessed by different language clients, you must run the program multiple times, every time specifying a different default locale and selecting only the users who work in that language.

For example, if you are importing data into mailboxes that will be accessed by German and Japanese clients, you must run the program one time, selecting only the German mailboxes and select the default locale as German. Then you must run the program again, selecting only the Japanese mailboxes and set the default locale as Japanese.

Selecting the Target Directory

After you select the mailboxes that you want, click Next to display the Target Directory selection page, shown in Figure 12. This page lets you specify the directory in which the program should create .pst files or to find existing .pst files.

[pic]

Figure 12   Target Directory selection page

The Target Directory selection page shows the amount of free disk space on the destination drive. It also gives an estimate of the amount of disk space that is required for the selected merge operation. The program does not display the disk space information if the user selects the option to Import data into an Exchange server. It also does not display the amount of disk space required, if the user specifies certain message selection criteria (date range, specific folders, and so on). This is because the process to determine the amount of disk space required for only the messages that meet the required criteria is very time consuming.

The indicated amount of free disk space required is only a rough estimate and is based on the size of the selected mailboxes on the Exchange server. In reality, the amount of disk space required to save the data to personal folders (.pst) file will be much larger, depending on the number and size of messages being copied. The required disk space also does not include the disk space needed for any items that are recovered from the Dumpster.

Saving Program Settings

After you select the target directory, before the program starts processing mailboxes, it lets you save the currently selected program to an .ini file, as shown in Figure 13.

[pic]

Figure 13   Save Settings page

1. To select the settings file names, click File Names to display the Change Settings Filenames dialog box (Figure 14).

22. After you select the file names, click Save Settings to save the settings.

[pic]

Figure 14   Change Settings Filenames dialog box

1. In the dialog box, there are three possible file names that you can specify—the Settings Filename, Mailboxes Filename, and Folders Filename.

• The Settings Filename is the name of the .ini file to which the current program settings will be written.

• The Mailboxes Filename is the name of the file to which the distinguished name of the selected mailboxes will be written. Data is written to this file only if you do not select all the mailboxes on the server.

• The Folders Filename is the name of the file to which the names of any folders selected to be ignored or to be processed are written. Data is written to this file when the following conditions are true:

You have selected more than 10 folders to be ignored.

Any of the folders specified have a semicolon in the folder path.

If both of the above conditions are not valid, the folder names are written to the .ini file in the ListOfFolders setting and are not written to the Folders file.

The Subjects Filename is the name of the file to which the selected subject lines are written.

The Attachments Filename is the name of the file to which the list of attachment names is written.

Merge Process Status

After you enter the required information, the program starts performing the selected procedure on the selected mailboxes.

The current status of the process is shown on the Process Status page (Figure 15).

[pic]

Figure 15   Process Status page

To temporarily suspend the program, click Pause. When the program is paused, the label on this button changes to Continue. This is useful if you want to pause the program to temporarily reduce the load on the Exchange server. To resume the program, click Continue, and the program will continue from where it stopped.

ExMerge.exe supports multiple threads. Each thread processes a subset of the total number of mailboxes selected. When you run the program in interactive mode, the Process Status page lets you see the status of each thread.

Note   It is recommended that you not run ExMerge.exe on the Exchange server, because this can increase the load on the server.

Support for .Ini File in Interactive Mode

When you run the Mailbox Merge program in interactive mode, it will still read settings from an .ini file, if a valid .ini file is specified on the command line, or a file named ExMerge.ini is in the directory that contains the ExMerge.exe executable.

When you run in interactive mode, the program reads all settings from the .ini file, except the list of mailboxes. The list of mailboxes displayed in the interactive mode is extracted from the private information store of the source server (or destination server, if you are merging data into an Exchange server when using the two-step merge).

The ability of the program to read information from the settings (.ini) file in interactive mode can be used to reduce the number of selections that you must make when you run the program in interactive mode.

Batch Mode

You can run the Mailbox Merge Program as part of a batch process by specifying the -B command-line option. This causes the program to run without any user intervention, and no user interface is displayed.

When you run the program in batch mode, all program configuration settings must be specified in a configuration setting's file. By default, the program looks for a file named ExMerge.ini in the same directory as the program executable. If you are using a different file, you must specify the name of the .ini file to be used by the program, by adding the -F command-line option, where is the name of the alternative .ini file to be used, including the file path.

By default, when you run the program in batch mode, no user interface is displayed. However, if you want a user interface displayed that indicates the progress of the process, use the -B -D command-line options. However, note that you cannot specify the -D option when you run ExMerge.exe from Windows Scheduler.

Minimum Batch Mode Settings

The following .ini file settings must be specified to successfully run the program in batch mode:

[ExMerge]

MergeAction =

SourceServerName =

DestServerName =

Note   If the value of the MergeAction setting is 0, you must specify a SourceServerName, if the value is 1, you must specify a DestServerName, and if the value is 2, you must specify both the SourceServerName and DestServerName.

For more information about the .ini file settings, see previous information about .ini file settings.

Specifying Mailboxes to Be Processed

To process only certain mailboxes when you run the program in batch mode

1. Create a text file that contains the distinguished names of the mailboxes to be processed. Each distinguished name should be entered on a separate line. For example, C:\MAILBOXES.TXT.

Note   Because ExMerge.exe lets you extract data from restored mailboxes, when you are using a MergeAction of 0, you can specify restored mailboxes in the text file. However, do not specify a combination of restored mailboxes and unrestored mailboxes in the file. ExMerge.exe does not process both types of mailboxes at the same time.

1. Enter the name of the file created in Step 1, in the FileContainingListOfMailboxes entry of the .ini file.

23. Specify the name of the Exchange server that uses the SourceServerName or DestServerName .ini file entries.

24. Specify the .ini file modified in Step 2 on the command line, using the -F option, when you run ExMerge.exe. The command line that you use will be similar to the following:

EXMERGE -B -F C:\EXMERGE.INI

The program now reads the mailbox names file specified in the .ini file and processes only the mailboxes specified in that file. The program ignores blank lines in the specified file, and ignores as comments lines that start with a ##~. You can specify UNC file names.

When you run the program in batch mode, if the FileContainingListOfMailboxes setting in the .ini file is empty, not valid, or does not contain any valid mailbox distinguished names, the program will stop logging an error.

Note   The FileContainingListOfDatabases setting overrides the FileContainingListOfMailboxes. Even if you specify both parameters, ExMerge.exe will extract all the mailboxes in the store that you specified in the database list file.

Specifying Different Target Mailboxes

When you run the program in batch mode, you can specify a target mailbox. You can do this using the mailboxes.txt file that contains the list of mailboxes to be processed.

Each entry in this file must have the following format:

SourceDN [,TargetDN]

Where:

SourceDN is the distinguished name of the mailbox from which data is extracted. This distinguished name is used when the MergeAction is Extract or Extract&Import.

The TargetDN is an optional value that you specify. This value is handled differently depending on the MergeAction.

Note   You must specify the SourceDN.

Following is an explanation of how the TargetDN is used, depending on the MergeAction that you select.

Extract

When the MergeAction is Extract, if a TargetDN is specified, the directory name in the TargetDN is used to generate the name of the .pst file to which data will be written.

If the TargetDN is not specified, the .pst file name is generated from the directory name in the SourceDN.

Import

When the MergeAction is Import, if a TargetDN is specified, it is used as the distinguished name of the mailbox into which data will be merged, and the name of the .pst file from which the program will get the data is generated from the directory name in the TargetDN.

If the TargetDN is not specified, the SourceDN is used as the distinguished name/directory name of the mailbox into which data will be merged, and the .pst file name is generated from the distinguished name in the SourceDN.

Extract&Import

If the MergeAction is Extract&Import, the data is extracted from the mailbox specified by the SourceDN. If a TargetDN is specified, the data is written to a .pst file the name of which is generated from the directory name in the TargetDN. If a TargetDN is not specified, the .pst file name is generated from the directory name in the SourceDN.

When importing the data, if a TargetDN is specified, it is used as the directory name of the mailbox into which the data is merged. If a TargetDN is not specified, the program generates a TargetDN by replacing the organization and site names in the SourceDN with the organization and site names of the destination server.

Note   By default, the program uses a comma as the delimiter between the SourceDN and the TargetDN in the text file that contains the list of mailboxes. If you want to use a different delimiter, specify the delimiter using the DelimiterUsedInMailboxFile .ini file setting. For a list of possible delimiters, see the previous section describing all the .ini file settings.

Using ExMerge.exe to Migrate Data Between Sites or Organizations

When you run the program in batch mode, it can read a list of mailboxes to be processed from a text file. The format of this text file is:

SourceDN [,TargetDN]

Where SourceDN is the distinguished name of the mailbox from which data is extracted. This distinguished name is used when the MergeAction is Extract or Extract&Import.

The TargetDN is an optional value that you can specify. This value is treated differently depending on the MergeAction.

To migrate data from mailboxes in one Exchange organization to mailboxes in another Exchange organization, create a text file that has the above format.

If the container hierarchies in the two organizations are the same, the mailbox directory names in the two organizations are the same, and you are using the one-step merge, you do not have to specify a TargetDN for each mailbox that you want to migrate. However, if the container hierarchies are different, or the mailboxes have different directory names in the target organization, you must specify a TargetDN for each mailbox that you want to migrate.

If the TargetDN is specified for each mailbox, the program extracts the data from the mailbox with the SourceDN. The intermediate .pst file name will be generated using the directory name in the TargetDN. The data in the .pst file is then merged into the mailbox with the TargetDN.

For the above process to work, it is recommended that you be logged on to Windows, with the Exchange Service Account. Because it is likely that the service accounts are different in the different organizations or sites, you might need to run ExMerge.exe using the two-step merge: first extract the data to .pst files in the source organization while logged on with the Service Account of that organization, then log on to Windows as the Service Account of the target organization, and import the data in the .pst files.

When you use ExMerge.exe to migrate mailboxes between different organizations, you must also specify the domain controllers for the source and target servers in the ExMerge.ini file. Enter the names of domain controllers in the following ExMerge.ini file parameters:

• Specify the domain controller for the source server in the DomainControllerForSourceServer parameter.

• Specify the domain controller for the target server in the DomainControllerForDestServer parameter.

Note   When you migrate mailboxes from two or more organizations into another organization, you must run the program one time for each organization. In other words, the program can process only mailboxes, listed in the mailboxes.txt, that are available in the Exchange Directory on the server specified as the source server. If you specify mailboxes in different organizations in the text file, the program can extract data from only those mailboxes in the same organization as the source server. This is because the Exchange Directory on the source server does not recognize any mailboxes that belong to other organizations.

By default, the program uses a comma as the delimiter between the SourceDN and the TargetDN in the text file that contains the list of mailboxes. If you want to use a different delimiter, specify the delimiter using the DelimiterUsedInMailboxFile .ini file setting. For a list of possible delimiters, see the section describing all the .ini file settings.

Working Against Mailboxes Homed on Different Servers

When you run the Mailbox Merge Program in batch mode, it is possible to merge data into or from mailboxes that are homed on different servers.

To do this, add the distinguished names of the required mailboxes to a file, as described above. The distinguished names can be of mailboxes on different servers and different sites. ExMerge.exe will automatically connect to mailboxes on other servers, if the Windows account that you are logged on to has rights to the mailboxes and the organization, site, and configuration containers on the other servers. If you are logged on to the Exchange Service Account, you will be able to work against any user mailbox on any server in sites that use that Service Account.

When ExMerge.exe connects to a mailbox homed on a server that is different from the server that is specified in the .ini file, a message that is similar to the following message will be logged:

Mailbox 'TestU' ('Test User') is homed on server 'EXSRV01'. Dynamically connecting to that server.

Specifying Folders to Be Ignored

To ignore certain folders when you run the program in batch mode, do the following:

1. In the .ini file that contains the program settings, set the value of the FoldersProcessed entry to 0. This indicates that you want to have the program ignore certain folders.

25. Specify the names of folders to be ignored. You can do this in one of two ways:

• Specify the names (including full path) of the folders to be ignored, in the ListOfFolders .ini file setting. Separate each folder name with a semicolon (;).

• If the number of folders to be ignored is large, or the folder paths contain semicolons, do not specify the list of folders to be ignored directly in the .ini file. Instead, follow these steps:

a. Create a text file that contains the names (including full path) of the folders to be ignored. Each folder name should be entered on a separate line. The program ignores blank lines in the specified file, and ignores as comments lines that start with a ##~.

b. Enter the name of the file created in the previous step in the FileContainingListOfFolders entry of the .ini file.

You can specify a UNC file name in the .ini file. If the FileContainingListOfFolders setting in the .ini file is empty or not valid, the program processes all folders.

By default, the program ignores messages only in the folders specified. If you want the program to ignore messages and subfolders of the specified folders, set the ApplyActionToSubFolders setting in the .ini file to 1.

Specifying Folders to Be Processed

To process only certain folders when you run the program in batch mode

1. In the .ini file that contains the program settings, set the value of the FoldersProcessed entry to 1. This indicates that you want to have the program process only a specified list of folders.

26. Specify the names of folders to be processed. You can do this in one of two ways:

• Specify the names (including full path) of the folders to be ignored in the ListOfFolders .ini file setting. Each folder name should be separated by a semicolon (;).

• If the number of folders to be ignored is large, or the folder paths contain semi-colons, you should not specify the list of folders to be ignored, directly in the .ini file. Instead follow these steps:

a. Create a text file that contains the names (including full path) of the folders to be processed. Each folder name should be entered on a separate line. Blank lines in the specified file are ignored. Lines starting with a ##~ are ignored as comments.

b. Enter the name of the file created in the previous step, in the FileContainingListOfFolders entry of the .ini file.

You can specify a UNC file name in the .ini file. If the FileContainingListOfFolders setting in the .ini file is empty or not valid, the program will process all folders.

By default, the program processes only messages in the folders specified. All other folders, including subfolders of the specified folders are ignored. If you want the program to automatically process subfolders of the specified folders, set the ApplyActionToSubFolders setting in the .ini file to 1.

For example, suppose Inbox is a folder that you select to be processed. Suppose the Inbox folder has subfolders, Inbox\My Mail and Inbox\Your Mail. If the ApplyActionToSubFolders entry is set to 1, the program processes messages in Inbox, as well as in the Inbox\My Mail and Inbox\Your Mail folders. If the ApplyActionToSubFolders entry is 0 (which is the default), the program processes only messages in the Inbox folder and ignores all other folders, including subfolders in Inbox (Inbox\My Mail and Inbox\Your Mail).

Selecting Messages by Date

You can run the Mailbox Merge Program in batch mode, selecting only messages delivered during a certain interval. You must specify the start and end dates of the time interval in the .ini files, using the SelectMessageStartDate and SelectMessageEndDate entries.

For example, to extract only messages delivered between Jan 1, 1998 and Dec 31, 2001, add the following entries to the .ini file.

SelectMessageStartDate = 1/1/98 00:00:00

SelectMessageEndDate = 12/31/01 23:59:59

If the SelectMessageStartDate or SelectMessageEndDate entries are empty or not valid, all messages will be selected.

Selecting Messages Using the Message Modification Time

If a valid time interval is specified (using the SelectMessageStartDate and SelectMessageEndDate .ini file settings), by default, the program uses the message delivery time (PR_DELIVERY_TIME MAPI attribute) to determine which messages should be extracted from the source store.

To have the program use the last modified time (PR_LAST_MODIFICATION_TIME attribute) instead of the delivery time, set the DateAttribute setting in the .ini file to 1.

Archiving Data from a Mailbox

The Mailbox Merge Program can archive data from an Exchange Server mailbox to a .pst file. The data is copied to the .pst file and then deleted from the server-based mailbox.

To archive data when you run the program in batch mode, the DataImportMethod .ini file setting must be set to 3.

To avoid irrecoverable data loss, the program only supports this option when extracting data from an Exchange Server to personal folders. If this option is selected with the one-step merge, the program archives data when extracting data from the Exchange server, but merges data when importing into the Exchange server. If the Archive setting is selected by mistake, and the data in the source mailbox is deleted, a copy of the data is still available in the .pst file. This is true only if the option to automatically delete the .pst files was not selected.

Saving Folder Permissions

You can extract folder permissions when you run the Mailbox Merge Program in batch mode.

To have the program extract folder permissions, the CopyFolderPermissions .ini setting must be set to a value of 1.

Saving Folder Rules

When you run the Mailbox Merge Program against a version 5.0 or later Exchange server, it is possible for the program to save folder rules.

To have the program save folder rules, set the CopyAssociatedFolderData .ini file setting to a value of 1.

Extracting Data from the Dumpster

The Mailbox Merge Program can recover deleted items. When you run the program in batch mode, the CopyDeletedItemsFromDumpster .ini file setting must be set to 1.

Note   This setting takes effect only when the program is extracting data from an Exchange server-based mailbox, homed on a version 5.5 or later information store. The program ignores this setting when it imports data into an Exchange server mailbox.

If the option to extract data from the Dumpster has been selected, when it extracts items from the Dumpster, the program will extract all available items in the Dumpster even if a range of dates is specified.

All data extracted from the Dumpster is restored into the Deleted Items folder. When you try to copy a subfolder in the Dumpster, the program does not merge data from the Dumpster into the existing subfolder of the Deleted Items folder if a folder that has the same name already exists in the Deleted Items folder. The program copies the entire subfolder from the Dumpster to the Deleted Items folder and gives the new folder a unique name. The unique name is generated by appending a random number to the folder name.

Removing Specific Messages

The Mailbox Merge Program can select specific messages in an Exchange mailbox based on delivery date, last modification time, subject line, and attachment name.

By using this feature with the ability to archive messages, you can remove certain messages from the mailbox into a .pst file.

When you run the program in batch mode, to remove messages that have certain subject lines and contain certain attachments, follow these steps:

1. Create a text file that contains the message subject lines to look for. Each subject line must be entered on a separate line. If you want to specify a blank subject line, enter ~

27. Save this file as C:\SUBJECTS.TXT

28. Enter the name of the file created in Step 1 in the FileContainingListOfMessageSubjects entry of the .ini file.

29. Create a text file that contains the attachment names, with each attachment name entered on a separate line.

30. Save this file as C:\ATTACHMENTS.TXT

31. Enter the name of the file created in Step 4 in the FileContainingListOfAttachmentNames entry of the .ini file.

32. Set the following .ini file entries:

a. DataImportMethod = 3

aj. CopyUserData = 1

ak. CopyAssociatedFolderData = 0

al. CopyFolderPermissions = 0

am. CopyDeletedItemsFromDumpster= 0

an. SubjectStringMatchCriteria = 0

ao. AttachmentNameStringMatchCriteria = 1

33. Specify the name of your Exchange server that uses the SourceServerName .ini file setting.

34. Specify the .ini file on the command line, using the -F option when you run ExMerge.exe. The command line that you use will be similar to the following:

EXMERGE -B -F C:\EXMERGE.INI

Note   The program cannot search embedded (attached) messages. It is possible that messages matching the specified criteria will not be removed, if these messages are embedded inside other messages.

You can specify a UNC file name in the .ini file.

To look for messages that have the specified subjects and attachments within a certain range of dates, specify the start and end dates using the SelectMessageStartDate and the SelectMessageEndDate .ini file entries. For example:

SelectMessageStartDate = 03/21/1999 00:00:00

SelectMessageEndDate = 03/30/1999 23:59:59

You can also specify that the program only look in certain folders for the messages that have the above criteria by setting the following .ini file entries:

ListOfFolders = \Deleted Items; \Inbox; Sent Items;

FoldersProcessed=1

For more information, see the section "Specifying Folders to Be Processed" earlier in this document.

Redirecting Messages to Another Folder

Sometimes you need the program to copy items to another folder instead of to the original folder. For example, instead of the program copying items to a folder FOLDERA, you want the program to copy the data to FOLDERB.

This is most typically the case when you run the program in a non-English environment. For more information, see the section "Using the Mailbox Merge Program in Non-US English Environments" later in this document.

Outlook® 98 and later versions maps the root folder of the mailbox to a page called Outlook Today. Messages in the root folder are not visible. When you copy items from a .pst file to an Exchange mailbox, if there are any items in the root folder of the .pst file, the program copies these items to the root folder of the mailbox.

To have the program copy the items in the root folder in the .pst file to another folder

1. Set the MapFolderNameToLocalisedName .ini file setting to a value of 1.

35. Add the following entry to the [Folder Name Mappings] section:

\ =

where is the folder to which you want the items that would typically be copied to the root folder, to be copied. This folder must be an immediate subfolder of the root folder.

Running the Program Against Multiple Servers Without Customizing the .Ini File

In certain situations, you might have to run the program against several servers. For example, you might have to remove certain messages from the mailboxes on several servers. In this case, it can be time-consuming to configure the .ini file with the correct server name for each server that the program must be run against.

To help with this situation, the program supports the command line parameters -SRCSERV and -TGTSERV. Using these command line parameters, you can specify the source and destination (target) server names, without having to enter these names in the .ini file. These command line parameters are most useful when they are used with the %COMPUTERNAME% environment variable.

For example, the following command specifies that the local computer must be used as the source server.

EXMERGE -B -F C:\EXMERGE.INI -SRCSERV %COMPUTERNAME%

The advantage of using the command line parameters is that an .ini file can be created only one time with all the required settings. Also, a batch file can be created with a command similar to the above command. To run the program on multiple servers, you then need only to copy the .ini file and the batch file onto each server and run the batch file. The .ini file does not need to be customized for each server the program must be run against.

Note   If the .ini file contains server names, the name specified on the command line overrides the settings in the .ini file.

Specifying a Range of Mailboxes to Be Processed

ExMerge.exe can process only a certain set of mailboxes. This feature can be used only when you run the program in batch mode.

To have the program process a set of mailboxes, you must specify the indexes at which to start and end processing of mailboxes. For example, if the program extracts 500 mailboxes on a server, you can specify, using .ini file settings, that the program should process mailboxes starting at index 0 and ending at index 250. In this way, you can create multiple .ini files and have multiple instances of the program process different groups of mailboxes on the same server. Previously, the only way to achieve this in batch mode was to explicitly list the mailboxes to be processed.

To have the program process a certain set of mailboxes on a server

1. Set the following .ini file entries:

a. StartingIndex =

ap. EndingIndex =

36. Specify the name of your Exchange server using the SourceServerName .ini file setting.

37. (Optional) If you are running Exchange 2000 or later versions, you can create a text file that contains a list of databases from which to extract the list of mailboxes and then specify this file in the FileContainingListOfDatabases .ini file setting. If this file is not specified, the program extracts a list of all mailboxes on the specified server.

Note   The FileContainingListOfDatabases setting overrides the FileContainingListOfMailboxes. Even if you specify both parameters, ExMerge.exe extracts all the mailboxes in the store that you specified in the database list file.

Note   Because ExMerge.exe lets you extract data from restored databases, when you are using a MergeAction of 0, you can specify restored databases in the text file. However, do not specify a combination of restored databases and regular databases in the file. ExMerge does not process both types of databases simultaneously.

38. If you are using the FileContainingListOfDatabases option to extract restored databases, specify a value of 1 for the RestoreDB entry in the .ini file. (Setting the value to 1 enables extraction of restored databases. The default setting of 0 enables extraction of unrestored databases.)

39. Specify the .ini file on the command line, using the -F option, when you run ExMerge.exe. The command line that you use will be similar to the following:

EXMERGE -B -F C:\EXMERGE.INI

Note   The actual set of mailboxes processed is relative to the list of mailboxes extracted, which in turn depends on the settings specified in the .ini file. In other words, the indexes point to a different range of mailboxes if you extract all mailboxes on a server than those to which they point if you extract the mailboxes only on a set of databases.

The list of mailboxes is sorted by Display Name.

Running the Mailbox Merge Program Using the Windows Scheduler

You can run ExMerge.exe in a batch process without any user intervention, which lets you run the program according to a schedule.

For the program to run in batch mode, all required configuration information must be specified in a configuration setting's file. See the previous section on running the program in batch mode, for the minimum settings required.

Using the Windows AT Scheduler

Use the Windows AT command to schedule when ExMerge.exe runs. The following command schedules ExMerge.exe to run every five days at midnight on the local server.

AT 00:00 /every:5,10,15,20,25,30 "C:\EXMERGE -b -f C:\EXMERGE.INI"

For more information about the Windows AT command, see the Windows documentation or Help file.

Using the Mailbox Merge Program in Non-US English Environments

The Mailbox Merge Program is available only in US English and is not localized in different languages. However, the current version of ExMerge.exe is designed to work more seamlessly against non-English mailboxes than earlier versions.

For each mailbox processed, the program now gets the mailbox locale from the information store. It then logs into the information store using this locale. This causes the Exchange server returning information to ExMerge.exe exactly as it would to a client in the mailboxes owner's language. In other words, for a French mailbox, ExMerge.exe will act as a French client, and for a Japanese mailbox, the program will appear to the server as a Japanese client. This gets rid of problems that occurred with previous versions of the program, when it was used to export/import data from/to a non-English mailbox.

With ExMerge, the user can also specify a default locale. The default locale is used when a mailbox has never been accessed. This locale controls the language of the default folders in the new initialized mailbox. When ExMerge logs into a newly created mailbox, the default folders are created using the locale with which the program logged in. By being able to control which locale the program uses to log into new mailboxes, the user can control the language in which the default folders in the mailbox are created.

Previously, the program would log into each mailbox with the language of the local Exchange client or Exchange Administrator program. This could have resulted in the default folders being created in a wrong language.

Note   If you are importing data to a server that will be accessed by different language clients, you will have to run the program multiple times, every time specifying a different default locale and selecting only the users who work in that language.

For example if you are importing data into mailboxes that will be accessed by German and Japanese clients, you will have to run the program one time, only selecting the German mailboxes and select the default locale as German. Then run the program again selecting only the Japanese mailboxes and set the default locale as Japanese.

Following are some of the common issues encountered when you run ExMerge.exe in non-US English environments and the steps to resolve these problems.

Localized Provider Names

The most common errors occur when the program cannot detect a required Microsoft Exchange Service Provider on the local computer, because the program is looking for providers with US English names, and the providers installed on the local computer have localized names. In this case, the ExMerge log file will contain one or more of the following errors:

"Store 'MSEMS' was not opened"

"Store 'MSPST MS' was not opened"

To operate, the program must be able to add and configure the Exchange Server and Personal Folders services to a profile created dynamically by the program. To resolve these errors, you must provide the program the localized names of the Exchange Server and Personal Folders services, using the .ini file.

Add the following entries to the .ini file:

[EXMERGE]

LocalisedExchangeServerServiceName=

LocalisedPersonalFoldersServiceName=

is the localized name of the Exchange Server service. This is generally the value of the PR_PROVIDER_ DISPLAY entry under the [EMS_MDB_private] section of the MAPISVC.INF file. By default, ExMerge.exe recognizes the Exchange Server service name in German and French, and you will not get the above error for these languages. For other languages, the correct value must be added to the ExMerge.ini file.

is the localized name of the Personal Folders service. This is generally the name displayed in the client, when you add the Personal Folders service to your profile. You can also determine the localized name in the [MSPST MS] section of the MAPISVC.INF file. By default, ExMerge.exe recognizes the Personal Folders service name in Spanish, German, and French. You will not need to add the entry in the .ini file for these languages. However, for other languages, the correct value must be added to the ExMerge.ini file.

Localized Folder Names

Copying Data

By default, the program does not recognize localized service names. This also includes folder names. In other words, the program is not aware that the folder named Inbox in a US English client is the same folder named Posteingang in a German client. This can cause unwanted behavior when you run the program in an environment with different language clients.

For example, assume the program was run on a computer that has the US English client installed, to extract data from an Exchange mailbox into a .pst file. The .pst file contains folders that have the names as they appear using the US English client, that is, Inbox, Outbox, Sent Items, Deleted Items, and so on.

Now suppose the program is run on a computer that has the German Exchange client installed on it and the data in the .pst file created earlier is merged into a server-based mailbox. When you view the mailbox from the German client, the standard folders have German names instead of the US English names. Therefore, when the ExMerge program runs, it does not find the US English folder names saved in the .pst file and creates new folders in the server-based mailbox with the English names and copies the data into these folders.

To avoid the behavior described and have the program recognize that the folder named Inbox in a US English client is the same as the folder named Posteingang in a German client, you must set the following entries in the .ini file.

[EXMERGE]

MapFolderNameToLocalisedName = 1

[Folder Name Mappings]

Inbox = Posteingang

Deleted Items = Geloschte Objekte

Sent Items = Gesendete Objekte

Outbox = Postausgang

Similarly, for other languages you must provide a mapping between folder names. The mappings do not have to be between US English and another language. They can be between any names.

The mappings have the following format:

=

The MapFolderNameToLocalisedName setting controls whether the program searches the .ini file for localized names of folders. If this setting is set to 1, the program checks the [Folder Name Mappings] section in the file to see if there is an entry for each folder being copied. If an entry is found, the program also searches for a folder that has the localized name specified as the value of the entry. If a folder that has the localized name is found in the target store, instead of copying data to the original folder, the program copies data to the localized folder.

However, if neither the original folder nor the localized name is found in the target store, the program creates a folder that has the original folder name. For example, if the MapFolderNameToLocalisedName setting is set to 1, before copying data to a folder named Inbox, the program checks the [Folder Name Mappings] section for an "Inbox=" entry. Suppose it finds an entry "Inbox=Posteingang." Now, instead of copying data to the folder named Inbox or creating a new folder named Inbox, the program copies data to the folder named Posteingang, if it exists. If a folder named Posteingang does not exist, a new folder named Inbox is created.

Note   Folder name mapping is supported only for top level folders such as Inbox, Outbox, and Deleted Items.

Renaming Folders

In certain situations, you might want to have the program rename folders in the target store. ExMerge.exe can rename folders, based on folder name mappings defined in the [Folder Name Mappings] section of the .ini file.

Consider the same example explained above. You are importing data from a .pst file that has folder names in English, into a mailbox that has the default Outlook folder names in German. By defining an English to German folder name mapping, and setting the MapFolderNameToLocalisedName entry to 1, you cause the program to copy the data from the English name folders in the .pst file to the corresponding German name folders in the mailbox.

Therefore, after the process is complete, data in the Inbox folder in the .pst file is copied to the Posteingang folder in the mailbox, and no folder named Inbox is created. In certain situations, you might want the folder names in the mailbox to be in English instead of in German. To facilitate this, ExMerge.exe can rename folders in the target store based on the same folder mappings used by the program to redirect messages.

The program supports a new .ini file entry, RenameFoldersBasedOnFolderMappings. If this entry is set to 1, and the MapFolderNameToLocalisedName entry is set to 1, the program renames the folder in the target store with the name of the folder in the source store.

The mappings have the following format:

=

Therefore, consider the following mappings:

[Folder Name Mappings]

Inbox = Posteingang

Deleted Items = Geloschte Objekte

Sent Items = Gesendete Objekte

Outbox = Postausgang

When it copies data from the source store, the program tries to copy data from a folder named Inbox. If the MapFolderNameToLocalisedName entry is set to 1, it checks for a folder named Posteingang in the target store. If it finds a folder named Posteingang in the target store, the program copies data into that folder. Before it starts the copy process, the program checks that the RenameFoldersBasedOnFolderMappings entry is set 1. If this entry is set to 1, the program renames the Posteingang folder to Inbox, and then starts the copy process.

The result is that all the target folders in the above mappings are renamed to the source folders. In the above example, after the program runs, folders in the mailbox called Posteingang, Geloschte Objekte, Gesendete Objekte, and Postausgang should be renamed to Inbox, Deleted Items, Sent Items, and Outbox.

If the target folder name in a mapping does not exist in the target store, the program creates a folder in the target store with the name of the folder in the source store. In this case, renaming is not required.

Note   Folder name mapping and renaming is supported only for top level folders such as Inbox, Outbox, and Deleted Items.

Algorithm to Determine the Number of Threads Used by ExMerge.exe

ExMerge.exe supports multiple worker threads. This means that the program can simultaneously process multiple mailboxes, which should result in faster overall performance.

The number of worker threads used by the program depends on the number of mailboxes to be processed. Following is the algorithm used to determine the number of worker threads:

If (Number of Mailboxes Selected < 5)

Number of Worker threads = 1

If (Number of Mailboxes Selected < 25)

Number of Worker threads = 2

If (Number of Mailboxes Selected < 50)

Number of Worker threads = 3

If (Number of Mailboxes Selected < 100)

Number of Worker threads = 4

If (Number of Mailboxes Selected >= 100)

Number of Worker threads =5

The program supports a command-line option, -NUMTHREADS , which you can use to specify the number of worker threads. This setting overrides the algorithm. The program has a hard-coded upper limit of 10 worker threads.

Increasing the number of worker threads should be performed with caution. The larger the number of threads, the more resources the program uses and the greater the stress on the computer that is running ExMerge.exe. This can affect the responsiveness of the computer. It is recommended that you run ExMerge.exe on a dedicated management station that has Exchange administrative tools installed, instead of running ExMerge.exe on an Exchange server. It is recommended that the number of worker threads not be increased beyond the default number determined by the program.

.Ini File Settings

The Mailbox Merge Program can read its configuration settings from an .ini file. Details of the supported .ini file settings are listed below.

When you run the program in batch mode, you must specify all required configuration settings in an .ini file. However, the .ini file is also read when you run the program in interactive mode. This lets you save common settings in an .ini file to avoid having to make the same selections every time that you run the program.

====================================================

ExMerge.ini

This file is for use with the EXMERGE.EXE program. This file should be in the same directory as the executable, or the -F command-line option should be used to specify the location of the .ini file.

====================================================

MergeAction

This setting controls which merge procedure to use.

Possible values:

0 - Extract (Merge data to Personal Folders)

1 - Import (Merge data from Personal Folders)

2 - Extract&Import (Export from one server and Import into another server)

Default value: 0

MergeAction = 0

====================================================

SourceServerName

Name of the source Exchange server from which data will be extracted. You must specify this setting if the MergeAction that you specify is Extract or Extract&Import.

SourceServerName =

====================================================

DomainControllerForSourceServer

If the source server specified in the SourceServerName setting is running Exchange Server 2000 or later versions on a Windows stand-alone server (not on a domain controller), you can use this setting to instruct the program which domain controller it must access to read Active Directory and get information about the source server. You can also use this setting to instruct the program to search for mailboxes homed on the source server.

If a domain controller is specified, the program only extracts mailboxes present in the domain that contain the specified domain controller. If this entry is left empty, the program tries to locate the nearest domain controller and access Active Directory on that domain controller. When querying for mailboxes homed on the source server, the program accesses the nearest global catalog server.

Therefore, for the program to list mailboxes in multiple domains, do not specify a DomainControllerForSourceServer.

DomainControllerForSourceServer=

====================================================

SrcServerLDAP-Port

This setting specifies the port number to be used when you try to access the directory (Exchange 5.x Directory or Active Directory) using LDAP. By default, the program tries to access the directory on port 389. You should use this entry only if the directory is configured to use a different port. This is generally the case if you have installed Exchange Server 5.x on a Windows 2000 or Windows Server 2003 domain controller. In this case, it is likely that you need to configure the Exchange Directory to listen for LDAP queries on a port other than the default of 389.

Default Value:

SrcServerLDAP-Port=

====================================================

DestServerName

This setting specifies the name of the destination Exchange server to which data will be written.

This setting must be specified if the MergeAction specified is Import or Extract&Import

DestServerName =

====================================================

DomainControllerForDestServer

If the destination server specified in the DestServerName is running Exchange Server 2000 or later versions on a Windows stand-alone server (not on a domain controller), you can use this setting to instruct the program which domain controller it must access to read Active Directory and information about the Destination Server. You can also use this setting to instruct the program to search for mailboxes homed on the destination server.

If a domain controller is specified, the program extracts only mailboxes present in the domain that contains the specified domain controller. If this entry is empty, the program tries to locate the nearest domain controller and access Active Directory on that domain controller. When querying for mailboxes homed on the destination server, the program accesses the nearest global catalog server.

Therefore, if you want the program to list mailboxes present in multiple domains, do not specify DomainControllerForDestServer.

DomainControllerForDestServer=

DestServerLDAP-Port

This setting specifies the port number to be used when you try to access the directory (Exchange 5.x Directory or Active Directory) using LDAP. By default, the program tries to access the directory on port 389. Use this entry only if you configure the directory to use a different port. This is generally the case if you have installed Exchange Server 5.x on a Windows 2000 or Windows Server 2003 domain controller. In this case it is likely that the Exchange Directory will have to be configured to listen for LDAP queries on a port other than the default of 389.

Default Value:

DestServerLDAP-Port=

SelectMessageStartDate

This setting specifies the starting date after which messages should be selected.

Format: MM/DD/YY hh:mm:ss

where:

MM - Month

DD - Day

YY - Year

hh - Hour (0-23)

mm - Minute

ss - Second

Default value: Blank

If SelectMessageStartDate or SelectMessageEndDate is not valid, all messages are selected.

SelectMessageStartDate = 12/31/97 00:00:00

SelectMessageEndDate

This setting specifies the ending date before which messages should be selected.

Format: MM/DD/YY hh:mm:ss

where:

MM - Month

DD - Day

YY - Year

hh - Hour (0-23)

mm - Minute

ss - Second

Default value: Blank

If SelectMessageStartDate or SelectMessageEndDate is not valid, all messages are selected.

SelectMessageEndDate = 12/31/99 23:59:59

=================================================

FileContainingListOfMessageSubjects

This setting points to a text file that contains all the subjects for which you want the program to search. The file must contain one subject per line. Blank lines are ignored. Lines starting with a ##~ are ignored as comments. To specify a blank subject line, enter ~.

You can specify multiple subjects. The program then checks for messages that contain any one of the specified subject lines. You use this setting when you are trying to copy/remove specific messages from one or more mailboxes.

FileContainingListOfMessageSubjects =

=================================================

SubjectStringMatchCriteria

This setting controls how the program matches subject name strings when you create restrictions.

Possible Values:

0 - Sub-string match, ignore case

1 - Full string match, ignore case

2 - Exact String match

Default Value: 0

SubjectStringMatchCriteria =

FileContainingListOfAttachmentNames

This setting points to a text file that contains all the attachment names for which you want the program to search. The file must contain one attachment name per line. Blank lines are ignored. Lines starting with a ##~ are ignored as comments. Blank attachment names are not supported.

You can specify multiple attachment names. The program then checks for messages that contain any one of the specified attachments.

You use this setting when you are trying to copy/remove specific messages from one or more mailboxes.

FileContainingListOfAttachmentNames =

AttachmentNameStringMatchCriteria

This setting controls how the program matches attachment name strings when you create restrictions.

Possible Values:

0 - Sub-string match, ignore case

1 - Full string match, ignore case

2 - Exact String match

Default Value: 1

AttachmentNameStringMatchCriteria =

FoldersProcessed

This setting causes the program to ignore certain folders or to process only certain folders, or to process all folders. You must specify the actual list of folders using the ListOfFolders setting or the FileContainingListOfFolders setting.

Possible values:

0 - Ignore specified folders

1 - Process only specified folders

2 - Process all folders

Default value: 2

FoldersProcessed = 2

ListOfFolders

This setting specifies a list of folders to be processed. Depending on the value of the FolderActions setting, this list contains the names of folders to be ignored or of folders to be processed. This list must contain the complete path of the folders, with each path separated by a semicolon (;).

If you have folder names that contain semicolons, do not use this setting. Use the FileContainingListOfFolders setting instead.

Default value: Blank

For example:

ListOfFolders = Deleted Items;Sent Items;Inbox\Junk Mail

ListOfFolders =

FileContainingListOfFolders

This setting specifies the name of a file that contains the names of folders. Depending on the value of the FolderActions setting, these names are the names of folders to be ignored, or of folders to be processed. Each folder name must contain the complete path of the folder. The file must contain one folder name per line. Blank lines are ignored. Lines starting with a ##~ are ignored as comments.

Default value: Blank

FileContainingListOfFolders =

ApplyActionToSubFolders

This setting is only applicable if the value of the FoldersProcessed setting is 0 or 1, in other words, if you want to ignore certain folders or process only certain folders.

This setting controls whether the action specified in the FoldersProcessed settings are applied to subfolders of the folders specified using the ListOfFolders or FileContainingListOfFolders settings.

Therefore, if you are ignoring certain folders, setting this option to 1 will cause subfolders of the selected folders to be ignored. Otherwise, subfolders are processed. If you are processing only certain folders, setting this option to 1 will cause the subfolders of the selected folders to be processed also. Otherwise, subfolders are not processed.

Possible values:

0 - Do not apply action to subfolders

1 - Apply action to subfolders

Default value: 0

ApplyActionToSubFolders = 0

LogFileName

This setting specifies the name of the log file to be used.

Default value: ExMerge.log

LogFileName = ExMerge.log

LoggingLevel

This setting specifies the level of logging.

Possible values:

0 - None

1 - Minimum

2 - Medium

3 - Maximum

Default value: 0

LoggingLevel = 0

DataDirectoryName

This setting specifies the name of the directory to which .pst files are written or exported. The directory is created if it does not exist.

Default value: C:\EXMERGEDATA

DataDirectoryName = C:\EXMERGEDATA

FileContainingListOfDatabases

This setting specifies the name of a text file that contains the Windows 2000 or Windows Server 2003 distinguished names of the mailbox store databases on which you want to work. Each line of the file must have one distinguished name. The distinguished name that you specify can be the complete Windows 2000 or Windows Server 2003 distinguished name of a mailbox store database object, or it can have the following format:

CN=,CN=

Blank lines are ignored. Lines starting with a ##~ are ignored as comments. This setting can be used with the FileContainingListOfMailboxes setting. If this setting is not specified, or if the FileContainingListOfMailboxes setting is not specified, all mailboxes, except those for services (Directory Service or Instant Messaging Service, for example) on the specified server are processed.

This setting is applicable only when you run the program in batch mode.

Default Value: Blank

FileContainingListOfDatabases=

RestoreDB

This setting specifies whether you are extracting data from a restored database (RestoreDB=1) or an unrestored database (RestoreDB=0). If you use the FileContainingListOfDatabases option to extract restored databases, specify a value of 1.

You need to change this setting only when you run the program in batch mode. If you run the program in interactive mode, the setting automatically changes based on the types of databases selected.

Possible Values:

0 - Unrestored databases

1 - Restored databases

Default Value: 0

RestoreDB=0

DelimiterUsedInMailboxFile

This setting specifies which delimiter to use to distinguish between the SourceDN and the TargetDNs in the file that you specify in the FileContainingListOfMailboxes setting.

Possible Values:

0 - Comma

1 - Tab

2 - Semicolon

3 - Colon

4 - Space

Default Value: 0

DelimiterUsedInMailboxFile = 0

FileContainingListOfMailboxes

This setting specifies the name of a text file that contains the distinguished names of mailboxes on which you want to work.

Each line of the file must have the following format:

[, ]

The TargetDN is optional. If you specify it, then depending on what the selected merge action is, it might be used to get the name of the .pst file to be generated or the name of the mailbox into which data is merged. By default, a comma is used as the delimiter between the SourceDN and TargetDN. You can specify another delimiter by using the DelimiterUsedInMailboxFile setting.

Blank lines are ignored.

Lines starting with a ##~ are ignored as comments.

If you do not specify this setting, all mailboxes, except those for services (Directory Service or Instant Messaging Service, for example) on the specified server are processed.

Default value: Blank

FileContainingListOfMailboxes =

StartingIndex

This setting specifies the index in the list of mailboxes, at which to start processing. The list of mailboxes can be obtained in the following ways:

• From the source or destination server name specified in this file

• From the list of mailboxes specified in a text file

• From the list of database names specified in a text file

Using the different criteria specified, the program extracts a list of mailboxes. If the StartingIndex setting is specified, the program starts processing mailboxes at the StartingIndex, in the list of mailboxes.

This setting is applicable only when you run the program in batch mode. This setting can have a value from 0 upward.

Default Value: 0

StartingIndex=

EndingIndex

This setting specifies the last index in the list of mailboxes, which is processed. Use this setting with the StartingIndex setting and only if you specify a valid StartingIndex.

If a value is specified that is larger than the total number of mailboxes extracted, the program processes all available mailboxes. This setting is applicable only when you run the program in batch mode.

A value of -1 indicates that the program should process mailboxes up to the end of the mailbox list.

Default value: -1

EndingIndex=

DateAttribute

This setting specifies which date attribute the program uses when it extracts items by date. This setting is valid only if you specify valid dates and times in the SelectMessageStartDate and SelectMessageEndDate settings.

Possible values:

0 - PR_MESSAGE_DELIVERY_TIME

1 - PR_LAST_MODIFICATION_TIME

Default value: 0

DateAttribute = 0

=================================================

DataImportMethod

This setting controls how data is copied from the source store to the target store. Possible values are as follows:

|Value |Function |

|0 |Copy all messages from the source store to the target store. |

|1 |Merge messages into the target store. Copy only those messages that do not exist in the target store. |

|2 |Replace existing messages in the target store. (If a message in the source store exists in the target store, delete|

| |that message in the target store and then copy the message from the target store.) |

|3 |Archive existing messages from the source store into the target store. If this option is selected, the program |

| |copies data from the source store to the target store and then deletes the data from the source store. This option |

| |is valid only if the MergeAction is Extract. |

Default value: 1

DataImportMethod= 1

ReplaceDataOnlyIfSourceItemIsMoreRecent

This setting causes the program to replace items in the target store only if the item in the source store is more recent than the item in the target store. This setting is applicable only if the DataImportMethod setting is set to 3 (Replace Data). To determine whether the item in the source store is more recent that the target store, the program checks the PR_LAST_MODIFICATION_TIME message attribute. If an item does not exist in the target store, it is copied to the target store regardless of the value of this setting.

Possible values:

0 - Replace all data in the target store.

1 - Replace only items in the target store, if the source store has a more recent version.

Default value: 1

ReplaceDataOnlyIfSourceItemIsMoreRecent = 1

CopyUserData

This setting controls whether the program copies user data (messages, folders, calendar, contacts, and so on). Even if you select this setting, the program does not copy Schedule+ data. It is recommended that you select this setting, or the program will not copy any folders and messages to the target store.

Possible values:

0 - Do not copy user data (messages, folders, calendar, contacts).

1 - Copy user data.

Default value: 1

CopyUserData = 1

CopyAssociatedFolderData

This setting controls whether the program copies associated folder messages. Associated messages are not visible in an Exchange client or in Microsoft Outlook®, and they are used by the client to save different settings. If you are running Exchange Server 5.0 or later versions, select this setting to have the program copy folder rules and views.

Possible values:

0 - Do not copy associated data for each folder.

1 - Copy associated data for each folder.

Default value: 0

CopyAssociatedFolderData = 0

CopyFolderPermissions

This setting controls whether the program copies folder permissions to the target folder. If you select this option, folder permissions on the target folder are overwritten by the permissions from the source folder

Possible values:

0 - Do not overwrite permissions.

1 - Copy permissions from the source folder to the target folder, overwriting the existing permissions on the target folder.

Default value: 0

CopyFolderPermissions = 0

CopyDeletedItemsFromDumpster

This setting controls whether the program copies items that a user deleted but that can be recovered through Deleted Items Recovery. This setting is valid only when extracting data from Exchange Server version 5.5 or later versions. For all other versions of Exchange Server, this setting is ignored.

Possible values:

0 - Do not copy items from the Dumpster.

1 - Copy items from the Dumpster.

Default value: 0

CopyDeletedItemsFromDumpster = 0

RemoveIntermediatePSTFiles

If this setting is set to 1, the program removes any intermediate .pst files that it creates. This option is useful only when the MergeAction is Extract&Import. If this option is set to 0, it causes an accumulation of .pst files and can cause the drive to run out of disk space.

Default value: 1

RemoveIntermediatePSTFiles = 1

UseThisPSTFileForAllMailboxes

This setting points to an existing .pst file. The file name should not have a path. The program looks for this file in the DataDirectoryName that you specify. If you specify this setting, and the file exists, the program uses this .pst file instead of generating a .pst file name based on the Directory Name.

This option is valid only when the MergeAction is Import. Currently, this option is valid only when you run the program in batch mode.

Default Value:

Example:

UseThisPSTFileForAllMailboxes = DataToBeImported.PST

UseThisPSTFileForAllMailboxes =

LocalisedPersonalFoldersServiceName

This setting indicates the name of the Personal Folders service in localized clients. Following are some of the possible values:

French:

LocalisedPersonalFoldersServiceName=Dossiers personnels

Spanish:

LocalisedPersonalFoldersServiceName=Carpetas personales

German:

LocalisedPersonalFoldersServiceName=Persönlicher Ordner

LocalisedExchangeServerServiceName

This setting indicates the name of the Exchange Server service in localized clients. This is generally the value of the [PR_PROVIDER_DISPLAY] entry under the [EMS_MDB_private] section of the MAPISVC.INF file.

French:

LocalisedExchangeServerServiceName=Banque d'informations Microsoft Exchange

German:

LocalisedExchangeServerServiceName=Microsoft Exchange-Informationsspeicher

MapFolderNameToLocalisedName

This setting controls whether the program searches this file for localized names of folders. If this setting is set to 1, the program checks the [Folder Name Mappings] section in this file for an entry for each folder being copied.

The format of the entries in the [Folder Name Mappings] section is =

If an entry for the folder being processed in the source store is found in the [[Folder Name Mappings] section, then instead of copying data to the original folder, the program copies data to the target folder name specified in the [Folder Name Mappings] section entry. However, if neither the original folder nor the new target folder name is found, the program creates a folder that has the original folder name.

For example, if the MapFolderNameToLocalisedName setting is set to 1, before it copies data from a folder named Inbox, the program checks the [Folder Name Mappings] section for an "Inbox=" entry. Suppose it finds an entry Inbox=Posteingang. Now instead of copying data to a folder named Inbox or creating a new folder named Inbox, it copies data to the folder named Posteingang, if that folder exists. If a folder named Posteingang does not exist, a new folder named Inbox is created.

This enables the program to recognize localized versions of the common Exchange folders: Inbox, Outbox, Deleted Items, and so on. This setting is useful only when merging data extracted from a source modified with a different language client and then importing that data into a target store with a different language client.

For example, you extract data from a mailbox with an English client into a .pst file, and then you import the data from this .pst file into a mailbox with a German client.

Default value: 0

MapFolderNameToLocalisedName = 0

RenameFoldersBasedOnFolderMappings

This setting controls whether the program renames folders in the target store if it finds a mapping entry in the [Folder Name Mappings] section.

Note   This setting is used only if the MapFolderNameToLocalisedName setting is 1. By default, special folder names on the target server are always renamed to match the names in the source server. To override this behavior, you must set the RenameSpecialFolders setting, described later in this document, to 0. Special folders are the default folders such as Inbox, Outbox, and Sent Items.

The format of the entries in the [Folder Name Mappings] section is =.

If the MapFolderNameToLocalisedName setting has a value of 1, then when processing a folder from the source store, if an entry for the folder is found in the [Folder Name Mappings] section, instead of copying data to the original folder, the program copies data to the target folder name specified in the [Folder Name Mappings] section entry.

If the RenameFoldersBasedOnFolderMappings setting is 1, the program renames the folder in the target store to which you want to copy data to be the name of folder in the source store from which you are copying data.

For example, if the MapFolderNameToLocalisedName setting is set to 1, before it copies data to a folder named Inbox, the program checks the [Folder Name Mappings] section for an "Inbox=" entry. Suppose it finds an entry Inbox=Posteingang. Now instead of copying data to a folder named Inbox or creating a new folder named Inbox, it copies data to the folder named Posteingang, if that folder exists. If the RenameFoldersBasedOnFolderMappings setting is 1, the program renames the Posteingang folder to Inbox. If a folder named Posteingang does not exist, a new folder named Inbox is created, and the data is copied to it.

This setting is useful only when you are merging data extracted from a source modified with a different language client and then importing that data into a target store with a different language client, and you want to change the names of the default folders. For example, you extract data from a mailbox with an English client to a .pst file. Then you import the data from this .pst file into a mailbox created by a German client. In other words, before you import the data, the target mailbox has the default folder names in German.

If you are importing data from a .pst file that has English folder names, and you want the target mailbox to have English folder names after the import, you must have a = mapping in the [Folder Name Mappings section]. Also, you must set the MapFolderNameToLocalisedName setting to 1 and the RenameFoldersBasedOnFolderMappings setting to 1. If you set the MapFolderNameToLocalisedName setting to 1, but the RenameFoldersBasedOnFolderMappings setting is set to 0, the program copies data from the English folder name in the .pst to the corresponding German folder name in the mailbox. However it does not rename the German folder names. Therefore, after the import, the target mailbox still has German folder names, but data is in the corresponding German folders.

Default Value: 0

RenameFoldersBasedOnFolderMappings = 0

[Folder Name Mappings]

Ensure that the value for MapFolderNameToLocalisedName is set to 1, or the settings in this section will be ignored. These entries are also used when the RenameFoldersBasedOnFolderMappings setting is 1. The format of the entries in this section is =

For example, to map folder names from English to German, the following can be used:

Inbox = Posteingang

Deleted Items = Geloschte Objekte

Sent Items = Gesendete Objekte

Outbox = Postausgang

=================================================

RenameSpecialFolders

This setting overrides the default behavior that special folders are always renamed on the target server to match the names in the source server. This behavior was new in Exchange Server 2003. Special folders are the default folders such as Inbox, Outbox, and Sent Items. Set RenameSpecialFolders to 0 to override the default behavior.

Default Value: 1

RenameSpecialFolders = 1

=================================================

[International]

DefaultLocaleID

This setting specifies the default locale that the program uses when it logs on to mailboxes. If this setting is not specified, the program uses the default locale of the computer on which the program is run. The value should be specified as a decimal number.

Note   If some users log on to their mailboxes using a client that is in a double byte character set (DBCS) language, you should set the DefaultLocaleID to the Locale ID of the DBCS language before you merge mailboxes.

Following is a list of supported locale and code page values:

====================================================

Name Code Page ID Locale ID

====================================================

Chinese (PRC) 936 2052

Chinese (Taiwan) 950 1028

Czech 1250 1029

Danish 1252 1030

Dutch 1252 1043

English (US) 1252 1033

Finnish 1252 1035

French 1252 1036

German 1252 1031

Greek 1253 1032

Hungarian 1250 1038

Japanese 932 1041

Korean 949 1042

Italian 1252 1040

Norwegian 1252 2068

Polish 1250 1045

Portuguese (Portugal) 1252 2070

Portuguese (Brazil) 1252 1046

Russian 1251 1049

Spanish (Mexico) 1252 2058

Spanish (Modern Sort) 1252 3082

Spanish (Traditional Sort) 1252 1034

Swedish 1252 1053

Turkish 1254 1055

------------------------------------------------------------------------------------------

DefaultLocaleID =

UseLastLogonLocaleID

This setting specifies whether the program uses the last logon locale ID when it logs on to mailboxes. If this setting is not specified, the program uses the DefaultLocaleID. The value should be specified as a decimal number.

Possible Values:

0 - Do Not use last logon locale ID

>= 1 - Use last logon locale ID

Default Value: 0

UseLastLogonLocaleID = 0

Tips for Running the Mailbox Merge Program

• It is recommended that you log on to Windows as the Exchange Service Account when you run the program.

• Before you import data into a new Exchange store, log on to any mailbox on that Exchange store, and send a test message to every mailbox on the server. If you do not do this, ExMerge.exe will not detect any mailboxes that have not been logged on to or that have not received any mail.

This step is required only when you run the program by using the two-step merge and import data into a Microsoft Exchange Information Store. This is because the program gets the list of mailboxes from the Exchange store, and if no Exchange store object exists for a mailbox, the program will skip that mailbox.

When you run the program by using the one-step merge, it automatically generates the distinguished names of the target mailboxes or reads them from the list of mailboxes specified. Therefore, even if the target mailboxes do not exist in the Exchange store, the program can continue.

• Ensure that you have sufficient free disk space on the drive that will contain the intermediate .pst files. Use the required free space displayed by the program as an approximate guide. This is especially true if you are extracting data from the Dumpster, as the program cannot predetermine the size of items that it recovers from the Dumpster.

• When you running the program by using the one-step merge, do not select the option to delete the intermediate .pst files. Having the intermediate .pst files can be a valuable backup in certain circumstances. Not deleting the .pst files can increase the amount of free disk space required.

• When you select the option to extract items between a range of dates, be aware that this range of dates also applies to associated folder items (folder rules, views). This can have implications when you import data to a new Exchange store. You might prefer to run the program two times; one time with dates specified, to process only user messages, and again without the dates specified, to process only associated folder messages.

• Be aware that even if you specify a range of dates, if the option to extract items from the Dumpster is selected, all items in the Dumpster are extracted, regardless of the range specified. Also this option extracts only messages that a user deleted from the Deleted Items folder. If a user permanently deleted messages from other folders, ExMerge.exe cannot extract them from the Dumpster.

• Be aware that if the option to archive data is selected, the program will delete user messages and associated folder messages from the source store. Therefore, it is recommended when you archive data, that you clear the option to process associated folder messages, unless it is absolutely necessary to select it. This will prevent the program from deleting folder rules, views, forms, and so on that you did not intend to archive.

• The program cannot archive items out of the Dumpster. Therefore, if the options to archive data and to extract items from the Dumpster are selected, the program extracts items from the Dumpster, but does not delete the items.

• Generally, do not run the program on an Exchange production server. When you copy large messages, ExMerge.exe can occupy a significant percentage of the processor, thereby slowing the Exchange server.

• When you work against many mailboxes on an Exchange server, it can help to run multiple instances of the program on different servers. Each instance processes a subset of the total number of mailboxes on the source server.

• If you run multiple instances of the program on a single server, use different .ini files that have each instance, and point to a different log file in each .ini file.

• When you run the program in a disaster recovery situation, it may help to have the program ignore certain folders, such as Deleted Items or Sent Items, to speed up operation. After the main data for all mailboxes is imported, you can run the program again, and then have it process only the folders that it previously ignored. Conversely, you can first specify that the program process only certain folders, such as Calendar, Contacts, and Inbox. After these folders are restored for all mailboxes, you can run the program again, this time ignoring the folders that were processed the first time.

• If you are sure that the data that is being extracted from the source store is not in the target store, it may be more useful to select the Copy procedure, instead of the default merge procedure. This will speed up program operation, because the program will not determine whether each message exists in the target store before deciding to copy it. This approach can have the disadvantage of creating duplicate items in the target store.

• Select the option to extract data between a range of dates. This reduces the time the program takes to finish running.

• Unless otherwise required, do not select the option to extract data from the Dumpster. Extracting deleted items from the Dumpster is a potentially time- consuming operation, and can significantly increase the amount of data extracted from the Exchange server.

• Configure the [Folder Name Mappings] section in the ExMerge.ini file, if you need to, before you start to run the program. Otherwise, you might need to run the program again, after adding the required entries. For more information about this, see the section "Using the Mailbox Merge Program in Non- US English Environments" earlier in this document.

Common Problems

Following are some common problems that you might find when you run ExMerge.exe, and their solutions.

The Server 'SVR' Specified in the .ini File Is Inaccessible or Is Not a Microsoft Exchange Server

This error could be generated in the log for one of the following reasons:

1. The server specified does not exist, does not have Microsoft Exchange Server installed, or the Microsoft Exchange services are not running on the server.

40. The Windows account that is currently logged on does not have sufficient rights. This account must at minimum have access to all mailboxes and have administrator rights on the site level. It is recommended that you use the Service Account or an account that has Service Account administrative rights on the organization, site, and configuration containers.

41. If you run ExMerge.exe from the Windows Scheduler, ensure that the Windows Scheduler service is not using Local System Account to start, but is using an account that has the required rights at the organization, site, and configuration levels.

Problems Getting Mailboxes on a Server

Following are some of the reasons for errors in getting the list of mailboxes:

1. Invalid server name specified.

42. Verify that the Microsoft Exchange Directory and Information Store (IS) services are running on the server specified. The program gets the list of mailboxes from the Microsoft Exchange Information Store service and not from the directory service, because it needs the mailbox size, and this information is only available in the Exchange store.

43. The list displayed might not contain all the mailboxes on the Exchange server. Mailboxes that have never been logged on to have no Information Store object and therefore are not detected. This also occurs in the Exchange Administrator program when viewing the Mailbox Resources page of the private information store. The workaround is to log on to the Exchange client, and send an e-mail message to all mailboxes on that server. This will create mailbox objects in the information store for all mailboxes.

44. In ExMerge.exe versions earlier than version 2.11, check the organization and site names entered. In version 2.11 and later of ExMerge.exe, you must specify only the server name, and the program automatically determines the Exchange organization and site names. This eliminates any errors generated by incorrectly entered organization and site names.

45. The source mailbox is a Recovery Storage Group and the target mailbox is in another forest and you are using the one step method. Use the two step method to move mailboxes from a Recovery Storage Group to a server in a different forest. See the section, "Modes of Operation" earlier in this document for information about the one and two-step methods of merging, copying, or replacing data.

Error Configuring Message Service (MSEMS)

This error may be reported in the ExMerge.exe log. This error can be generated if there is no directory object for a mailbox object in the information store.

Check the Mailbox Resources page of the private information store, in the administrator program, and then verify that directory objects exist for the mailboxes listed on the Mailbox Resources page. Directory objects can be created manually or by using the DS/IS adjustment for Exchange Server 5.5.

Warning: Make sure you understand the implications of running the DS/IS adjustment BEFORE running it.

Error Opening Message Store (MSEMS)

If this error is generated in the log, make sure that you are logged on to Windows with an account that has rights to the mailboxes you are trying to access using ExMerge.exe. It might be easiest to log on to Windows using the Microsoft Exchange Service Account.

Error Creating Message Service (MSPST MS)

If this error is generated in the log, ensure that the Exchange client or Microsoft Outlook is installed on the computer on which you are running ExMerge.exe.

This error should not be generated in version 2.11 or later of ExMerge.exe, because the program checks whether the required client files are installed on the local computer server before it starts the merge procedure. If the files are not found, the program stops with an error message.

Error Configuring Message Service (MSPST MS)

This error can be generated for the following reasons:

• The .pst file is read-only or otherwise inaccessible for modifications.

If a .pst file is in the specified location, the program tries to open it with read/write access. If the .pst file is marked as read-only or the permissions on the share or directory do not allow modifications to the file, the error is generated.

When it exports data to a .pst file, generally the program creates a .pst file. However, if a .pst file that has same name already exists in the target directory, the program modifies this file.

• The .pst file is locked by another application.

The error can be generated if the .pst file is locked open by another application, such as Outlook. Exit and log off the application, and then try to run ExMerge.exe again.

• The .pst file name is too long for the file system.

When it extracts data to .pst files, the program creates the .pst files using the directory name (in the object DN) of the mailboxes as the file name. The error is generated in the log if the distinguished name of a mailbox being processed is more than eight characters long, and ExMerge.exe cannot create the long file name for the .pst file on the drive specified. This occurs when you save the files onto a network drive that is running an operating system that does not support long file names.

• The .pst file name contains invalid characters.

• The error can also be generated if the distinguished name (in the object DN) contains characters that cannot be used in a file name. In this case, run the program in batch mode, specifying the SourceDN and TargetDN in the mailboxes.txt file. The distinguished name in the TargetDN should contain characters that can be used in a file name. For more information, see the section "Specifying Different Target Mailboxes" earlier in this document.

• The .pst file is password-protected.

When importing data from a .pst file into an Exchange server, the error will be generated if the .pst file being read is protected by a password. ExMerge.exe cannot operate on .pst files that are password-protected. The only way around this issue, is to log on to Outlook (or the Exchange client), add the .pst file in question to the profile, and remove the password on the .pst file. After this, run ExMerge.exe again.

Error Opening Message Store (MSPST MS)

If this error is generated in the log, determine whether a non-US English version of the Exchange client or Outlook is installed on the computer server running ExMerge.exe. You can verify this by looking at the MAPISVC.INF file in the WINNT\System32 directory.

To resolve this problem, create an .ini file named ExMerge.ini in the same directory as the ExMerge.exe executable. You can use another file name, but you then must specify the name of the file using the /F command-line option when you run ExMerge.exe.

Add the following entry to this file:

[EXMERGE]

LocalisedPersonalFoldersServiceName=

Where is the localized name of the Personal Folders service. This is generally the name displayed in the client when you add the Personal Folders service to your profile. You can also determine the localized name in the [MSPST MS] section of the MAPISVC.INF file.

Store 'MSPST MS' Was Not Opened

If this error is generated in the log, determine whether a non-US English version of the Exchange client or Outlook is installed on the computer that is running ExMerge.exe.

To resolve this problem, create an .ini file named ExMerge.ini in the same directory as the ExMerge.exe executable. You can use another file name, but then you must specify the name of the file using the /F command-line option when you run ExMerge.exe.

Add the following entry to this file:

[EXMERGE]

LocalisedPersonalFoldersServiceName=

Where is the localized name of the Personal Folders service. This is generally the name displayed in the client when you add the Personal Folders service to your profile. You can also determine the localized name in the [MSPST MS] section of the MAPISVC.INF file.

By default, ExMerge.exe recognizes the names in Spanish, German, and French. You do not have to add the entry in the .ini file for these languages. However, for other languages, you must add the correct value to the ExMerge.ini file.

Store 'MSEMS' Was Not Opened

This error is generated when you run ExMerge.exe on a computer that has a localized version of Windows and Exchange Server.

To resolve this problem, create an .ini file named ExMerge.ini in the same directory as the ExMerge.exe executable. You can use another file name, but then you must specify the name of the file using the /F command-line option when you run ExMerge.exe.

Add the following entry to this file:

[EXMERGE]

LocalisedExchangeServerServiceName=

Where is the localized name of the Exchange Server service. This is generally the value of the PR_PROVIDER_ DISPLAY entry under the [EMS_MDB_private] section of the MAPISVC.INF file.

By default, ExMerge.exe recognizes the names in German and French. You do not receive the error for these languages. For other languages, you must add the correct value to the ExMerge.ini file.

Error Accessing Directory Object for 'DN'

This error is generated when you run the program in batch mode and specify a list of mailboxes to be processed.

The error is generated if the distinguished name specified in the text file does not refer to a valid mailbox object in the Exchange directory.

Note   When the MergeAction is Extract or Extract&Import, ExMerge.exe connects to the source server specified in the .ini file to validate the Distinguished names specified in the text file. When the MergeAction is Import, the program connects to the destination server specified in the .ini file. Therefore, if replication is not complete, and the source or destination server does not have information about the mailboxes specified in the text file, this error can be generated.

The error can also be generated if the distinguished name specified has a multiword directory name. For example:

/o=Microsoft/ou=PST-Central/cn=Recipients/cn=Buhariwalla, Kali

By default, the program uses a comma as a delimiter to parse out the SourceDN and TargetDN from each line of the text file that contains the mailboxes. In the example, the program will incorrectly parse the SourceDN.

To avoid this problem, ExMerge.exe enables the user to specify a delimiter to use when parsing the mailbox data. The delimiter is specified using the DelimiterUsedInMailboxFile setting in the .ini file.

Following are the possible values for this setting:

0 - Comma

1 - Tab

2 - Semicolon

3 - Colon

4 - Space

Default value: 0.

The Ordinal 6883 Could Not Be Located in the Dynamic Link Library MFC42.DLL

This error is displayed because the version of the MFC42.DLL file on the local server is out of date. ExMerge.exe uses an updated version of the MFC42.dll file. The updated .dll file should be version 6.00 or a later version.

The Dynamic Link Library Could Not Be Found in the Specified Path

This error is displayed because one or more required .dll files are not present on the local server. To resolve this problem, reinstall the Microsoft Exchange Administrator program on the local server.

Error Running the Program on a Computer with Outlook 2000 Installed

When you run the Mailbox Merge program on a computer that has Outlook 2000 installed, the following error may be displayed and logged:

"Error encountered reading list of recipients on server 'SERVERNAME'. Make sure you have Admin permissions on the Private Information Store object. Please refer to the 'Exmerge.log' log file for more information."

Also, if you are running the Mailbox Merge program on a computer that has Outlook 2000 installed, and you are using the -NUMTHREADS option, certain mailboxes might not be processed.

These problems do not occur when you run the program on a computer that has an earlier version of Outlook, or on a computer that has no Exchange client (or Outlook) installed on it. These problems occur because of how Outlook 2000 installs the MAPI system files. These files are no longer installed in the WINNT\System32 directory, and "stub" .dll is installed in the System32 directory.

Currently, the only workaround is to copy the MAPI32.dll file from the WINNT\System32 directory of an Exchange server, or a computer that has Outlook 98 installed, into the directory that contains the ExMerge.exe file.

The Mailbox Merge program then uses this local copy of the MAPI32.dll file and does not experience the above problems.

No Information Written to the Log File

When the program is run, no information is written to the ExMerge.log file.

This situation can occur if another instance of the program is running and is writing to the same log file.

MapFolderNameToLocalisedName and RenameFoldersBasedOnFolderMappings Do Not Work with Double Byte Character Set (DBCS) Languages

This is a known issue. DBCS languages will not work with the MapFolderNameToLocalisedName or RenameFoldersBasedOnFolderMappings options.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download