使用 PowerShell 创建 Active Directory Exchange 报告

使用PowerShell创建活动目录Exchange报告。Microsoft Exchange是全球企业和组织广泛使用的电子邮件服务器软件。Exchange的一个关键功能是能够生成关于服务器及其使用情况的报告。这些报告提供了关于Exchange服务器性能和健康状况以及用户使用模式的宝贵见解。

本文探讨了如何使用PowerShell,一种强大的命令行脚本语言来生成这些报告。我们研究了一些常见的报告类型、用于创建它们的PowerShellcmdlets,以及使用PowerShell和Exchange的一些最佳实践。通过本文,我们应该能够了解如何在PowerShell中生成和处理Exchange报告。

让我们开始学习使用PowerShell创建活动目录Exchange报告吧。另请阅读使用PowerShell创建活动目录OU报告使用PowerShell创建活动目录Exchange报告。

使用PowerShell创建活动目录Exchange报告

另请阅读部署Azure AD监控

先决条件

要运行Exchange PowerShell命令,我们需要满足以下先决条件:

  1. 我们必须具有在Exchange服务器上运行PowerShell命令的适当权限。访问这些权限通常意味着成为Exchange组织管理组的成员或被分配适当的角色和权限。
  2. 我们必须在我们的计算机上安装Exchange管理Shell。Exchange管理Shell是一个PowerShell模块,它包含专门设计用于管理Exchange服务器的cmdlet。通常,Exchange管理Shell内置于运行Exchange服务的Windows服务器中。
  3. 假设我们要与Exchange服务器建立远程PowerShell会话。这可以通过使用Connect-ExchangeServer cmdlet来完成,它允许我们使用我们的Exchange凭据连接到服务器。
  4. 或者,我们将Exchange管理Shell模块导入到我们的PowerShell会话中。我们使用Import-Module cmdlet,后面跟着模块的名称来导入模块。
Import-Module ExchangeManagementShell

一旦我们满足了这些先决条件,我们应该准备好运行Exchange PowerShell命令并生成报告。在本文的下一部分,我们将列出多种方法来审计我们的Microsoft Exchange环境。

使用PowerShell中的Get Mail命令

请注意,翻译中保留了原文中的自定义分隔符及其对应的结束标签。

PowerShell中的Get-Mailcmdlet是管理Microsoft Exchange中电子邮件消息的强大工具。它允许我们根据各种标准(如发件人、收件人、主题或日期范围)检索特定的电子邮件消息或通知组。此外,我们可以使用Get-Mail cmdlet来查看单个消息的详细信息,或将其导出到文件以进行进一步分析。

以下是Get-Mail命令的几个示例。

生成电子邮件流量报告

总的来说,由 Get-MailTrafficSummaryReport命令生成的电子邮件流量报告帮助我们分析组织的电子邮件流量,提供诸如发送和接收的电子邮件数量、接收和发送的垃圾邮件数量、恶意软件、欺骗邮件等信息。

Get-MailTrafficSummaryReport

上述命令默认检索过去七(7)天的电子邮件流量。然而,我们可以通过使用-StartDate-EndDate属性来恢复最多前90天的电子邮件统计报告。以下是几个例子:

入站和出站电子邮件流量报告

使用Direction 参数运行cmdlet,以分别获取传入和传出电子邮件流量:

Get-MailTrafficSummaryReport –Direction Inbound –StartDate 6/13/22 -EndDate 6/15/22

上述代码段检索从2022年6月13日至2022年6月20日的入站电子邮件流量统计信息。

如果我们查看出站流量,也可以这样做:

Get-MailTrafficSummaryReport –Direction Outbound

相应地,我们可以使用-EventType参数值来确定服务过滤后消息发生了什么:

Get-MailTrafficSummaryReport –Direction Inbound –EventType GoodMail –StartDate 7/1/22 -EndDate 7/31/22

要了解被反欺骗软件标记为欺骗的邮件:

Get-MailTrafficSummaryReport –EventType SpoofMail

请注意,命令的输出将取决于您的Exchange服务器的特定配置以及在指定期间内的邮件流量

交换发送和接收电子邮件报告

此外,管理员通常想知道用户发送和接收了多少电子邮件。我们可以使用Get-MailTrafficTopReport命令来查看这些电子邮件统计信息。下面的命令显示了用户在过去7天内发送和接收的电子邮件数量:

Get-MailTrafficTopReport -EventType TopMailUser

查看用户在指定的时间段内接收的电子邮件数量。

Get-MailTrafficTopReport -EventType TopMailUser –Direction Inbound –StartDate 7/15/22 -EndDate 7/20/22

Office 365邮件流状态报告

在使用此命令之前,请确保您当前已通过身份验证混合服务器连接到Office 365。或者,您可以使用以下命令直接连接并验证到Office 365

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUrl https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

通过命令Get-MailFlowStatusReport生成的邮件流状态报告展示了由边缘保护阻止的入站和出站电子邮件的信息:

Get-MailFlowStatusReport | ft Date, EventType, MessageCount

上述cmdlet返回了一个日期范围内的消息数量,按消息的最终处理结果组织。默认情况下,该命令显示过去七天的数据。然而,通过指定-StartDate-EndDate,我们可以获得长达九十天的邮件流报告

