
配布リストやメールが有効なセキュリティグループのメンバーを追加、削除した場合に操作したユーザーや実行した日時を確認するには、監査ログの機能を利用することで可能です。
管理画面上でエクスポートした情報だと不要な情報も多いと思いますので、Powershellのコマンドレットでスクリプトを利用し AuditData の値から必要な情報を抜き出す方法をご紹介したいと思います。
以下の記事を参考にExchangeOnlineに接続してから実行してください。
監査ログの AuditData から情報を出力する手順
<構文>
$AuditLogs = Search-UnifiedAuditLog -StartDate "開始日時" -EndDate "終了日時" -Operations "Add-DistributionGroupMember","Remove-DistributionGroupMember"
$AuditLogs.AuditData | ConvertFrom-Json | Select-Object CreationTime, Operation, UserId, ObjectId, @{Name="Parameters"; Expression={ ($_.Parameters | ForEach-Object { "$($_.Name)=$($_.Value)" }) -join "; " }} | Export-Csv -NoTypeInformation -Encoding UTF8 -Path "<ファイルパス\ファイル名>.csv"
<実行例>
$AuditLogs = Search-UnifiedAuditLog -StartDate "2025/8/1" -EndDate "2025/8/7" -Operations "Add-DistributionGroupMember","Remove-DistributionGroupMember"
$AuditLogs.AuditData | ConvertFrom-Json | Select-Object CreationTime, Operation, UserId, ObjectId, @{Name="Parameters"; Expression={ ($_.Parameters | ForEach-Object { "$($_.Name)=$($_.Value)" }) -join "; " }} | Export-Csv -NoTypeInformation -Encoding UTF8 -Path "C:\Temp\UnifiedAuditLog.csv"
<出力結果>
CreationTime : 操作した日時
Operation : 操作した内容
UserId : 操作したユーザー
ObjectId : 対象のグループ
Parameters : 変更されたメンバーの内容など
Parameters 内の "Member=" の値から追加、削除されたメンバーの確認できますが、[Add-DistributionGroupMember (メンバーの追加] では、アドレス形式で表示されるため、判断が可能です。
[Remove-DistributionGroupMember (メンバーの削除)] では、"ExternalDirectoryObjectId" の値で表示されるためどのユーザーであるか判断することができませんでした。
その場合、Parameters 内の "Member=" に記録されている値を Get-Mailbox で指定し実行することでメールアドレスや表示名を確認することができるため、どのユーザーであるか判断することができます。
削除されたユーザーを確認する手順
<実行例>
Get-Mailbox -Identity "123abc45-ddd0-12a3-1234-12345abcde78" | fl DisplayName,PrimarySmtpAddress
※ "123abc45-ddd0-12a3-1234-12345abcde78" を Parameters 内の "Member=" に記録されている値に置き換えて実行してください。
<出力結果>
DisplayName : 表示名
PrimarySmtpAddress : プライマリアドレス