Exchange archive mailboxes are a great resource for expanding mailbox capacity. You can disconnect archive mailboxes from the primary mailbox, and Exchange 2013 introduced a different way to reconnect the archive mailbox than previous versions.

In this tutorial, you will learn how to reconnect a disconnected archive mailbox in Exchange Server 2013.

Using Connect-Mailbox Fails

Recently I ran into a situation where I had disconnected several users’ primary and archive mailboxes and had to reconnect them. Initially, I only reconnected the primary mailboxes, and later I decided to reconnect the archives. For all my 2010 mailboxes, using Connect-Mailbox worked perfectly:

Connect-Mailbox -Identity <DisplayName/GUID> -Database <database> -Archive

Note: I did not specify the user to connect to as it uses the LegacyExchangeDN and DisplayName attributes of the mailbox to match an existing user account

However, when I went to do the same for my Exchange 2013 users, I ran into this:

An unexpected error has occurred and a Watson dump is being generated: Object reference not set to an instance of an object.

Using Enable-Mailbox Instead

I opened a support case with Microsoft, and it turns out the way to connect an archive mailbox has changed in 2013. However, Microsoft’s documentation incorrectly says to use the Connect-Mailbox cmdlet. Instead, use the Enable-Mailbox cmdlet with the disabled archive’s GUID. This command successfully reconnects the archive mailbox.

Enable-Mailbox `
    -ArchiveGuid 249c99bd-10b9-40cd-8ec8-8f6f5aa483c9 `
    -ArchiveDatabase Archive1 `
    -Identity Avtar.Ellwood

Finding Archive GUIDs

Another odd issue that I ran into both at work and in my home lab is the DisabledArchiveGuid on the mailbox after reconnection was blank:

According to Microsoft support, this is supposed to be populated with the archive mailbox GUID for easy reconnection. I disabled and reconnected several test accounts and the results were mixed, sometimes it was there, and sometimes it was not.

How do you find the GUID to reconnect the archive mailbox? Use the Get-MailboxStatistics command and specify the archive database (or server name) and search for the user’s name:

If you want to list all the disconnected mailboxes for a database, use the ForEach-Object cmdlet to display the DisconnectDate:

Get-MailboxStatistics -Database Archive1 | ForEach-Object {$_.DisconnectDate -ne $NULL}

Related: Check out more Exchange-related content here!

References:
Enable-Mailbox (ExchangePowerShell) | Microsoft Learn
Connect-Mailbox (ExchangePowerShell) | Microsoft Learn