検証テナントで作成した構成を本番テナントに移植するとき、コマンドベースで処理ができれば、コピー&ペーストで済むので楽ですよね。
監査ログの保持ポリシーをPowerShellから設定する方法を記載します。
Office 365 E5またはMicrosoft 365 E5ライセンス、Microsoft 365 E5 Complianceライセンスなどを所有する方が対象です。
はじめに
GUIベースで対応する場合は、Microsoft Purviewの「監査」-「監査保持ポリシー」、「監査保持ポリシーを作成」から行います。
Microsoft PurviewのURLは以下になります。
1つずつ登録するのは時間がかかりますし、入力ミスのリスクがあります。
横展開は、コマンド操作がおすすめです。
コマンド処理の前提条件
モジュールの確認
PowerShellを開き、以下コマンドでExchangeOnlineManagementモジュールが存在するか確認してください。
Get-InstalledModule ExchangeOnlineManagement
モジュールがない場合は、以下コマンドでインストールします。
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
インストール後に冒頭のコマンドを実行してモジュールの存在を確認してください。
接続
管理者役割のあるアカウントを指定し接続します。
Connect-IPPSSession -UserPrincipalName <UPN>
カスタマイズの有効化
初めてPowerShellによる操作をする場合は、以下コマンドを実行します。
1回だけ実行すれば大丈夫です。
Enable-OrganizationCustomization
監査保持ポリシーのコマンド操作
新規作成
New-UnifiedAuditLogRetentionPolicyコマンドで監査保持ポリシーを作成します。
例えば、特定のユーザーに対して、TeamsとSharePointの監査ログを6ヵ月保持する場合は以下のように書きます。
New-UnifiedAuditLogRetentionPolicy -Name "Teams and SPO by admin" -Description "Six Months retention policy for Teams and SPO by admin" -RecordTypes MicrosoftTeams,SharePoint -UserIds "admin@xxxx.onmicrosoft.com" -RetentionDuration SixMonths -Priority 1000
必須オプションが3つあります。
- -Nameのポリシー名
- -Priorityの優先度
- -RetentionDurationの監査ログの期間
優先度は、1から10000の範囲で指定します。数値の低い方が優先されます。
監査ログの期間は、6つのオプションから選択します。
- SevenDays(7日間)
- OneMonth(1ヶ月)
- ThreeMonths(3ヵ月)
- SixMonths(6ヵ月)
- NineMonths(9ヵ月)
- TwelveMonths(12ヶ月)
※ 3年、5年、7年、10年の指定は追加のアドオンが必要です。
編集
作成済みの監査保持ポリシーを一部訂正したい場合は、Set-UnifiedAuditLogRetentionPolicy コマンドを使います。次の項目を変更できます。
- 説明文(-Description)
- ユーザー(-UserIds)
- レコードの種類(-RecordTypes)
- アクティビティ(-Operations)
- 期間(-RetentionDuration)
- 優先度(-Priority)
例えば、説明文を変更する場合は以下のように書きます。
Set-UnifiedAuditLogRetentionPolicy -Identity "Teams and SPO by admin" -Priority 100 -RetentionDuration SixMonths -Description "Six Months retention policy for Teams and SPO by admin2"
必須オプションは以下の3つです。
- -Identity
- -Priority
- -RetentionDuration
-Identityは、ポリシー名を入力します。
New-UnifiedAuditLogRetentionPolicyコマンドの-Nameオプションで使用した値が入ります。
ポリシーの一覧確認
以下のコマンドで確認できます。
Get-UnifiedAuditLogRetentionPolicy | Select Name,Priority,RetentionDuration
ポリシーの削除
以下のコマンドのように、ポリシー名を指定し削除します。
Remove-UnifiedAuditLogRetentionPolicy -Identity "Teams and SPO by admin"
ポリシーの削除の完了はタイムラグが発生する場合があります。
時間を置いてから、ポリシーの一覧確認コマンドで確認してください。
おわりに
なるべくコマンド操作で処理できないかと思うことが多いです。
GUI操作と比べ、作業効率が上がりますし、詳細設計書が書きやすくて助かります。