这并不是秘密,邮件卫生解决方案并非100%有效。恶意消息偶尔仍然会通过而不被检测到。在这些时候,您需要知道如何在Office 365的所有邮箱中查找并删除电子邮件。
如果您是Office 365管理员,您会对上述情况非常熟悉。垃圾邮件或钓鱼攻击被视为重要的安全事件。毋庸置疑,电子邮件管理员必须迅速采取行动,以最小化对用户和基础设施的潜在威胁。
您可以在Office 365安全与合规性门户中点击一些内容来运行内容搜索,但是,要删除这些内容,您需要使用PowerShell。所以,如果最终您无论如何都会使用PowerShell,为什么不一切都在PowerShell中完成呢?
在本文中,您将学习如何使用安全与合规性PowerShell命令来搜索并删除所有Office 365邮箱中的恶意消息。
需求
由于本文本质上是一个如何,如果您打算跟随操作,那么有一些要求需要满足。
- 您的管理员帐户必须具备足够的Office 365权限,以便搜索邮箱并删除邮件。
– 搜索邮箱所需权限:该帐户必须是eDiscovery Manager角色组的成员,或被分配了Compliance Search管理角色。
– 删除邮件所需权限:该帐户必须是Organization Management角色组的成员,或被分配了Search And Purge管理角色。
– 预览邮件所需权限:该帐户必须是eDiscovery Manager角色组的成员,或被分配了Preview管理角色。 - 必须使用Office 365安全与合规性中心的PowerShell连接PowerShell。请点击此链接以无多重身份验证方式连接,或点击此链接以多重身份验证方式连接。
收集要删除的邮件信息。
在开始创建内容搜索以删除消息之前,您必须首先收集关于消息的所有相关信息。除非已经提供给您所有信息,否则不要开始。
尽可能了解消息的许多详细信息将有助于您决定如何制定搜索查询。例如,您需要获取的一些最基本信息包括:
- 发件人的电子邮件地址是什么?
- 消息主题是什么?
- 是否有文件附件,文件名是什么?
- 第一次报告的发生日期是什么?
- 收件人是谁?
在大多数情况下,上述信息中的一两项应足以制定搜索查询。然后,由您决定哪些搜索参数最适用。
创建并运行Office 365电子邮件内容搜索
当您确信已经获取了关于消息的所有信息时,是时候启动PowerShell并开始创建内容搜索了。
假设要删除的垃圾/钓鱼消息具有以下属性:
- 主题: 您必须立即更改您的银行密码
- 发送时间: 2020年05月12日
使用New-ComplianceSearch
,将以上列出的消息属性用于创建搜索查询。保持搜索结果尽可能准确的关键在于充分制定搜索条件。
New-ComplianceSearch
cmdlet带有多个参数和开关。然而,要创建邮箱内容搜索,将使用以下参数。
Name
– 这接受将分配给内容搜索对象的名称。这可以是任何名称,您无需过多考虑。ExchangeLocation
– 这接受将被搜索目标的Exchange位置。这可以是组或邮箱。在本文中,要使用的值是All,以确保定位搜索中的所有邮箱。ContentMatchQuery
– 该参数是确定搜索结果准确性的主要因素。所接受的查询格式是KQL或Keyword Query Language形式。
要创建内容搜索,请复制下面的代码并将其粘贴到PowerShell控制台中。确保根据您的情况更改参数值。在此示例中,搜索的名称是Phish1,查询结合了主题和发送属性值。
访问内容搜索中的关键字查询和搜索条件页面,了解更多关于在内容搜索中使用关键字的信息。
当您在PowerShell中运行上述代码时,应该会看到类似下面演示的输出。

此时,内容搜索作业已创建,但根据状态(NotStarted),搜索尚未触发。
要启动内容搜索,请使用Start-ComplianceSearch
cmdlet。您需要向cmdlet提供参数-Identity
,并指定您创建的内容搜索作业的名称。
要启动Office 365电子邮件内容搜索,请复制以下代码并粘贴到您的PowerShell控制台中。
运行上述代码后,屏幕上不会有任何输出。接下来,您需要监视搜索的状态。要监视搜索状态,请在PowerShell中使用以下代码。
当您运行上述代码时,应该会看到类似下面的输出。在下面的输出中,显示内容搜索作业状态为Completed。

您会注意到上面的输出中返回的属性有限,并没有显示找到的匹配项数量。您可以运行下面的命令来获取内容搜索结果的所有属性。
运行上述命令后,您会看到类似的结果,如下所示。在这种情况下,有16个符合搜索条件的项。

预览搜索结果(可选)
预览搜索结果是一个可选步骤,但如果你更倾向于谨慎一些,我们建议你这样做。你不想从所有邮箱中删除错误的消息,对吧?
到目前为止,您已经使用了New-ComplianceSearch
、Start-ComplianceSearch
和Get-ComplianceSearch
cmdlet 来创建、运行和监视内容搜索。现在,为了能够预览搜索结果,您需要使用New-ComplianceSearchAction
cmdlet。
要预览搜索结果,您现在需要使用以下命令创建一个预览操作。
如下所示,在输出中,已创建了名为Phish1_Preview的预览作业,并且该作业已自动启动。

当预览创建完成后,您可以通过运行以下命令将结果预览显示在屏幕上。
一旦运行了上面的命令,您会得到一个类似于下面显示的输出。

让我们承认,如上所示的结果是丑陋的。但是,如果您愿意,您可以将结果导出为 TXT。或者,如果您想要一个格式更好的报告,您可以从安全与合规中心门户下载内容搜索报告。
注意:预览操作不会显示消息的内容。它只显示与搜索条件匹配的消息的详细信息,而不显示每条消息的内部内容。
从所有 Office 365 邮箱中删除电子邮件
现在进行最后一步操作;运行 Office 365 删除电子邮件操作。假设您已经对搜索结果感到满意。现在,您可以运行消息删除过程。
要删除与搜索条件匹配的消息,您需要使用 New-ComplianceSearchAction
cmdlet,使用 -Purge
开关和 -PurgeType
参数创建一个清除作业。
创建清除作业的代码如下。复制代码并粘贴到 PowerShell 中运行。
请注意,-PurgeType SoftDelete
参数/值将删除消息并将其放入邮箱中“可恢复项目”文件夹中的“删除”文件夹中。这意味着消息仍然可以在必要时恢复。
运行上述代码后,清除作业将被创建并启动。

如下图所示,清除作业的名称为Phish1_Purge,并自动启动。

当清除完成时,您可以使用以下命令查看最终结果。
您将看到类似的输出,如下所示。在此示例中,删除了 16 条消息,没有失败的消息。

就是这样。您已成功从所有 Office 365 邮箱中删除了垃圾邮件/钓鱼邮件。
结论
在本文中,您学习了如何使用安全与合规性 PowerShell cmdlets 在 Office 365 中搜索并删除所有邮箱中的邮件。
您学会了如何整理要删除的邮件的详细信息以优化搜索条件。优化搜索条件有助于确保结果的最高准确性。
您还学会了如何创建和启动内容搜索,创建结果的预览,最终清除与搜索条件匹配的邮件。也许所有这些中最好的一点是,您从未必须离开 PowerShell 来完成这些任务!
通过本文学到的知识,也许您可以自动化整个搜索和删除工作流程,以便即使您的一线代理也能轻松执行。也许到那时,您将不再因为急需的睡眠而被唤醒。
进一步阅读
Source:
https://adamtheautomator.com/office-365-delete-email/