はじめに
Microsoft Purview で Teams の監査ログを確認する方法についてまとめてみました。
監査ログ
Microsoft Purview 監査ログを有効にすると、Microsoft 365 のアクティビティが記録されます。
監査ログで取得できる Teasm のアクティビティ
監査ログで取得できる Teams のアクティビティは以下の公開情報に記載されています。
(参考:Microsoft Teams アクティビティ)
https://learn.microsoft.com/ja-jp/purview/audit-log-activities#microsoft-teams-activities
メッセージの読み取り (MessageRead) やメッセージの取得 (MessagesListed) といった一部のアクティビティは、Graph API によって情報を取得した場合にのみ監査ログに記録されます。
※ Graph API についてはこちら
事前準備
監査ログの有効化
監査ログが有効になっていない場合、アクティビティの記録が行われません。監査ログが有効化されているかどうかは以下の手順で確認できます。
- Microsoft 365 管理センターから [Microsoft Purview] をクリックして、Microsoft Purview 管理センターを開きます
-
[ソリューション] - [監査] をクリックします
-
[ユーザーと管理者のアクティビティの記録を開始する] と表示されている場合は監査ログが有効になっていません
ボタンをクリックして監査ログを有効にすると、記録が開始されます。
監査ログを有効化する前のアクティビティは記録されていません。
(参考:監査のオンとオフを切り替える)
https://learn.microsoft.com/ja-jp/purview/audit-log-enable-disable#turn-on-auditing
変更が有効になるまでに最大 60 分かかる場合があります。
監査ログの確認方法
-
[ソリューション] - [監査] をクリックします
- 日付と時刻の範囲や検索対象とするアクティビティにチェックを入れて、[検索] をクリックします
日付と時刻は "UTC" のため、"JST" (日本標準時) -9 時間で指定する必要があるので注意します。
- ジョブが作成され、[キューに登録済み] と表示されます
[更新] ボタンをクリックして、ジョブが完了するのを待ちます。
-
[完了済み] と表示されたら、その行をクリックすると検索結果が表示されます
-
[エクスポート] ボタンをクリックすると、検索結果を CSV でダウンロードすることができます
PowerShell コマンドで確認する方法
ExchangeOnline PowerShell をインストール
管理者権限で PowerShell を開き、以下のコマンドを実行してください
Install-Module -Name ExchangeOnlineManagement
監査ログの検索
以下のコマンドを実行して、管理者でサインインします。
Connect-ExchangeOnline
■ コマンド例 1
監査ログの検索は [Search-UnifiedAuditLog ] コマンドで行います。"-Operations" で検索したいアクティビティを指定します。公開情報の表の [操作] 列の値を指定します。
Search-UnifiedAuditLog -StartDate 6/24/2025 -EndDate 6/25/2025 -Operations "TeamCreated","TeamDeleted","ChannelAdded","ChannelDeleted","TeamSettingChanged"
※ 出力結果の例
RecordType : MicrosoftTeams
CreationDate : 2025/06/25 5:18:17
UserIds : testuser01@atsmin.net
Operations : TeamCreated
AuditData : {"AppAccessContext":{"AADSessionId":"004d8ba9-a068-1d1c-f1bd-e7f16d630c10","IssuedAtTime":"2025-06-24T22
:18:38","UniqueTokenId":"bGYGcFiOnk2rb3bLOueCAA"},"CreationTime":"2025-06-25T05:18:17","Id":"d0daf92b-24
b7-45ea-9edb-d175aefd92f5","Operation":"TeamCreated","OrganizationId":"ac2852a6-88d6-4ddc-9a63-93391e191
144","RecordType":25,"UserKey":"c1fe9cb2-87f9-4a6a-b040-a5b63108dc4e","UserType":0,"Version":1,"Workload
":"MicrosoftTeams","UserId":"testuser01@atsmin.net","TeamGuid":"19:msCwV_VK1LddzrpyWHmDXjhPkwR3SvgmM9eeQ
F3iDoY1@thread.tacv2","TeamName":"テストチーム02"}
ResultIndex : 31
ResultCount : 32
Identity : d0daf92b-24b7-45ea-9edb-d175aefd92f5
IsValid : True
ObjectState : Unchanged
-StartDate / -EndDate で指定する日付と時刻も UTC のため、JST (日本標準時) -9 時間で指定します。
例のように時刻を省略すると、UTC で "6/24/2025 00:00" ~ "6/25/2025 00:00" が検索範囲になります。
■ コマンド例 2
Teams 管理者が管理センターなどから行ったアクティビティを検索するには "-Operations" に "TeamsAdminAction" を指定します。
また、"-FreeText" で任意の文字列を含むログにフィルタすることができます。
以下は "-FreeText" に Teams ポリシーの名前を指定して、ポリシーが変更された監査ログを検索するコマンドの例です。
Search-UnifiedAuditLog -StartDate 6/24/2025 -EndDate 6/25/2025 -Operations "TeamsAdminAction" -FreeText "テストポリシー"
※ 出力結果の例
RecordType : MicrosoftTeamsAdmin
CreationDate : 2025/06/25 21:29:57
UserIds : 管理者 テスト01
Operations : TeamsAdminAction
AuditData : {"AppAccessContext":{"IssuedAtTime":"2025-06-25T21:24:52","UniqueTokenId":"t-5k_UUQV0C-eMydvHxYAA"},"Cre
ationTime":"2025-06-25T21:29:57","Id":"af8a6b63-0e5c-4505-f4ab-08ddb42f6f18","Operation":"TeamsAdminActi
on","OrganizationId":"ac2852a6-88d6-4ddc-9a63-93391e191144","RecordType":57,"ResultStatus":"Succeeded","
UserKey":"afe685d9-1f2e-4802-914b-7f1ae0424d92","UserType":2,"Version":1,"Workload":"MicrosoftTeams","Cl
ientIP":"10.60.0.60","ObjectId":"TenantId: ac2852a6-88d6-4ddc-9a63-93391e191144 PolicyType: TeamsChannel
sPolicy PolicyName: テストポリシー","UserId":"管理者 テスト01","ExtraProperties":[{"Key":"CorrelationId"
,"Value":"647e606a-3b20-40c3-b77c-e13cfdff6f78"},{"Key":"ResourceType","Value":"Proxy"}],"AdminActionDet
ail":"PUT \/Skype.Policy\/configurations\/TeamsChannelsPolicy\/configuration\/%E3%83%86%E3%82%B9%E3%83%8
8%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC","ClientApplication":"IC3ConfigAPI\/20250611.04 (jpwe1-a-01-api-in
terfaces-records-cosmic)","UserClaims":"AuthenticatedUser,GlobalAdmin","ModifiedProperties":[{"Name":"En
ablePrivateTeamDiscovery","NewValue":"True","OldValue":"False"}]}
ResultIndex : 1
ResultCount : 2
Identity : af8a6b63-0e5c-4505-f4ab-08ddb42f6f18
IsValid : True
ObjectState : Unchanged
上記は Teams 管理センターで "テストポリシー" という名前の Teams ポリシーの "プライベート チームの検出" 設定を "オフ" から "オン" に変更した際の監査ログです。
出力結果の "AuditData" に操作の内容が出力されています。分かりにくいですが、よく見ると "ModifiedProperties" で "EnablePrivateTeamDiscovery" が "True" に変更されたことが分かります。
"ModifiedProperties":[{"Name":"EnablePrivateTeamDiscovery","NewValue":"True","OldValue":"False"}]}
(参考:Search-UnifiedAuditLog)
https://learn.microsoft.com/ja-jp/powershell/module/exchange/search-unifiedauditlog?view=exchange-ps
(参考:Exchange Online PowerShell に接続する)
https://learn.microsoft.com/ja-jp/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps