当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell cmdlet 恢复已删除的邮件项目7#7

作者:精品下载站 日期:2024-12-14 08:46:57 浏览:16 分类:玩电脑

使用 PowerShell cmdlet 恢复已删除的邮件项目7#7


在本文中,我们将回顾可用于搜索和恢复特定邮件项目的 PowerShell cmdlet Search-Mailbox。 PowerShell cmdlet Search-Mailbox 是较新的 PowerShell cmdlet New-MailboxSearch 的“姐姐”。这两个 PowerShell cmdlet 旨在为 Exchange 管理员提供创建多个邮箱搜索的强大功能以及将搜索结果复制(恢复)到“其他存储”(例如 Discovery Search Mailbox 或任何其他 Exchange 邮箱)的能力。

一点点历史

执行多个邮箱搜索的功能首次出现在 Exchange 2010 中。此功能基于 PowerShell cmdlet - Search-Mailbox

在 Exchange 2013 中,术语“多邮箱搜索”被术语“就地电子数据展示和保留”取代。

就地电子数据展示和保留基础设施包括更多功能和特性,它基于名为的新 PowerShell cmdlet:

New-MailboxSearch

换句话说,我们可以说 Exchange 就地电子数据展示和保留管理界面是 PowerShell cmdlet 的图形界面 - New-MailboxSearch

[玩转系统] 使用 PowerShell cmdlet 恢复已删除的邮件项目7#7

由于 New-MailboxSearch 更新或更先进,我们可以假设这些 PowerShell cmdlet 包含以前 PowerShell cmdlet 的所有功能 - Search-Mailbox + 新功能。

这种假设部分正确,因为有趣的是,“较旧”的 PowerShell cmdlet Search-Mailbox 仍然具有较新的 PowerShell cmdlet New-MailboxSearch 中不可用的功能。

PowerShell cmdlet Search-Mailbox 中包含但较新的 PowerShell cmdlet New-MailboxSearch 中不包含的功能包括:

1.搜索并删除(搜索并销毁)

这种能力有时被称为“搜索和摧毁”。 “搜索”多个Exchange邮箱的部分是第一部分。第二部分是——“搜索结果如何处理? ”。

使用 PowerShell cmdlet Search-Mailbox 时,我们可以决定删除搜索结果,而不是复制或恢复搜索结果。

如果基于搜索结果的“删除邮件项目”选项对您来说似乎很奇怪,请考虑您的组织被病毒感染的情况,该病毒通过邮件系统发送到不同的组织收件人。

您希望能够找到所有收到受感染邮件的收件人+删除受病毒感染的邮件项目。

注意:在当前文章中,我们不会讨论使用 PowerShell cmdlet Search-Mailbox 删除邮件项目的选项。

2.搜索范围 - 基于文件夹

PowerShell cmdlet Search-Mailbox 的一个有趣功能是能够将特定邮箱文件夹定义为搜索参数。

此功能可以使用标准邮箱文件夹来实现,例如收件箱文件夹、已发送邮件等;我们可以将可恢复项目文件夹定义为搜索范围的参数。

换句话说,PowerShell cmdlet Search-Mailbox 使我们能够将搜索限制为仅可恢复的项目文件夹,并恢复(复制)此文件夹中的邮件项目。

此选项在“恢复邮件方案”中非常有用,因为在这种情况下,我们不需要搜索和恢复“标准邮箱内容”,而只需要搜索和恢复“可恢复项目”文件夹中的邮件项目。

[玩转系统] 使用 PowerShell cmdlet 恢复已删除的邮件项目7#7

使用搜索邮箱 PowerShell cmdlet 恢复邮件项目 |两阶段过程

在我们开始查看 PowerShell cmdlet Search-Mailbox 的具体语法之前,了解此命令的逻辑和结构非常重要。

PowerShell cmdlet Search-Mailbox 实现的流程包含两个阶段:

阶段 1 - 在此阶段,Search-Mailbox 命令访问我们指定的邮箱,并开始查找能够回答我们必须保护的搜索查询参数的邮件项目。

[玩转系统] 使用 PowerShell cmdlet 恢复已删除的邮件项目7#7

阶段 2 - 在此阶段,Search-Mailbox 命令“获取”搜索结果(邮件项目)并将其复制到“目标邮箱”。
“目标邮箱”可以是 Exchange系统发现搜索邮箱或我们选择的任何其他邮箱。

[玩转系统] 使用 PowerShell cmdlet 恢复已删除的邮件项目7#7

Search-Mailbox 的四个强制参数

使用 PowerShell cmdlet Search-Mailbox 时,我们必须定义四个强制参数:

  1. 想要搜索的一个或多个邮箱——我们需要指定至少一个邮箱作为“源邮箱”。
  2. 搜索查询参数——搜索参数可以非常简单也可以非常复杂,我们可以选择根据日期范围、特定关键字、特定文件夹等限制搜索。
  3. “目标邮箱” - 这是将充当形成搜索结果的邮件项目副本的“容器”的邮箱。
  4. 将“托管”搜索结果副本的文件夹名称 - 我们需要指定将用于包含搜索结果副本的文件夹的名称。

