Abstract: When you try to delete a empty Exchange Mailbox Database you received an error that this isn´t possible, because this mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or arbitration mailboxes, Audit mailboxes.
The full error is:
This mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or arbitration mailboxes, Audit mailboxes. To get a list of all mailboxes in this database, run the command Get-Mailbox -Database <Database ID>. To get a list of all mailbox plans in this database, run the command Get-MailboxPlan. To get a list of archive mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -Archive. To get a list of all public folder mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -PublicFolder. To get a list of all arbitration mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -Arbitration. To get a list of all Audit mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -AuditLog. To disable a non-arbitration mailbox so that you can delete the mailbox database, run the command Disable-Mailbox <Mailbox ID>. To disable an archive mailbox so you can delete the mailbox database, run the command Disable-Mailbox <Mailbox ID> -Archive. To disable a public folder mailbox so that you can delete the mailbox database, run the command Disable-Mailbox <Mailbox ID> -PublicFolder. To disable a Audit mailbox so that you can delete the mailbox database, run the command Get-Mailbox -AuditLog | Disable-Mailbox. Arbitration mailboxes should be moved to another server; to do this, run the command New-MoveRequest <parameters>. If this is the last server in the organization, run the command Disable-Mailbox <Mailbox ID> -Arbitration -DisableLastArbitrationMailboxAllowed to disable the arbitration mailbox. Mailbox plans should be moved to another server; to do this, run the command Set-MailboxPlan <MailboxPlan ID> -Database <Database ID>.
Possible solution 01:
Microsoft mentioned in the KB 3093175 that this could be caused by an AuditLog, so chech if such one exits.
At first force to view the entire forst:
Set-AdServerSettings -ViewEntireForest $True
this is because AuditLog mailboxes are created on the root domain by default and if you didn´t include that, the mail DB appears to be empty but itsn´t!
Get-Mailbox -Database <DatabaseName> -AuditLog | New-MoveRequest –TargetDatabase <DatabaseName>
If the AuditLog mailbox is present, move the mailbox to a different database via:
New-MoveRequest
Possible solution 02:
Check if it contains public folder via
Get-Mailbox -Database <Database ID> -PublicFolder
if that’s the case move them to a different database, or remove them fully.
Possible solution 03:
Check if the DB contains archive mailboxes
Get-Mailbox -Database <Database ID> -Archive
if that’s the case move them to a different database, or remove them fully.
Possible solution 04:
At first force to view the entire forst:
Set-AdServerSettings -ViewEntireForest $True
this is because Arbitration mailboxes are created on the root domain by default and if you didn´t include that, the mail DB appears to be empty but itsn´t!
After that check if the DB contains an arbitration mailbox:
Get-Mailbox -Database <Database ID> -Arbitration
if that’s the case move them to a different database (via New-MoveRequest).