- Get-MessageTrace 廃止された?
- Reporting Web サービスとは?
- Get-MessageTraceV2では page パラメーターが利用できない?
- 5000件以上の結果を出力するスクリプト
Get-MessageTrace 廃止された?
Get-MessageTrace のコマンドレットは、[メッセージ追跡] を実行するコマンドレットですが、2025 年 9 月 1 日より順次、廃止されることがメッセージセンターにて公開されていました。
私の環境でもコマンドレットを実行してもエラーが発生することを確認しました。
現在は、Get-MessageTrace のコマンドレットに代わり、Get-MessageTraceV2 のコマンドレットでメッセージ追跡のログが取得できます。
Reporting Web サービスを利用する場合の従来のメッセージトレースのサポート期間については、2026 年 2 月 28 日までの延長されるようです。
Reporting Web サービスとは?
Reporting Web サービスは、Exchange Online のレポートのデータを取得するために利用できる API です。
Exchange Online の情報を取得して、開発されたアプリケーションなどに利用するために提供されています。
Get-MessageTraceV2では page パラメーターが利用できない?
Get-MessageTraceV2 コマンドレッドでは、現在、”Page” パラメーターは利用することができません。
なお、”ResultSize” パラメーターにて、最大 5,000 件まで出力可能であり、出力件数が 5,000 を超える場合、以下のコマンドレッドで、5,000 件以降の結果の出力が可能です。
”ResultSize” パラメーターに指定した値の件数を超えた場合に、警告が表示されますが、その警告内に記載されているコマンドレットを実行することでも続きの結果の出力が可能です。
警告が表示されたら、以下のコマンドレットを実行します。
<実行例>
Get-MessageTraceV2 -StartDate '2025-10-01T00:00:00Z' -EndDate '2025-10-06T00:00:00Z' -ResultSize 5000 -StartingRecipientAddress user@contoso.com
<出力結果>
Message Trace ID : メッセージトレースID
Message ID : メッセージID
Received : 送受信日時
Sender Address : 送信者アドレス
Recipient Address : 受信者アドレス
From IP : 送信IPアドレス
Subject : 件名
Status : 配信状況
Size : アイテムのサイズ
Get-MessageTraceV2 実行時に出力された最後のレコードの "Received" 時刻を ”EndDate”、”RecipientAddress” を ”StartingRecipientAddress” に指定することで、出力結果が重複することなく続きの結果を出力できる方法となります。
※ 5000 行目の "Received" 時刻と ”RecipientAddress” を指定します。
5000件以上の結果を出力するスクリプト
以下のスクリプトを実行することで 5000 件以上のログを出力することが可能であることを確認しました。
$startDate に開始日、$endDate に終了日を指定してください。
以下の記事を参考にExchangeOnlineに接続してから実行してください。
<実行例>
# 初期パラメータ
$startDate = "2025-10-01"
$endDate = "2025-10-06"
$resultSize =5000
$hasMoreResults = $true
$allResults = @()
# 初回取得
$mt = Get-MessageTraceV2 -StartDate $startDate -EndDate $endDate -ResultSize $resultSize
$allResults += $mt
# ページング処理
while ($mt.Count -eq $resultSize) {
$lastReceived = $mt[-1].Received.ToString("O")
$lastRecipient = $mt[-1].RecipientAddress
$mt = Get-MessageTraceV2 -StartDate $startDate -EndDate $lastReceived -ResultSize $resultSize -StartingRecipientAddress $lastRecipient
$allResults += $mt
}
# 結果をCSVに保存
$allResults | Export-Csv -Path "C:\Temp\message_trace_results.csv" -NoTypeInformation -Encoding UTF8