0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M365監査ログ「AuditData」カラムから必要な情報を抽出してCSVへ出力する

Last updated at Posted at 2025-01-06

はじめに

M365を扱う業務を経験していると一度は監査ログに触れる機会があるのではと思います。
CSV出力したデータの中に含まれているJSON形式のデータをPowerShellを使用して、必要な情報だけを抽出し新規CSVに出力する方法をご紹介いたします。

下記MS公式情報内「手順 2: Power Query エディターを使用してエクスポートされた監査ログを書式設定する」以降の作業を簡略化することを目的としています。

そのため、M365監査ログ取得手順については下記MS公開情報を確認していただければと思います。

事前準備

・M365監査ログ
・PowerShellが利用可能な環境

「AuditData」に含まれるプロパティについて

下記MS公開情報を確認していただき、抽出に必要なプロパティをあらかじめ絞ることをお勧めします。

今回は、下記プロパティを抽出し新規CSVに出力したいと思います。
CreationTime:レコードが作成された時間(UTC表記)
UserId:ユーザ名
Workload:利用されたサービス名
Operation:実行された操作

「AuditData」の変換

1.PowerShellを起動
※起動方法については割愛

2.M365監査ログのファイルパスを変数に格納し読み込む

# M365監査ログのファイルパスを変数に格納
$AuditlogPath = "M365監査ログのファイルパス"

# CSVの読み込みを行い、結果を変数に格納
$csv = Import-Csv -Path $AuditlogPath -Encoding Default 

3.M365監査ログ「AuditData」カラムのJSON文字列をJSONオブジェクトに変換

# JSON文字列をJSONオブジェクトに変換し、変数に格納する
$jsonobject = $csv.AuditData | ConvertFrom-Json

4.出力対象のプロパティを選択し、変数に格納

# 抽出対象の値のみを変数に格納する
$outputdata = $jsonobject | Select-Object CreationTime,UserId,Workload,Operation

5.新規CSVに出力する

# JSONオブジェクトをCSV形式に変換し、指定した出力先にCSVを出力する
$outputdata | Export-Csv -Path "出力先パス¥出力ファイル名.csv" -NoTypeInformation -Encoding UTF8

最後に

ExcelのPowerQueryエディターのJSON変換機能を利用せずにJSON形式のデータを読み取りやすい形式へ変換するための方法をご紹介させていただきました。
スクリプト化し、より簡単に変換する方法についても後日記載できればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?