用于监控 Office 365 中电子邮件的 10 个最佳 PowerShell Cmdlet
Exchange Online 提供许多不同的报告来监控电子邮件活动和审核电子邮件,以帮助满足合规性要求。作为 Exchange 管理员,您需要监控
- 员工的电子邮件,
- 入站/出站邮件流量
- 检测到的垃圾邮件和恶意软件数量,
- 特定用户发送和接收的电子邮件数量,
- 符合规则、政策等的电子邮件
如果您使用 Microsoft 365 管理门户查看上述信息,您可能会在搜索正确的门户时遇到困难。此外,您还需要导航到多个管理门户,例如 Microsoft 365 管理中心、Exchange 管理中心、安全与合规中心等。因此,大多数管理员更喜欢使用 PowerShell 或 Microsoft 365 监控工具来跟踪电子邮件活动。
使用 PowerShell 报告和监控 Office 365 中的电子邮件:
本博客列出了有助于监控和报告员工电子邮件活动的前 10 个 Exchange Online PowerShell cmdlet。使用这些 cmdlet,您可以生成以下 Office 365 电子邮件报告。
- 电子邮件流量报告
- 入站和出站电子邮件流量报告
- 邮件流状态报告
- 用户发送和接收的电子邮件计数
- Office 365 垃圾邮件报告
- Office 365 恶意软件报告
- 确定邮件应用了哪种传输规则
- 识别被重定向到另一个电子邮件地址的电子邮件
- DLP 策略检测到的电子邮件
- 主要发件人和收件人报告
- Microsoft 365 消息跟踪报告
电子邮件流量报告:
电子邮件流量报告可帮助您分析组织的电子邮件流量,例如发送和接收的电子邮件数量、接收和发送的垃圾邮件数量、恶意软件电子邮件、欺骗电子邮件等。
Get-MailTrafficReport默认情况下,该 cmdlet 会检索过去 7 天的电子邮件流量。通过使用-StartDate和-EndDate属性,您最多可以检索过去 90 天的电子邮件统计信息报告。
我还在下面提供了此 cmdlet 的更多用例。
入站和出站电子邮件流量报告:
要分别获取传入和传出电子邮件流量,请运行带有方向参数的 cmdlet。
Get-MailTrafficReport -Direction Inbound -StartDate 6/13/21 -EndDate 6/20/21上述 cmdlet 检索 20021 年 6 月 13 日至 2021 年 6 月 20 日的入站电子邮件流量统计信息。
要查看出站电子邮件流量,
Get-MailTrafficReport -Direction Outbound结果显示过去 90 天的外发电子邮件流量数据。
“EventType”值有助于分析消息被服务过滤后发生的情况。
要查看上个月收到的好邮件,
Get-MailTrafficReport -Direction Inbound -EventType GoodMail -StartDate 5/1/21 -EndDate 5/31/21了解被反欺骗保护标记为欺骗的邮件。
Get-MailTrafficReport -EventType SpoofMailExchange 发送和接收的电子邮件报告:
通常,管理员想知道用户发送和接收了多少电子邮件。要查看这些电子邮件统计信息,您可以使用Get-MailTrafficTopReport cmdlet。
Get-MailTrafficTopReport -EventType TopMailUser
上述 cmdlet 显示过去 7 天内用户发送和接收的电子邮件数量。
要查看用户发送的邮件计数,
Get-MailTrafficTopReport -EventType TopMailUser -Direction Outbound要查看自定义期间用户收到的邮件计数,
Get-MailTrafficTopReport -EventType TopMailUser -Direction Inbound -StartDate 6/15/21 -EndDate 6/20/21Office 365 邮件流状态报告:
邮件流状态报告显示有关传入和传出电子邮件的信息以及边缘保护阻止的电子邮件。
Get-MailFlowStatusReport | ft Date,EventType,MessageCount上述 cmdlet 返回按消息的最终处置组织的特定日期范围内的消息计数。默认情况下,cmdlet 显示最近 7 天的数据。通过指定 StartDate 和 EndDate,您可以获得长达 90 天的邮件流状态报告。
生成电子邮件保护报告:
电子邮件防护报告可帮助您识别 Exchange Online Protection (EOP) 检测到的垃圾邮件和恶意软件以及与邮件流规则、DLP 规则等规则匹配的电子邮件。
Office 365 垃圾邮件报告:
Get-MailDetailSpamReportcmdlet 显示您的组织发送和接收的垃圾邮件的详细信息。
Get-MailDetailSpamReport上述 cmdlet 列出了过去 10 天内检测到的垃圾邮件。
在某些情况下,从您的组织发送的电子邮件会被 Microsoft 365 拒绝或标记为垃圾邮件。要识别这些电子邮件,请执行以下 cmdlet。
Get-MailDetailSpamReport -Direction Outbound有时,良好的入站电子邮件也会被反垃圾邮件过滤器确定为垃圾邮件。通过检查这些电子邮件,管理员可以将域或特定地址列入白名单。
要查看入站垃圾邮件,
Get-MailDetailsSpamReport -Direction Inbound要查看特定用户在自定义时间段内发送的垃圾邮件,
Get-MailDetailsSpamReport -SenderAddress Jones@contoso.com -StartDate 6/15/21 -EndDate 6/20/21要查看用户收到的垃圾邮件,请运行 cmdlet,并使用“RecipientAddress”代替“SenderAddress”。
Exchange 在线恶意软件报告:
Get-MailDetailMalwareReport cmdlet 可帮助识别包含恶意软件的电子邮件。
要查看过去 10 天内发送和接收的所有恶意软件,
Get-MailDetailMalwareReport要查看从您的组织发送的恶意软件,
Get-MailDetailMalwareReport -Direction Outbound要列出您的组织收到的检测到的恶意软件电子邮件,
Get-MailDetailMalwareReport -Direction Inbound要查看特定用户发送的恶意软件,
Get-MailDetailMalwareReport -SenderAddress Jones@contoso.com确定电子邮件应用了哪种传输规则:
Get-MailDetailTranportRuleReport cmdlet 显示与任何传输规则定义的条件相匹配的邮件的详细信息。
Get-MailDetailTransportRuleReport上述 PowerShell cmdlet 显示应用的传输规则以及过去 10 天的电子邮件详细信息。
要查看特定传输规则处理的所有电子邮件,
Get-MailDetailTranportRuleReport -TransportRule <RuleName>以下示例检索由 Jones@contono.com 在 2021 年 6 月 15 日至 2021 年 6 月 20 日期间发送的与传输规则定义的条件匹配的邮件。
Get-MailDetailTransportRuleReport -StartDate 6/15/21 -EndDate 6/20/21 -SenderAddress Jones@contoso.com识别重定向到另一个电子邮件地址的电子邮件:
要识别电子邮件和将邮件重定向到其他电子邮件地址的 Exchange 传输规则,请运行以下 cmdlet。
Get-MailDetailTransportRuleReport -Action RedirectMessage监控 DLP 策略检测到的电子邮件:
大多数组织都会配置 DLP 策略来保护其机密电子邮件数据。要识别符合数据丢失防护 (DLP) 策略定义的条件的邮件,您可以运行以下 cmdlet。
Get-MailDetailDLPPolicyReport主要发件人和收件人报告:
可以使用 Get-MailFlowStatusReport cmdlet 获取顶级域邮件流状态见解。通过提供“类别”值,您可以获得排名靠前的发件人和收件人报告。
要获取主要邮件发件人报告,
Get-MailTrafficSummaryReport -Category TopMailSender | Select C1,C2给定的示例检索主要邮件发件人及其过去 90 天的邮件计数。要查看自定义期间的主要发件人,您可以使用 -StartDate 和 EndDate 参数。
要列出主要邮件收件人报告,
Get-MailTrafficSummaryReport -Category TopMailRecipient -StartDate 6/10/21 -EndDate 6/20/21 | Select C1,C2此示例显示 2021 年 6 月 10 日至 2021 年 6 月 20 日期间排名靠前的邮件收件人统计信息。
要查看主要垃圾邮件收件人,
Get-MailTrafficSummaryReport -Category TopSpamRecipient | Select C1,C2要显示排名靠前的恶意软件收件人报告,
Get-MailTrafficSummaryReport -Category TopMalwareRecipient | Select C1,C2要获取 Office 365 顶级恶意软件报告,
Get-MailTrafficSummaryReport -Category TopMalware | Select C1,C2C1 列是恶意软件名称,C2 列是出现次数。
获取 Microsoft 365 消息跟踪报告:
大多数管理员更喜欢邮件跟踪来监控电子邮件流。通过邮件跟踪,管理员可以获取已发送、已接收、已清除和已删除邮件的完整信息。该信息包括,
- 发件人地址
- 收件人地址
- 发送/接收日期
- 电子邮件主题
- 电子邮件发送状态
- 电子邮件大小
- 源IP地址(From IP)
- 消息跟踪 ID 等
要获取邮件跟踪报告,请运行以下 cmdlet
Get-MessageTrace默认情况下,该 cmdlet 会检索过去 48 小时的数据。如果您想检索最近 10 天的数据,可以使用 -StartDate 和 -EndDate 参数。要搜索 10 天以上的邮件数据,您可以使用 Start-HistoricalSearch 和 Get-HistoricalSearch cmdlet。
以下示例检索特定用户在自定义时间段内发送的消息的消息跟踪信息。
Get-MessageTrace -SenderAddress John@contoso.com -StartDate 6/25/21 -EndDate 6/30/21要将消息跟踪报告导出到 CSV/Excel 文件,
Get-MessageTrace | Export-CSV <FilePath> -NoTypeInformation如果您想过滤消息跟踪详细信息,可以将输出发送到网格视图。
Get-MessageTrace | Out-GridView通过这种方式,您可以过滤或缩小消息跟踪详细信息,例如
- 按主题跟踪消息,
- 按传送状态跟踪邮件,例如已传送、失败、待处理、扩展、隔离、作为垃圾邮件过滤和未知。
要为大多数需要的用例生成更多自定义消息跟踪报告或 cmdlet 示例,您可以参阅有关使用 PowerShell 进行消息跟踪的专用博客。
使用 PowerShell 生成电子邮件报告的挑战
通过 PowerShell 监控电子邮件活动是最艰巨的工作之一,因为
- 每个电子邮件活动都需要不同的 cmdlet。
- 即使找到正确的 cmdlet,您也需要使用多个过滤器和参数来获取所需的报告。
- 如果您的组织规模较大,则由于 PowerShell 会话过期,您无法检索所有数据。
那么,是否有最简单的方法来监控员工电子邮件呢? AdminDroid 等工具将帮助您跟踪电子邮件活动并深入了解组织的邮件流活动。
AdminDroid 提供250 多个预建电子邮件报告和智能仪表板,让您一目了然地了解有关组织电子邮件活动的更多信息。通过使用“视图”和“高级过滤器”选项,您可以根据您的要求创建自定义报告。
每份报告都提供人工智能驱动的图形分析,以直观的方式获得见解并更好地理解数据。
Office 365 电子邮件仪表板:
此外,AdminDroid 还提供1500 多个报告,以获取有关各种 Office 365 服务(例如 Azure AD、Exchange Online、SharePoint Online、Microsoft Teams、OneDrive for Business、Streams、One Note、Yammer 等)的详细报告。
此外,AdminDroid 免费提供100 多个报告和一些仪表板来管理您组织的用户、许可证、组、组成员资格、成员资格更改、用户登录、密码更改等。免费版本允许您也可以执行定制、调度和导出。下载 AdminDroid 提供的免费 Office 365 报告工具,看看它如何为您提供帮助。
我希望这篇博客能帮助您在 Office 365 环境中监控电子邮件。











