欢迎光临
我们一直在努力

exchange2016恢复断开连接的邮箱、恢复禁用的邮箱

概要
断开连接的邮箱是在未与 Active Directory 用户帐户关联的 Exchange 存储中的邮箱对象。断开的邮箱仍保留在 Exchange 数据库中,保留时间在邮箱数据库的已删除邮箱保留设置中指定。默认情况下,断开的邮箱将保留 30 天。在此保留期内,将邮箱连接到新的或现有的 Active Directory 用户帐户可以恢复邮箱。
有两种类型的断开连接的邮箱:

  • 软删除的邮箱 将邮箱从 Microsoft Exchange Server 2010 Service Pack 1 (SP1) 数据库移动到任何其他数据库时,Exchange 不会在移动完成后从源数据库中完全删除邮箱。而是将源邮箱数据库中的邮箱切换为软删除状态。借助软删除邮箱,可以在邮箱还原操作过程中使用 MailboxRestoreRequest cmdlet 集访问邮箱数据。软删除邮箱将保留在源数据库中,直到已删除邮箱保留期过期或直到使用 Remove-StoreMailbox cmdlet 清除邮箱。
    1. 禁用的邮箱 当使用 Disable-Mailbox 或 Remove-Mailbox cmdlet 使邮箱断开连接或删除邮箱时,Exchange 会保留删除的邮箱,且邮箱会切换为禁用状态。借助禁用的邮箱,可以在不必还原整个邮箱数据库的情况下恢复邮箱数据。禁用的邮箱保留在邮箱数据库中,直到已删除邮箱保留期过期或直到永久删除邮箱。
      无论以哪种方式还原邮箱,前提必须保证用户账号在AD内是存在的。
      还原软删除的邮箱
      1、要还原 软删除的邮箱 Exchange 用户邮箱,需要知道账号“显示名(DisplayName)、邮箱所在的数据库(Database),需要使用如下命令。
      此命令是 查询断开连接的邮箱显示名为杨园柱的基本信息 如需更精确使用DisplayName 查询可以把-like替换为-eq
      Get-MailboxDatabase | Get-MailboxStatistics | Where {($.DisconnectReason -eq "Disabled") -and ($.DisplayName -like "XXX*")} | fl DisplayName,Database

2、如果查询不到需要按照下列方式更新邮箱状态,就需要更新邮箱数据库上所有断开连接的邮箱的邮箱状态。
脚本如下(注:在老版本的exchange2010中使用 Clean-MailboxDatabase -database "name"即可,新版本就较为麻烦了)
$database=Get-MailboxDatabase | % {$.NAME}
foreach($DB in $database)
{
Get-MailboxStatistics -Database $DB| Where { $
.DisconnectReason -ne $null } | ForEach { Update-StoreMailboxState -Database $.Database -Identity $.MailboxGuid -Confirm:$false }
}

3、使用“New-MailboxRestoreRequest”命令还原用户邮箱;-SourceStoreMailbox 后面参数是邮箱的GUID; -SourceDatabase后面的参数是该邮箱所在的数据库;-TargetMailbox 后面的参数是要恢复用户邮箱名;
此示例将邮箱数据库 DB21 上显示名称为 XXX的源邮箱还原到XXX的邮箱。
New-MailboxRestoreRequest -SourceDatabase "DB12" -SourceStoreMailbox "XXX" -TargetMailbox XXX

还原禁用或者删除的邮箱
1、要还原被禁用或者删除的邮箱 Exchange 用户邮箱,、邮箱所在的数据库(Database)即可,需要使用如下命令。
此命令是 查询断开连接的邮箱显示名为ea02.srv邮箱所在的数据库
Get-MailboxDatabase | Get-MailboxStatistics | Where {($.DisconnectReason -eq "Disabled") -and ($.DisplayName -eq "XXX")} | fl Database

2、如果查询不到需要按照下列方式更新邮箱状态,就需要更新邮箱数据库上所有断开连接的邮箱的邮箱状态。
脚本如下
$database=Get-MailboxDatabase | % {$.NAME}
foreach($DB in $database)
{
Get-MailboxStatistics -Database $DB| Where { $
.DisconnectReason -ne $null } | ForEach { Update-StoreMailboxState -Database $.Database -Identity $.MailboxGuid -Confirm:$false }
}

3、使用“Connect-Mailboxt”命令还原用户邮箱;
Connect-Mailbox -Identity ea02.srv -Database db21 -User ea02.srv

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。