Sie sind auf Seite 1von 80

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

Exchange Mailbox Merge Program ........................................................1


Table of Contents.......................................................................i
Introduction...............................................................................1
Requirements and Setup...........................................................2
Using the Mailbox Merge Program to Reduce Downtime ..........................2
For Exchange Server 5.5...................................................................................3
For Exchange 2000 or Exchange 2003..............................................................5
Using Mailbox Merge as a Brick-Level Backup Agent.................................6
Migrating User Data between Organizations and Sites..............................7
Extracting Data from the Dumpster...........................................................8
Extracting Folder Rules..............................................................................9
Extracting Data from a Damaged Private Microsoft Exchange Information Store. 10
What Occurs When the Merge Program Encounters a Corrupted Message.....10
Overwriting All Existing Data in the Target Store............................................11
Overwriting Older Existing Data in the Target Store.......................................11
Removing Particular Messages from the Source Store ............................12
Limitations of the Mailbox Merge Program..............................13
Modes of Operation.................................................................14
Differences between Interactive and Batch Mode...................15
Command-line options............................................................16
Logging....................................................................................17
Running the Mailbox Merge Program......................................18
Interactive Mode......................................................................................18
Selecting Merge Procedure.............................................................................18
Data Selection Criteria....................................................................................20
Selecting Databases.......................................................................................29
Selecting Mailboxes........................................................................................30
Selecting the Default Mailbox Locale..............................................................31
Selecting the Target Directory........................................................................32
Saving Program Settings.................................................................................33
Merge Process Status .....................................................................................35
Support for .Ini File in Interactive Mode..........................................................36
Batch Mode..............................................................................................36
Minimum Batch Mode Settings........................................................................36
Specifying Mailboxes to Be Processed............................................................36
ii Exchange Mailbox Merge Program

Specifying Different Target Mailboxes............................................................37


Using ExMerge.exe to Migrate Data Between Sites or Organizations..............38
Working Against Mailboxes Homed on Different Servers................................39
Specifying Folders to Be Ignored....................................................................39
Specifying Folders to Be Processed.................................................................40
Selecting Messages by Date...........................................................................40
Selecting Messages Using the Message Modification Time.............................41
Archiving Data from a Mailbox........................................................................41
Saving Folder Permissions..............................................................................41
Saving Folder Rules........................................................................................41
Extracting Data from the Dumpster................................................................42
Removing Specific Messages..........................................................................42
Redirecting Messages to Another Folder.........................................................43
Running the Program Against Multiple Servers Without Customizing the .Ini
File .................................................................................................................44
Specifying a Range of Mailboxes to Be Processed .........................................44
Running the Mailbox Merge Program Using the Windows Scheduler...............45
Using the Mailbox Merge Program in Non-US English Environments. 46
Localized Provider Names........................................................................46
Localized Folder Names...........................................................................47
Copying Data..................................................................................................47
Renaming Folders...........................................................................................48
Algorithm to Determine the Number of Threads Used by ExMerge.exe
................................................................................................50
.Ini File Settings.......................................................................51
DomainControllerForSourceServer...........................................................52
SrcServerLDAP-Port.................................................................................52
DestServerName......................................................................................52
DomainControllerForDestServer..............................................................53
DestServerLDAP-Port...............................................................................53
SelectMessageStartDate..........................................................................53
SelectMessageEndDate............................................................................54
FileContainingListOfMessageSubjects......................................................54
SubjectStringMatchCriteria......................................................................54
FileContainingListOfAttachmentNames....................................................55
AttachmentNameStringMatchCriteria......................................................55
FoldersProcessed.....................................................................................55
ListOfFolders ...........................................................................................56
FileContainingListOfFolders ....................................................................56
ApplyActionToSubFolders........................................................................56
LogFileName............................................................................................57
LoggingLevel...........................................................................................57
DataDirectoryName.................................................................................57
FileContainingListOfDatabases................................................................57
RestoreDB................................................................................................58
DelimiterUsedInMailboxFile......................................................................58
Table of Contents iii

