无论您是如何意外在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)。
导航到收件人配置>已断开连接的邮箱。我们应该在那里看到用户的邮箱。
如果不这样做,则表明邮箱数据库清理过程尚未发生。可以,我们可以强制执行。
Get-MailboxDatabase | Clean-MailboxDatabase
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
检查它以确保所有设置正确,例如电子邮件地址和别名。如果看起来不错,则下次用户打开Outlook时,一切都将保持原样。
邮箱已还原
这就是使用方法使用PowerShell在Exchange Online和Exchange 2010中还原邮箱。如果您有混合环境,则要复杂一些,但是可以做到。
只要知道这些不同的cmdlet存在,无论使用哪个版本或配置,都可以轻松地使用Exchange。