監査ログの保持ポリシーをPowerShellから設定する

検証テナントで作成した構成を本番テナントに移植するとき、コマンドベースで処理ができれば、コピー&ペーストで済むので楽ですよね。

監査ログの保持ポリシーをPowerShellから設定する方法を記載します。

Office 365 E5またはMicrosoft 365 E5ライセンス、Microsoft 365 E5 Complianceライセンスなどを所有する方が対象です。

はじめに

GUIベースで対応する場合は、Microsoft Purviewの「監査」-「監査保持ポリシー」、「監査保持ポリシーを作成」から行います。

Microsoft PurviewのURLは以下になります。

ホーム - Microsoft Purview

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操作と比べ、作業効率が上がりますし、詳細設計書が書きやすくて助かります。

執筆担当者プロフィール
宮久保 良彦

宮久保 良彦(日本ビジネスシステムズ株式会社)

モダンワークプレイス部に所属。 Azureに関連する提案、設計、構築を担当しています。 自作PCのカスタマイズが趣味です。

担当記事一覧