[玩转系统] 使用 PowerShell cmdlet 恢复已删除的邮件项目7#7

使用 Exchange PowerShell cmdlet 所需的权限 - 搜索邮箱

使用搜索邮箱 cmdlet 使执行搜索的用户(Exchange 管理员或具有所需权限的用户)能够搜索和查看位于其邮箱中的用户数据。
为了能够拥有此“能力”,需要有一个需要向将使用 Search-Mailbox cmdlet 的用户分配所需的权限。

您需要被分配以下管理角色才能搜索和删除用户邮箱中的邮件:

  • 邮箱搜索 - 此角色允许您在组织中的多个邮箱中搜索邮件。默认情况下,不会为管理员分配此角色。要为自己分配此角色以便可以搜索邮箱,请将自己添加为发现管理角色组的成员。请参阅在 Exchange 中分配电子数据展示权限。
  • 邮箱导入导出 - 此角色允许您从用户邮箱中删除邮件。默认情况下,此角色未分配给任何角色组。要从用户邮箱中删除邮件,您可以将邮箱导入导出角色添加到组织管理角色组。有关详细信息,请参阅管理角色组中的“将角色添加到角色组”部分。

使用搜索邮箱 cmdlet 场景

为了演示使用 Search-Mailbox cmdlet 的不同可能性,我们将回顾几个可选方案。

场景 1 - 将邮件项目从“可恢复项目”文件夹复制到 - Discovery Search Mailbox

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 存储在可恢复项目文件夹 (SearchDumpsterOnly) 中的邮件项目。

另外,创建详细的日志(LogLevel Full)。

将邮件项目从“可恢复项目”文件夹复制到 - Discovery Search Mailbox

PowerShell命令语法:

Search-Mailbox <Identity> -SearchDumpsterOnly -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox John -SearchDumpsterOnly -TargetMailbox "Discovery Search Mailbox" -TargetFolder <John recovered mail> -LogLevel Full

场景 2 - 提供有关已删除邮件的报告

场景描述:
我们不希望恢复邮件项目,而是希望获得有关“可恢复邮件”文件夹中所有邮件项目的详细报告
我们想要搜索(但不恢复邮件) ) 回答以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 存储在可恢复项目文件夹 (SearchDumpsterOnly) 中的邮件项目。

提供有关已删除邮件项目的报告

PowerShell命令语法:

Search-Mailbox <Identity> -SearchDumpsterOnly -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full -LogOnly

PowerShell 命令示例:

Search-Mailbox John -SearchDumpsterOnly -TargetMailbox “Discovery Search Mailbox”-TargetFolder “David Deleted mail items” -LogLevel Full -LogOnly

场景 3 - 从所有用户邮箱恢复已删除的邮件项目(批量模式)

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在所有 Exchange 用户邮箱中的邮件项目(批量搜索)。
  • 存储在可恢复项目文件夹 (SearchDumpsterOnly) 中的邮件项目。

从所有用户邮箱恢复已删除的邮件项目(批量模式)

PowerShell命令语法:

Get-Mailbox -ResultSize Unlimited |Search-Mailbox -SearchDumpsterOnly -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchDumpsterOnly -TargetMailbox “Discovery Search Mailbox” -TargetFolder “All users Deleted mail items” -LogLevel Full

场景 4 - 仅恢复已删除的日历邮件项目

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 特定邮件项目 - 仅限带有特定附件的邮件项目
  • 存储在可恢复项目文件夹 (SearchDumpsterOnly) 中的邮件项目。

仅恢复已删除的日历邮件项目

PowerShell命令语法:

Search-Mailbox <Identity> -SearchDumpsterOnly -SearchQuery “Attachment:<Mail Type>" -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox John -SearchDumpsterOnly -SearchQuery “Kind:meetings" -TargetMailbox “Discovery Search Mailbox” -TargetFolder “John calendar items” -LogLevel Full

场景 5 - 恢复已删除的带有特定附件的邮件项目

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 特定邮件项目 - 仅日历邮件项目
  • 存储在可恢复项目文件夹 (SearchDumpsterOnly) 中的邮件项目。

恢复已删除的带有特定附件的邮件项目

PowerShell命令语法:

Search-Mailbox <Identity> -SearchDumpsterOnly -SearchQuery “Kind:<Mail Type>" -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox John -SearchDumpsterOnly -SearchQuery “Kind:meetings" -TargetMailbox “Discovery Search Mailbox” -TargetFolder “John calendar items” -LogLevel Full

场景 6 - 仅恢复包含特定文本(邮件正文或主题)的已删除邮件项目

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 包含特定文本字符串的邮件项目。

