An Exchange Server 2007 or 2010 user mailbox that has been deleted may not appear in the disconnected mailbox list for the server on which it was previously held.
This can happen when the mailbox has not been deleted using the Disable or Remove commands in the Exchange Management Console. For example, if a mailbox was deleted using the Exchange 2003 management tools then it will not appear in disconnected mailboxes.
When mailboxes are deleted incorrectly the Exchange 2007/2010 mailbox server doesn’t process them correctly, and as a result they do not end up in the disconnected mailbox list.
However you can fix this problem with the Clean-MailboxDatabase command. Simply launch the Exchange Management Shell and run the command against the database that the user’s mailbox was on.
Clean-MailboxDatabase "EX2010MBFirst Storage GroupMailbox Database"
Refresh the disconnected mailboxes view for that mailbox server. The mailbox should now appear correctly and can be reconnected if necessary.
I have ran the command – Clean-MailboxDatase “mailbox name”
the command gone through fine but mailbox is still not appearing in the disconnected mailbox.
its not even 24 hours since we have disabled the mailbox
I’ve bumped into this too. We had two exchange services operating in a DAG – found the disconnected mailboxes when I checked the second server.
It is 2016 and this post just saved me a lot of work. Thank you!!
Hi Paul I have deleted mailboxes with disable option, but it’s still not appear in disconnected section. What can I do? thanks.
Do I need to dismount database or stop some services prion running this command? Technet docs say so:/
Wow. A co-worked “clean” some accounts in our Active Directory so I lost users and exchange mailboxes. I restore AD deleted account with ADrestore v1.1 (amazing), enable the account, restore group memberships and notice there is no mailboxes in exchange to associate with. I read your article and was able to ran the command, so the disconnected mailboxes appear and now users are happy and I’m even more happy!!
You did it once again! When I run into an issue and do a search and find your article, I automatically start getting excited before even clicking because I know I’m a click away from my answer. Great post.
Brilliant! Thank you. I was beginning to sweat heavily until I found this.
I’m having similar but different issues. In the shell I’m running get-mailbox bob | disable-mailbox & then one minute later I’ll run enable-mailuser domainbob -externalemailaddress “firstname.lastname@example.org”
The problem I’m having is that the Exchange 2007 SP2 console still sees Bob as a Mailbox for quite some time, which is problematic as I need to be able to edit the new Mail User by adding secondary SMTP aliases so that they can continue to receive mail via these. Usually this occurs instantly, but more often it is taking > 10mins to update, and today I’m still waiting for it to update a mailbox that we disabled 20 hours ago…
I’ve tried running ‘repadmin /syncall’ on a domain controller without success.
Do you have any ideas why this is happening and how to resolve? Thanks
I have run the command for the targeted database but nothing displayed in the disconnected mailbox.
I have experience this on Exchange 2013, do you have any idea how to fix it as the clean-mailboxdatabase no longer appear on the powershell command.
I read that Clean-MailboxDatabase is replaced in Exchange 2013 with the following cmdlet:
Update-StoreMailboxState -Database “[Databasename where the mailbox is stored]” -Identity “[GUID of the mailbox]”
To find out the GUID of all the mailboxes you can use the following cmdlet:
Get-Mailbox -Database “[Databasename where the mailbox is stored]” -IgnoreDefaultScope | Get-MailboxStatistics | ft DisplayName,MailboxGUID
Thanks for the valuable info I ran the cmd but i ran into a problem the error is Clean-MailboxDatabase : The operation could not be performed because ‘Mailbox Database’ matches multiple entries. please advise
You need to specify the exact name of the mailbox database.
It turns out I needed to specify the DC and then all ran spot on! Thanks Paul
What if there are several databases and you have no way of knowing which one it was on? Is there a way to run it against several mailboxes?
I run this command and nothing appears in my disconnected mailbox after refreshing it, what else can i try?
Thank you for this post. This really made my life happier…
Hi Paul, thanks for sharing this information. It seems that no matter what way I run this cmdlet, I get an error that the ‘object could not be found on domain controller . This just makes no sense, any experience coping with this error?
I assume what you’re saying is you’re running…
…and its telling you that “somedatabase” could not be found?
Whatever you use in place of “somedatabase” has to be a database name that Exchange can locate. If you run Get-MailboxDatabase it will show you valid database names.
For Exchange 2007, if running on the local server, you should be able to just run…
Clean-MailboxDatabase “Database Name”
From a remote server or mgmt station I think you would need to use
Clean-MailboxDatabase “ServerNameDatabase Name”
For Exchange 2010 whether local or not it should just be…
Clean-MailboxDatabase “Database Name”
Thank you Paul, Saved my ass!
After following your steps above, I also had to use the “Connect to Server…” Action on the Disconnected Mailbox menu to connect to my server and I was then able to see the disconnected mailboxes.