使用 PowerShell 創建 Active Directory Exchange 報告

建立Active Directory Exchange報告失利PowerShell。Microsoft Exchange是一種流行的郵件伺服器軟件,被全球各地的企業和組織所使用。Exchange的一个主要功能是可以生成報告,涵盖伺服器及其使用情况的各个方面。这些報告提供了关于Exchange伺服器的性能和健康状况以及用户使用模式的重要见解。

本文將探讨如何使用PowerShell生成這些報告,PowerShell是一种强大的命令行脚本语言。我们来看一些常见的報告類型,用于创建它们的PowerShell命令,以及与PowerShell和Exchange一起工作时的一些最佳实践。到本文结束时,我们应该了解如何生成并在PowerShell中处理Exchange報告。

那么我们开始吧,建立Active Directory Exchange報告失利PowerShell。也阅读 用PowerShell创建Active Directory OU報告用PowerShell建立Active Directory Exchange報告

使用PowerShell建立Active Directory Exchange報告

另請閱讀部署Azure AD監控

先決條件

要執行Exchange PowerShell命令,我們需要滿足以下先決條件:

  1. 我們必須具有在Exchange伺服器上運行PowerShell命令的適當權限。訪問這些權限通常意味著成為Exchange組織管理組的成員或被分配適當的角色和權限。
  2. 我們必須在我們的電腦上安裝Exchange Management Shell。Exchange Management Shell是一個PowerShell模塊,具有專門設計來管理Exchange伺服器的cmdlets。通常,Exchange Management Shell是內建在一個Windows Server上,該伺服器提供Exchange服務。
  3. 假設我們要建立一個與Exchange伺服器的遠端PowerShell session。這可以透過使用Connect-ExchangeServer cmdlet來完成,它允許我們使用我們的Exchange憑證來連接到伺服器。
  4. 或者,我們將Exchange ManagementShell模組導入到我們的PowerShell會話中。我們使用Import-Module cmdlet,後跟模組的名稱來導入模組。
Import-Module ExchangeManagementShell

一旦我們滿足了這些先決條件,我們應該準備好運行Exchange PowerShell命令並生成報告。在文章的下一部分,我們將列出多種方法來審計我們的Microsoft Exchange環境。

使用PowerShell中的Get Mail命令

請注意,這段翻譯保留了原文中的自定義標記,並將其轉換為繁體中文,同時保持了語言的習慣用法。

PowerShell 中的 Get-Mail 指令程式 是管理及處理 Microsoft Exchange 中 電子郵件 的強大工具。它允許我們根據發件人、收件人、主題或日期範圍等各種條件檢索特定電子郵件或通知群組。此外,我們可以使用 Get-Mail 指令程式查看個別訊息的詳細信息,或將其導出到文件以進行進一步分析。

以下是一些 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 Server的具體配置以及指定期間內的郵件流量

交換發送和接收電子郵件報告

此外,管理員經常想知道用戶發送和接收了多少封電子郵件。我們可以使用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參數來擷取過去十天的資料。我們可以使用Start-HistoricalSearchGet-HistoricalSearch指令來搜尋超過十天的訊息資料。

以下是一個擷取指定期間內特定使用者傳送訊息的追蹤資訊的範例:

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/