Exchange 2016 でメール追跡ログを検索するための簡単な方法は、PowerShell の Get-MessageTrackingLog コマンドレットを使用することです。
メール追跡ログの検索
メール追跡は、メールがメールボックスサーバーとエッジトランスポートサーバーを通過する過程を記録します。メール追跡ログを検索する最善の方法は、Exchange 管理シェルの Get-MessageTrackingLog コマンドレットを使用することです。
- 特定の受信者に送られたメッセージの流れを把握する。
- メールフロー規則がメッセージにどのように影響を与えたか調査する。
- インターネットからの送信者が組織の Exchange 内にメールを送ったかどうかを確認する。
- 特定ユーザーが特定の期間内に送信したすべてのメッセージを探す。
Exchange 2016 メール追跡ログの検索
メール追跡ログを検索するコマンドを実行します。Exchange イベントに関する情報をページング形式で表示するには、次のコマンドを実行します:
Get-MessageTrackingLog | Out-Host -Paging
データをテーブル形式で表示し、列幅を自動調整するには、Format-Table コマンドレットを使用します:
Get-MessageTrackingLog | Format-Table -AutoSize
Exchange 組織内で複数のトランスポートハブサーバーが使用されている場合、-Server パラメーターにサーバー名を指定します。それ以外の場合、パイプを使用して各トランスポートハブサーバーに対してメッセージ追跡コマンドを実行します:
Get-TransportServer | Get-MessageTrackingLog
@gmail.com ドメインからの受信者を指定し、過去24時間のすべてのメールを表示します:
Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize Unlimited | Where-Object { $_.Recipients -like "*@gmail.com" }
特定ユーザーが指定されたサーバーを介して特定の期間内に送信したすべてのメールを表示します:
Get-MessageTrackingLog -Sender "sample@example.com" -Server hub-server-01 -Start "2020-11-30 06:00:00" -End "2020-12-13 22:00:00" | Select-Object TimeStamp, Sender, Recipients, MessageSubject, EventID | Format-Table
特定のユーザーから他のユーザーへのすべてのメールを見つけ、結果をCSVファイルに出力します:
Get-MessageTrackingLog -Sender "sample@example.com" -Recipients "other@example.com" -Server hub-server-01 -ResultSize Unlimited | Select-Object TimeStamp, Sender, Recipients, MessageSubject | Export-Csv -Path "C:\Logs\email_tracking.csv" -Encoding Default -Delimiter ";"
メッセージの件名を検索します。件名フィールドに「test」という文字列を含むすべてのメールを表示するには、次のコマンドを実行します:
Get-MessageTrackingLog -MessageSubject "test" -Server hub-server-01 -ResultSize Unlimited | Select-Object TimeStamp, Sender, Recipients, MessageSubject | Out-GridView
メッセージIDが既知である場合は、次のコマンドを実行します:
Get-MessageTrackingLog -MessageID "1234567890ABCDEF@example.com" -Server hub-server-01 -ResultSize Unlimited | Select-Object TimeStamp, Sender, Recipients, MessageSubject
過去7日間、特定のメールボックス宛ての受信メール数をカウントするには、次のコマンドを実行します:
(Get-MessageTrackingLog -EventID "RECEIVE" -Recipients "admin@example.com" -Start (Get-Date).AddDays(-7) -ResultSize Unlimited).Count