Understanding Mailbox GUIDs

 

The mailbox globally unique identifier (GUID) is the most fundamental attribute of a Microsoft® Exchange Server mailbox. The value of this attribute is set in the database as the mailbox is created, and it remains the same for the lifetime of the mailbox. The mailbox GUID is designated in the msExchMailboxGUID attribute for each mailbox-enabled Active Directory® directory service account.

In relational database terminology, you can think of the mailbox GUID as the primary key for the mailbox. It is a unique value that distinguishes an individual mailbox from all others. Regardless of which Active Directory user account owns the mailbox, the mailbox GUID always remains the same as long as the mailbox exists.

To explain further, suppose that two different mailboxes in the same database were assigned to two different Active Directory accounts. Each account would have an msExchMailboxGUID attribute corresponding to the appropriate mailbox. If you were to switch the values of the msExchMailboxGUID attributes between the user accounts, you would effectively switch mailboxes between the two users. The next time the users logged on, they would see each others’ mailbox contents.

If you edit the msExchMailboxGUID value, altering it by even a single character, the next time the affected user logs on, a completely new mailbox will be generated, based on the new GUID. In Exchange System Manager, you would see this user as now having two mailboxes. (After a while, the Mailbox Cleanup Agent will run automatically, and the user’s original mailbox will afterward display as disconnected. Therefore, it would be a candidate for purging.) Suppose you were to then return the msExchMailboxGUID to its original value. The next time the user logged on, the original mailbox would again be available, and the new mailbox would become disconnected.

Preserving Mailbox GUID Values After a Database Move

If you move a database to a different server or storage group, and then re-link user accounts to the mailboxes in that database, you must preserve the original mailbox GUID values if you want to connect the users to their previous mailbox contents.

If you use Remove Exchange Attributes to strip all mailbox attributes, and then you use Create Mailbox or you set homeMDB, homeMTA, and msExchHomeServer attributes on users, the result will be that new mailbox GUIDs will be generated. All users will be connected to new mailboxes, and in Exchange System Manager, each user will appear to have both a connected and a disconnected mailbox in the database.

If you do strip all Exchange attributes from a user account, there are two methods you can use to re-link a user account to the mailbox:

  • In Exchange System Manager, find the mailbox in the Mailboxes table under the database object. Right-click the mailbox, and then select Reconnect. This action allows you to select an Active Directory user account that is not already mailbox-enabled as the mailbox owner. The account does not necessarily have to be the previous owner. This method allows you to assign a new owner to an existing mailbox.

  • Use the Mailbox Recovery Center to automatically match disconnected mailboxes with the user accounts that previously owned them. This facility is very useful when it is necessary to reconnect a large number of mailboxes.

A disconnected mailbox retains some historical data about the last user account connected to it. The Mailbox Recovery Center reads this data and looks for user accounts in Active Directory that match it.

If you re-home a mailbox by changing only the homeMDB, homeMTA, and msExchHomeServer attributes on a user account, then the msExchMailboxGUID attribute will remain intact. One of two things will happen in this case:

  • If the database on the new server does not already contain a mailbox with the same GUID, Exchange generates a new mailbox for the user with the same GUID as the old mailbox.

    Exchange will not allow two mailboxes with the same GUID to be connected simultaneously to Active Directory accounts. All mailbox GUIDs listed in the entire directory must be unique. If you cause two mailboxes to be generated on different databases with the same mailbox GUID, only one of those mailboxes can be in a connected state at any given time. You will have to disconnect one of the mailboxes before you can connect the other.

    Nonetheless, you may generate two mailboxes with the same GUID as part of a “dial tone” recovery scenario. The dial tone strategy assumes that the original database is temporarily unavailable, but that it will eventually be restored. In the interim, a new mailbox is generated in a different location so that users can send and receive mail, even if they do not have access to their previous mailbox contents. After the original database becomes available again, the contents of the dial tone database will be merged with the original database. For more information about the dial tone recovery strategy, see Using Recovery Storage Groups in Exchange Server 2003.

  • If the database on the new server does contain a mailbox with the same GUID, the user will be connected to that mailbox.

This behavior means that you can move a database from one server to another server, and reconnect users to their original mailbox contents. For more information about moving databases, see Moving an Exchange Mailbox Database to Another Server or Storage Group.

For More Information

For more information about other methods you can use to enable, disable, and re-home mailboxes, see Using Active Directory Attributes to Enable, Disable, and Re-Home Mailboxes.