Migrating Exchange

I’m in the process of migrating an Exchange server to new hardware. At the same time the Exchange organization name and structure were changed and reorganized, so the only way to move the existing mails between the servers was to use exmerge.

I was scratching my head (and pulling my hair) for several hours with strange errors. Extraction of many mailboxes failed with errors such as “MAPI_W_PARTIAL_COMPLETION” in the log files. I killed anti-virus and anti-spam services on the server but that made no difference. So I increased logging level and got a new error message: “Error opening message store (MSEMS).” With the “help” from that error message (and Google) I found a MS support page that resolved the problem; the server’s Administrative account had “deny” permissions set for Receive As and Send As.

So far so good, now all the smaller mailboxes seem to be extracting fine. But there are five mailboxes whose sizes range from 2.7Gb to over 5Gb. The PST files have a 2Gb limit, so now I’ll have to do multiple runs for those mailboxes with date ranges, such as pre-2005, 2005, 2006, and 2007 (I found some tips on date-limiting extraction here)… that should break the large mailboxes to small enough pieces so that the corresponding PST files will be below the 2Gb limit. I find it strange that this is the only method of transferring data from an Exchange installation to another (when not in the same forest). If the data store file could not be migrated, why not offer some kind of binary transfer file format that could be of any size? Or—at least—why not offer an automated splitting of the output PST files; when one reaches 1.9Gb, it would automatically be closed and a new one opened with a sequential number after the name. The current way is awfully cumbersome, especially considering that it’s rather common for users to have large mailboxes in Exchange that doesn’t have the size-limitation of the PST files.

And what’s with the X.500 sender addresses after the move?! Considering that Microsoft periodically releases new versions of Exchange, and that they assumably want people to upgrade, why to make upgrading so painful? All this would be so simple in the UNIX world, for example, with Postfix + Dovecot.