生成电子邮件保护报告

最重要的是,电子邮件保护报告帮助我们识别由Exchange Online Protection(EOP)检测到的垃圾邮件和恶意软件,以及匹配邮件流规则、DLP规则和其他标准的电子邮件。

Office 365垃圾邮件报告

总之,Get-MailDetailSpamReport命令展示了我们组织发送和接收的垃圾邮件的信息。该cmdlet显示了过去十(10)天内检测到的垃圾邮件列表。

因此,在某些情况下,Microsoft 365会将我们组织发送的电子邮件拒绝或标记为垃圾邮件。执行以下cmdlet以识别这些电子邮件:

Get-MailDetailSpamReport –Direction Outbound

此外,反垃圾邮件过滤器有时会将好的入站电子邮件分类为垃圾邮件。管理员可以通过检查这些电子邮件来白名单一个域或特定地址。要查看入站垃圾邮件:

Get-MailDetailsSpamReport –Direction Inbound

使用-StartDate-EndDate参数,查看特定用户在指定时间段内发送的垃圾邮件:

Get-MailDetailsSpamReport –SenderAddress marion@infrasos.com -StartDate 7/15/22 -EndDate 7/20/22

运行带有RecipientAddress而不是SenderAddress的cmdlet,以查看用户收到的垃圾邮件。

Exchange Online恶意软件报告

接下来,Get-MailDetailATPReport命令帮助识别包含恶意软件的电子邮件。运行该命令以查看过去十(10)天内发送和接收的所有恶意软件。

要查看从我们组织发送的恶意软件,我们可以使用以下代码片段:

Get-MailDetailATPReport –Direction Outbound

此外,如果我们使用入站方向,我们还可以列出我们组织收到的检测到的恶意软件电子邮件:

Get-MailDetailATPReport –Direction Inbound

因此,为了查看特定用户发送的恶意软件,请使用-RecipientAddress参数:

Get-MailDetailATPReport –RecipientAddress marion@infrasos.com

识别传输规则

PowerShell 命令 Get-MailDetailTranportRuleReport 显示了符合由任何 传输规则 指定的条件的消息信息。该命令展示了应用的传输规则以及过去十(10)天内电子邮件的详细信息。

下面的示例检索了由 [email protected] 发送的,在2021年7月15日至2022年7月20日期间符合传输规则条件定义的所有消息:

Get-MailDetailTransportRuleReport -TransportRule r1 –StartDate 7/15/22 -EndDate 7/20/22 -SenderAddress marion@infrasos.com

以下输出是根据前一个命令生成的传输规则报告的示例:

请运行以下cmdlet来识别电子邮件以及将消息重定向到另一个电子邮件地址的Exchange传输规则:

Get-MailDetailTransportRuleReport –Action RedirectMessage

监控由DLP策略检测到的电子邮件

大多数组织会配置数据丢失防护(DLP)策略来保护其机密电子邮件数据。我们可以使用cmdlet Get-MailDetailDLPPolicyReport来识别与DLP 策略定义的条件相匹配的消息。

Get-MailDetailDLPPolicyReport

获取Microsoft 365消息追踪报告

为了监控电子邮件流,大多数管理员倾向于使用消息追踪。消息追踪为管理员提供了关于发送、接收、清除和删除的消息的详细信息。这些详细信息包括:

  • 发件人地址
  • 收件人地址
  • 发送/接收日期
  • 电子邮件主题
  • 电子邮件交付状态
  • 电子邮件大小
  • 消息跟踪 ID 等
  • 源 IP 地址

要获取跟踪报告,我们可以运行Get-MessageTrace命令。默认情况下,该命令检索过去 48 小时的数据。我们可以使用–StartDate–EndDate参数检索最近 10 天的数据。我们可以使用Start-HistoricalSearchGet-HistoricalSearch命令来搜索超过 10 天的邮件数据。

基本上,以下示例检索了指定时间段内由特定用户发送的跟踪信息:

Get-MessageTrace –SenderAddress marion@infrasos.com -StartDate 7/25/22 -EndDate 7/30/22

要将消息跟踪报告导出为CSV文件:

Get-MessageTrace | Export-CSV  -NoTypeInformation

如果我们想要过滤消息跟踪详细信息,可以将输出发送到网格视图:

Get-MessageTrace | Out-GridView

上述命令允许我们过滤或缩小消息跟踪详细信息,例如

  • 按主题跟踪消息
  • 消息传递状态包括已送达、发送失败、待定、展开、隔离、垃圾邮件过滤和未知

感谢阅读使用PowerShell创建Active Directory Exchange报告。我们将结束本文。

使用PowerShell创建Active Directory Exchange报告的结论

总之,Microsoft Exchange提供了关于我们的电子邮件服务器性能和使用情况的丰富信息和洞察力。通过使用PowerShell生成报告,我们可以访问这些信息,以提高Exchange服务器的健康和效率。

无论我们是系统管理员还是用户,了解如何使用PowerShell生成和处理Exchange报告都是一项有价值的技能。通过本文中提供的示例和最佳实践,我们将在掌握这个强大工具的道路上取得很大进展。

Source:
https://infrasos.com/create-active-directory-exchange-reports-with-powershell/