本文
備忘がてら投稿しておきます。
# Microsoft Graph PowerShell モジュールのインストール
Install-Module Microsoft.Graph -Scope CurrentUser
# Microsoft Graph にサインイン
Connect-MgGraph -Scopes "AuditLog.Read.All"
# 初期設定
$allSignInLogs = @()
$top = 1000
$nextLink = "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=$top"
# ページングしてサインインログを取得
do {
$response = Invoke-MgGraphRequest -Uri $nextLink -Method Get
$allSignInLogs += $response.value
$nextLink = $response.'@odata.nextLink'
} while ($null -ne $nextLink)
# ログを CSV ファイルにエクスポート
$allSignInLogs | Export-Csv -Path "PATH" -NoTypeInformation
補足
以下でも実現できるかもしれません
Import-Module Microsoft.Graph.Reports
Get-MgAuditLogSignIn
参考情報:Get-MgAuditLogSignIn
GUI だと 100,000 件の取得上限があります
ダウンロードを試みるデータ セットが大規模な場合、Microsoft Entra 管理センターのダウンロード サービスがタイムアウトになります。 一般に、監査ログでは 250,000 件未満のデータ セット、サインイン ログとプロビジョニング ログでは 100,000 件未満のデータ セットが、ブラウザーのダウンロード機能で適切に機能します。
ブラウザーで大量のダウンロードの実行に問題が発生した場合は、レポート API を使用 してデータをダウンロードするか、診断設定を使用してログをエンドポイントに送信します。