What do you do when you have what appears to be an empty mailbox base, but you get the dreaded: “This mailbox database contains one or more mailboxes, mailbox plans….” message?
The following are some commands to run:
Get-MailboxStatistics -Database DatabaseToRemove | ForEach { Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$false } Get-MailboxStatistics -Database DatabaseToRemove | where {$_.DisconnectReason -eq "SoftDeleted"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}
Get-Mailbox -Database DatabaseToRemove -Archive Get-Mailbox -Database DatabaseToRemove -PublicFolder Get-Mailbox -Database DatabaseToRemove -Arbitration Get-Mailbox -Database DatabaseToRemove -AuditLog
If after all those back empty you still have the issue, try to remove the database with the -Verbose parameter, as that parameter will show you what mailboxes (if any) still reside on the database.
Remove-MailboxDatabase DatabaseToRemove -Verbose
If the removal process still fails, a possibility is that the database in question is an Archive Database for a mailbox residing on a different mailbox database.
The following command helps you list mailboxes using a specific database as Archive Database:
Get-Mailbox | where {$_.ArchiveDatabase -eq DatabaseToRemove}
You can migrate just the archive mailbox to another database like so:
New-MoveRequest username -ArchiveOnly
The database can now be removed after the move is completed!