仅恢复包含特定文本(邮件正文或主题)的已删除邮件项目

PowerShell命令语法:

Search-Mailbox <Identity> -SearchQuery “<Text String>” -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox John -SearchQuery “call me ASAP” -TargetMailbox “Discovery Search Mailbox” -TargetFolder “John mail items” -LogLevel Full

场景 7 - 仅恢复邮件主题中包含特定文本的已删除邮件项目

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 包含出现在电子邮件主题中的特定文本字符串的邮件项目。

仅恢复邮件主题中包含特定文本的已删除邮件项目

PowerShell命令语法:

Search-Mailbox <Identity> -SearchQuery 'Subject:"<Txt String>"' -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox John -SearchQuery 'Subject:"call me ASAP"' -TargetMailbox “Discovery Search Mailbox” -TargetFolder “John mail items” -LogLevel Full

场景 8 - 恢复特定日期范围内已删除的邮件

场景描述:
我们想要搜索并恢复满足以下参数的邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 在特定日期范围内发送的邮件。

恢复特定日期范围内已删除的邮件

PowerShell命令语法:

Search-Mailbox <Identity> SearchQuery '(sent: sent:dd/mm/yy..dd/mm/yy)' -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox SearchQuery '(sent: 09/1/2015.. 09/10/2015)' -TargetMailbox -TargetFolder -LogLevel Full

场景 9 - 将所有邮件项目从特定邮箱复制到 - Discovery Search Mailbox

场景描述:
我们想要搜索并恢复满足以下参数的所有邮件项目:

  • 存储在特定 Exchange 用户邮箱中的邮件项目。
  • 来自特定邮箱的所有邮件项目

另外,创建详细的日志(LogLevel Full)。

将所有邮件项目从特定邮箱复制到 - 发现搜索邮箱

PowerShell命令语法:

Search-Mailbox <Identity> -TargetMailbox <Destination mailbox> -TargetFolder <Folder name> -LogLevel Full

PowerShell 命令示例:

Search-Mailbox John -SearchDumpsterOnly -TargetMailbox "Discovery Search Mailbox" -TargetFolder <John recovered mail> -LogLevel Full

与使用“搜索邮箱”命令相关的其他注意事项

1. 分配对 Discovery Search-Mailbox 的完全访问权限

如果我们想要使用 Outlook 邮件客户端查看 Discovery 搜索邮箱 的内容,我们需要为 Discovery 搜索邮箱 分配完全访问权限>。

仅恢复已删除的日历邮件项目

PowerShell命令语法:

Add-MailboxPermission "<Destination Mailbox>" -User <Identity> -AccessRights FullAccess -InheritanceType all -Automapping $False

PowerShell 命令示例:

Add-MailboxPermission "Discovery Search Mailbox" -User John -AccessRights FullAccess -InheritanceType all -Automapping $False

2. 分配使用 PowerShell cmdlet Search-Mailbox 所需的权限

为了能够使用 PowerShell cmdlet Search-Mailbox,我们需要将所需的权限分配给将使用 PowerShell cmdlet Search-Mailbox 的用户帐户

我们需要启用以下权限:

将用户添加到“发现管理角色”组并为用户帐户分配“邮箱导入导出”角色

将用户添加到发现管理组

PowerShell命令语法:

Add-RoleGroupMember -Identity "Discovery Management" -Member <Identity>

PowerShell 命令示例:

Add-RoleGroupMember -Identity "Discovery Management" -Member John

分配用户“邮箱导入导出”权限

PowerShell命令语法:

New-ManagementRoleAssignment -Role “Mailbox Import Export” -User <Identity>

PowerShell 命令示例:

New-ManagementRoleAssignment -Role “Mailbox Import Export” -User John

3. 创建新的发现邮箱

Exchange Online 提供了一个默认邮箱,将用作搜索结果的容器,即发现搜索邮箱邮箱。

如果我们想要创建一个额外的“发现搜索邮箱邮箱”,我们可以使用 PowerShell 命令来创建这个额外的邮箱。

创建新的发现邮箱

PowerShell命令语法:

New-Mailbox -Name <name> -Discovery

PowerShell 命令示例:

New-Mailbox -Name “New Discovery” -Discovery

使用 New-MailboxSearch PowerShell cmdlet

步骤 1#2

导出收件人 A 到收件人 B 邮箱的完整邮箱连接

PowerShell命令语法:

New-MailboxSearch -Name <Search name> -SourceMailboxes <source mailbox> -TargetMailbox <Destinaiton mailbox>

PowerShell 命令示例:

New-MailboxSearch -Name "Alice exported items" -SourceMailboxes Alice -TargetMailbox John

步骤2#2

导出收件人 A 到收件人 B 邮箱的完整邮箱连接

PowerShell命令语法:

Start-MailboxSearch -Identity "<Search name>" -Confirm

PowerShell 命令示例:

Start-MailboxSearch -Identity "Alice exported items" -Confirm

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