用户信箱在移动到新的MAILBOXDATABASE后,出现警告讯息,来源信箱无法删除!!   从网上寻找到解决方法

转载网址http://www.shunze.info/forum/thread.php?threadid=1760&boardid=29&styleid=1&sid=9e4cddc2a4153fef67e8ca627f0a535a&sid=9e4cddc2a4153fef67e8ca627f0a535a


wKioL1c8DxrwKXjBAABrOH2Nv6M359.png


错误讯息如下:

警告: 无法在移动后清理来源信箱.

错误详细数据:MapiExceptionUnexpectedMailboxState: Unable to delete mailbox. (hr=0x80004005,ec=2634)


解决方法:

第一步,取得使用者MAILBOXGUID

Get-MailboxStatistics -Database <MAILBOXDATABASE> | Where {$_.DisconnectReason -eq "SoftDeleted" } | Format-List LegacyDN,DisplayName, MailboxGUID, DisconnectReason

其中 <MAILBOXDATABASE> 为信箱数据库名称,可用双引号框起来。

执行后,会列出问题使用者信箱的 MAILBOXGUID

 

第二步,利用 MAILBOXGUID 来删除使用者来源来源

Remove-StoreMailbox -Database <MAILBOXDATABASE> -Identity MAILBOXGUID -MailboxStateSoftdeleted

其中 MAILBOXGUID 为第一步所找到的 MAILBOXGUID。

输入后会出现是否要删除的询问对话框,按 Y 就对啦~


**************************************************************************************************


另外有一个小脚本可以参考

(透过powershell来清除整个exchange server里,信箱移动后残留的来源信箱) ,脚本如下:

$MailDatabases = Get-MailboxDatabase
foreach ($MailDatabase in $MailDatabases)
{
    $DatabaseName = $MailDatabase.Name
    $Mailboxs = Get-MailboxStatistics-Database "$DatabaseName" | Where { $_.DisconnectReason -eq"SoftDeleted" }
    foreach ($Mailbox in $Mailboxs)
    {
        $MailboxGUID =$Mailbox.MailboxGUID
        $UserName =$Mailbox.DisplayName
        if ($MailboxGUID){
            Write-Host"User:$UserName, Database:$DatabaseName, MailboxGUID:$MailboxGUID"
            Remove-StoreMailbox-Database "$DatabaseName" -Identity "$MailboxGUID"-MailboxState Softdeleted -Confirm
        }
    }
}


脚本简单说明如下

·        Get-MailboxDatabase 取得Exchange Database集合。

·        DisconnectReason -eq"SoftDeleted" SoftDeleted为条件,取得用户MailBox集合

·        藉由MailBoxGUID的值来判断MailBox对象是否有效,再进一步透过上指令来删除该MailBox