使用PowerShell恢复已删除的Exchange邮箱


无论您是如何意外在Exchange中删除了某个人的邮箱,都可以使用PowerShell(PoSh)对其进行还原。一旦您意识到邮箱已被删除,关键就是这样做。

当我们意识到自己不小心这样做的时候,这是一个让我心烦的时刻。如果您只删除了几封电子邮件,我们也可以向您显示如何在Office 365中恢复已删除的电子邮件

在开始之前,请注意,这是为了在Exchange Online中为Office 365恢复已删除的邮箱。环境和Exchange 2010。我们还假设您具有使用上述方法的管理权限,并且已经完成了一些基本的PowerShell脚本

邮箱删除后会发生什么?

邮箱被移动到Azure Active Directory(AD)回收站Exchange Online中的垃圾箱或Exchange 2010中已断开连接的邮箱目录。这为我们提供了宽限期来识别我们的错误并从中恢复。

在Exchange Online中恢复已删除的邮箱

”>

通过PowerShell连接到Exchange在线

在本地会话中,打开Powershell控制台,然后使用以下命令将您的登录凭据设置为该变量。

<!-
In_content_1 all:[300x250] / dfp:[640x360]
->
$userCredential

这使得以后使用其他脚本更容易。

$userCredential = get-Credential

将打开一个窗口,您可以在其中输入您用于管理Exchange Online的用户名和密码。

下一步,设置执行策略级别,以便我们实际上可以在会话中执行操作。这使我们可以运行未签名的命令。但是您可能也想学习签署PowerShell脚本的最佳实践

set-ExecutionPolicy Unrestricted

出现提示时,按Y是。

现在,我们将创建变量$ session,该变量将用于打开本地计算机和Exchange Online之间的连接。

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $userCredential -Authentication Basic -AllowRedirection

Powershell-liveid是您的Office网站的ID。通常这是您公司名称的变体。

使用以下命令在Exchange Online上打开PoSh会话:

import-PSSession $Session -DisableNameChecking

现在,即使我们直接在Exchange Online中使用PowerShell,

使用PowerShell恢复邮箱

下一部分非常简单。建立连接将使我们花费更长的时间。

我们要做的就是运行如下所示的cmdlet:

undo-SoftDeletedMailbox [email protected] -WindowsLiveID [email protected] -Password (ConvertTo-SecureString -String 'newpassword' -AsPlainText -Force)

[email protected]的两个实例都更改为我们要还原的邮箱的相应邮箱名称和Windows LiveID。请注意,它们可能不相同。

我们还必须为邮箱设置一个新密码。将脚本中的newpassword更改为您选择的密码。您需要将该密码转发给用户,并要求他们在下次登录时更改密码。

最后,使用下一个cmdlet进行检查以确保此密码有效。

get-Mailbox [email protected]

如果已还原,则该cmdlet将返回有关已还原邮箱的信息。如果返回错误,请再次执行命令并确保使用了正确的邮箱和Windows LiveID。

如果仍然无法正常运行,则需要从系统备份中还原邮箱。系统备份的类型很多,所以这超出了我们今天的工作范围。

完成后,我们必须关闭PoSh会话。我们正在运行的PoSh会话数量有限。保持打开状态使用这些会话之一。除非我们关闭它,否则我们必须等待会话超时才能开始另一个会话。

remove-PSSession $Session

就是这样。您甚至可能希望将此脚本编写到PowerShell模块中,以便再次发生时易于使用。

在Exchange 2010中恢复已删除的邮箱

适用于Office 365或混合环境。它仅适用于本地Exchange 2010。

在邮件服务器上,打开Exchange管理控制台(EMC)。

导航到收件人配置>已断开连接的邮箱。我们应该在那里看到用户的邮箱。

如果不这样做,则表明邮箱数据库清理过程尚未发生。可以,我们可以强制执行。

  • 以管理员身份打开Exchange命令行管理程序(EMS)。这是我们可以执行Exchange特定的PowerShell工作的地方。
  • 现在我们输入cmdlet:
  • Get-MailboxDatabase | Clean-MailboxDatabase
    • 完成后,让我们回到EMC,右键单击Disconnected Mailbox(已断开连接的邮箱),然后单击在刷新上。
    • 我们现在应该看到该邮箱,它是邮箱,以及最近删除的另一个邮箱。
      • 返回EMS并输入cmdlet:
      • Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
        • 用户名是该人的Windows帐户名(例如测试用户,而邮箱数据库是旁边列出的数据库的名称它们的名称在EMC的断开连接的邮箱窗口中。
        • 刷新已断开连接的邮箱,您应该看到那里不再显示他们的邮箱。导航到收件人配置>邮箱,并确保用户的邮箱在那里。
        • 检查它以确保所有设置正确,例如电子邮件地址和别名。如果看起来不错,则下次用户打开Outlook时,一切都将保持原样。

          邮箱已还原

          这就是使用方法使用PowerShell在Exchange Online和Exchange 2010中还原邮箱。如果您有混合环境,则要复杂一些,但是可以做到。

          只要知道这些不同的cmdlet存在,无论使用哪个版本或配置,都可以轻松地使用Exchange。

          【龍群科技】Exchange Online:復原已被永久刪除的郵件

          相关文章:


          1.10.2019