FileContainingListOfMailboxes.................................................................58
StartingIndex...........................................................................................59
EndingIndex.............................................................................................59
DateAttribute...........................................................................................59
DataImportMethod...................................................................................60
ReplaceDataOnlyIfSourceItemIsMoreRecent............................................60
CopyUserData..........................................................................................61
CopyAssociatedFolderData......................................................................61
CopyFolderPermissions............................................................................61
CopyDeletedItemsFromDumpster............................................................62
RemoveIntermediatePSTFiles..................................................................62
UseThisPSTFileForAllMailboxes................................................................62
LocalisedPersonalFoldersServiceName....................................................62
LocalisedExchangeServerServiceName...................................................63
MapFolderNameToLocalisedName...........................................................63
RenameFoldersBasedOnFolderMappings.................................................64
[Folder Name Mappings]..........................................................................65
RenameSpecialFolders.............................................................................65
[International].........................................................................................65
DefaultLocaleID..............................................................................................65
UseLastLogonLocaleID....................................................................................66
Tips for Running the Mailbox Merge Program.........................67
Common Problems..................................................................69
The Server 'SVR' Specified in the .ini File Is Inaccessible or Is Not a Microsoft
Exchange Server......................................................................................69
Problems Getting Mailboxes on a Server.................................................69
Error Configuring Message Service (MSEMS)...........................................70
Error Opening Message Store (MSEMS)....................................................70
Error Creating Message Service (MSPST MS)...........................................70
Error Configuring Message Service (MSPST MS).......................................71
Error Opening Message Store (MSPST MS)...............................................71
Store 'MSPST MS' Was Not Opened..........................................................72
Store 'MSEMS' Was Not Opened...............................................................72
Error Accessing Directory Object for 'DN'.................................................73
The Ordinal 6883 Could Not Be Located in the Dynamic Link Library MFC42.DLL 74
The Dynamic Link Library <xxxx.dll> Could Not Be Found in the Specified Path. 74
Error Running the Program on a Computer with Outlook 2000 Installed. .74
No Information Written to the Log File.....................................................75
MapFolderNameToLocalisedName and RenameFoldersBasedOnFolderMappings
Do Not Work with Double Byte Character Set (DBCS) Languages............75
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
(http://go.microsoft.com/fwlink/?LinkId=30250), or Disaster Recovery for Microsoft Exchange
2000 Server (http://go.microsoft.com/fwlink/?linkid=24619). For more information about
Recovery Storage Groups, see Using Exchange Server 2003 Recovery Storage Groups
(http://go.microsoft.com/fwlink/?LinkId=23233).
Requirements and Setup 3

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.
b. 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\ParametersSyst
em.
c. Restore the online backup to RECOV_SRVR.
d. 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.
b. Copy the PRIV.EDB and PUB.EDB files to the RECOV_SRVR.
c. 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.
b. On PROD_SRVR, on each drive that contains an EXCHSRVR\MDBDATA directory, create a
new directory named EXCHSRVR\MDBDATA.NEW.
c. On RECOV_SRVR, rename the EXCHSRVR\MDBDATA directory on each drive to
MDBDATA.NEW.
d. On RECOV_SRVR, create a new EXCHSRVR\MDBDATA directory on each drive.
4 Exchange Mailbox Merge Program

e. 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.
f. 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.
g. On PROD_SRVR, rename the EXCHSRVR\MDBDATA directories on each drive to
MDBDATA.RESET.
h. On PROD_SRVR, create new EXCHSRVR\MDBDATA directories on each drive.
i. On PROD_SRVR, move the PRIV.EDB and PUB.EDB files from the MDBDATA.NEW
directory to the MDBDATA directory.
j. 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\ParametersPriv
ate and
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\ParametersPubl
ic.
k. 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.
l. 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.
Requirements and Setup 5

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.


b. The administrative group name to which the database belongs.
c. The storage group name to which the database belongs.
d. The logical database name.
e. 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
(http://go.microsoft.com/fwlink/?LinkId=23233).
• To create a separate Recovery Windows server, follow these steps:
f. Run DCPromo to create a separate Active Directory forest. Remember to isolate the recovery
server from participating in the Production Active Directory.
g. Do not configure the recovery server to use Dynamic Host Configuration Protocol (DHCP)
services.
6 Exchange Mailbox Merge Program

h. Install Exchange 2000 or Exchange 2003 on the recovery server using the same Organization
name as in the Production Server.
i. Create a storage group that has the same logical name as the storage group from which the original
databases were taken.
j. Create logical database names in the storage groups. The names must match the production
database names.
k. 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.
l. Restore your backup set(s). Ensure you select the Last Restore Set check box when you restore the
last online backup set.
m. Mount the database(s).
n. 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.
o. 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.
Requirements and Setup 7

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
(http://go.microsoft.com/fwlink/?LinkId=30730).
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.
8 Exchange Mailbox Merge Program

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=Use
r1
/
o=Org1/ou=Sales/cn=Recipients/cn=User2,/o=Org2/ou=NAmerica/cn=Recipients/cn=Sales/cn=Use
r2

1. Enter the name of the file that you created in Step 1 in the FileContainingListOfMailboxes entry of
the .ini file.
2. 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.
Requirements and Setup 9

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.
10 Exchange Mailbox Merge Program

2. 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.
3. 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 (http://go.microsoft.com/fwlink/?linkid=21769)
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.
Requirements and Setup 11

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.
12 Exchange Mailbox Merge Program

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"
(http://go.microsoft.com/fwlink/linkid=3052&kbid=823166).
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" (http://go.microsoft.com/fwlink/linkid=3052&kbid=823166).
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


2. 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 <number of worker
threads>]

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.
Running the Mailbox Merge Program 19

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.

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.
20 Exchange Mailbox Merge Program

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.
Running the Mailbox Merge Program 21

Selecting the type of data to be extracted

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.
22 Exchange Mailbox Merge Program

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.

Figure 5a Import Procedure tab with Merge data into the target store option
Running the Mailbox Merge Program 23

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.
24 Exchange Mailbox Merge Program

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.
Running the Mailbox Merge Program 25

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.

Figure 6 Folders tab on the Data Selection Criteria page


To specify folders to be ignored
1. Select Ignore these folders.
2. Click the enabled Modify button.
3. 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.
2. Click the enabled Modify button.
26 Exchange Mailbox Merge Program

3. 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.

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).
Running the Mailbox Merge Program 27

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.

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.
28 Exchange Mailbox Merge Program

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.
Running the Mailbox Merge Program 29

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).

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.
30 Exchange Mailbox Merge Program

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.
Running the Mailbox Merge Program 31

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.

Figure 11 Locale Selection page


32 Exchange Mailbox Merge Program

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.
Running the Mailbox Merge Program 33

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.
34 Exchange Mailbox Merge Program

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).
2. After you select the file names, click Save Settings to save the settings.

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.
Running the Mailbox Merge Program 35

• 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).

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.
36 Exchange Mailbox Merge Program

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 <Filename> command-line option, where <Filename> 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.
Running the Mailbox Merge Program 37

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.
2. Specify the name of the Exchange server that uses the SourceServerName or DestServerName .ini file
entries.
3. 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.
38 Exchange Mailbox Merge Program

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.
Running the Mailbox Merge Program 39

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.
2. 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:
40 Exchange Mailbox Merge Program

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.
2. 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.
Running the Mailbox Merge Program 41

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.
42 Exchange Mailbox Merge Program

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 ~<BLANK SUBJECT LINE>
2. Save this file as C:\SUBJECTS.TXT
3. Enter the name of the file created in Step 1 in the FileContainingListOfMessageSubjects entry of the
.ini file.
4. Create a text file that contains the attachment names, with each attachment name entered on a separate
line.
5. Save this file as C:\ATTACHMENTS.TXT
6. Enter the name of the file created in Step 4 in the FileContainingListOfAttachmentNames entry of
the .ini file.
7. Set the following .ini file entries:
a. DataImportMethod = 3
b. CopyUserData = 1
c. CopyAssociatedFolderData = 0
d. CopyFolderPermissions = 0
e. CopyDeletedItemsFromDumpster= 0
f. SubjectStringMatchCriteria = 0
g. AttachmentNameStringMatchCriteria = 1
8. Specify the name of your Exchange server that uses the SourceServerName .ini file setting.
Running the Mailbox Merge Program 43

9. 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.
2. Add the following entry to the [Folder Name Mappings] section:
\ = <Sub Folder>
where <Sub Folder> 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.
44 Exchange Mailbox Merge Program

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 = <Index at which to start processing mailboxes>
b. EndingIndex = <Index at which to stop processing mailboxes>
2. Specify the name of your Exchange server using the SourceServerName .ini file setting.
3. (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.
Running the Mailbox Merge Program 45

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.

4. 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.)
5. 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"
Using the Mailbox Merge Program in Non-US English Environments 47

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=<Localized Exchange Server Service Name>
LocalisedPersonalFoldersServiceName=<Localized Personal Folders Service Name>
<Localised Exchange Server Service Name> 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.
<Localised Personal Folders Service Name> 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
48 Exchange Mailbox Merge Program

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:
<Folder Name in Source Store> = <Folder Name in Target Store>
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:
<Folder Name in Source Store> = <Folder Name in Target Store>
Therefore, consider the following mappings:
[Folder Name Mappings]
Using the Mailbox Merge Program in Non-US English Environments 49

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 <# of worker threads>, 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 =
====================================================
52 Exchange Mailbox Merge Program

DomainControllerForSourceServe
r
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 =
====================================================
.Ini File Settings 53

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
54 Exchange Mailbox Merge Program

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
=================================================

FileContainingListOfMessageSubj
ects
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 ~<BLANK SUBJECT LINE>.
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
.Ini File Settings 55

SubjectStringMatchCriteria =

FileContainingListOfAttachmentN
ames
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 =

AttachmentNameStringMatchCrit
eria
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
56 Exchange Mailbox Merge Program

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
.Ini File Settings 57

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=<Database Name>,CN=<Storage Group Name>
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
58 Exchange Mailbox Merge Program

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:
<SourceDN> [, <TargetDN>]
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.
.Ini File Settings 59

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
60 Exchange Mailbox Merge Program

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

ReplaceDataOnlyIfSourceItemIsM
oreRecent
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
.Ini File Settings 61

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
62 Exchange Mailbox Merge Program

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 =

LocalisedPersonalFoldersService
Name
This setting indicates the name of the Personal Folders service in localized clients. Following are some of
the possible values:
French:
.Ini File Settings 63

LocalisedPersonalFoldersServiceName=Dossiers personnels
Spanish:
LocalisedPersonalFoldersServiceName=Carpetas personales
German:
LocalisedPersonalFoldersServiceName=Persönlicher Ordner

LocalisedExchangeServerService
Name
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

MapFolderNameToLocalisedNam
e
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 <Folder In Source Store>=<Folder In
Target Store>
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.
64 Exchange Mailbox Merge Program

Default value: 0
MapFolderNameToLocalisedName = 0

RenameFoldersBasedOnFolderM
appings
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 <Folder In Source Store>=<Folder In
Target Store>.
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 <English Folder Name>=<German Folder
Name> 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
.Ini File Settings 65

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 <Folder In Source Store>=<Folder In Target Store>
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
66 Exchange Mailbox Merge Program

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.
68 Exchange Mailbox Merge Program

• 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.
2. 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.
3. 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.


2. 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.
3. 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
70 Exchange Mailbox Merge Program

message to all mailboxes on that server. This will create mailbox objects in the information store for all
mailboxes.
4. 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.
5. 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.
Common Problems 71

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.
72 Exchange Mailbox Merge Program

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=<Localised Personal Folders Service Name>
Where <Localised Personal Folders Service Name> 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=<Localised Personal Folders Service Name>
Where <Localised Personal Folders Service Name> 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=<Localised Exchange Server Service Name>
Common Problems 73

Where <Localised Exchange Server Service Name> 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.
74 Exchange Mailbox Merge Program

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


<xxxx.dll> 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.
Common Problems 75

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.

MapFolderNameToLocalisedNam
e and
RenameFoldersBasedOnFolderM
appings 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.

Das könnte Ihnen auch gefallen