Microsoft 365 でメールボックス監査ログを使用する方法
Microsoft 365 では、メールボックス監査ログを実行して、メールボックスが予期せず更新された時期や、メールボックスにアイテムがないかどうかを判断できます。 たとえば、アイテムが移動された場合や、アイテムが予期せず削除された場合や誤って削除された場合に、これを行う必要がある場合があります。
注: vNext 環境の場合、既定では、メールボックス監査ログは有効になっていません。 ユーザーが検索を開始するには、この機能を有効にする必要があります。
メールボックス監査ログを実行して確認する方法
メールボックス監査ログを使用すると、ユーザーは所有者および管理者以外によって実行されるアクションに関する情報を取得できます。 メールボックス監査ログは、Windows リモート PowerShell を使用する場合にのみ、監査レポート メールボックスのセルフサービス グループのメンバーが使用できます。
Note
- 既定では、所有者以外のメールボックス監査ログのみが有効になり、所有者メールボックス監査ログは無効になります。 特定の問題を調査するために所有者メールボックス監査ログを実行する必要がある場合は、プロセスを 2 週間一時的に有効にすることができます。
- 一部の組織では、メールボックス監査ログを使用できない場合があります。 この場合、この機能はオフになります。
この問題を調査するには、このセクションの手順 1 で提供されているサンプル スクリプトを使用して Windows PowerShell スクリプトを作成して使用し、検索をカスタマイズします。 既定では、所有者と管理者以外によって実行されるアクションを調査できます。 このスクリプトは、不足しているアイテムや予期せず更新されたアイテムに関するレポートのトラブルシューティングに役立つ、簡略化されたコンマ区切り値 (.csv) ファイルでコンテンツをエクスポートします。
重要
このサンプル スクリプトを使用することをお勧めします。 スクリプトは、特定の調査に役立つ Microsoft Online Services によって提供されます。 Microsoft Online Services スクリプトは汎用的であり、すべての顧客環境で使用できる必要があります。 スクリプトの実行時にエラーが発生した場合は、スクリプトの内容を例として使用して、特定の顧客環境用にカスタマイズされたスクリプトを作成する必要があります。 Microsoft Online Services は、明示または黙示を問わず、Microsoft 365 のお客様に便利なスクリプトを提供します。
手順 1: スクリプトを実行する
スクリプトを実行するには、次の手順に従います。
メモ帳などのテキスト エディターを開き、次のコードをファイルにコピーします。 このコードでは、Microsoft Exchange Server の一部である
search-mailboxAuditLog
コマンドを使用します。param ([PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)] [string]$Mailbox, [PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)] [string]$StartDate, [PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)] [string]$EndDate, [PARAMETER(Mandatory=$FALSE,ValueFromPipeline=$FALSE)] [string]$Subject, [PARAMETER(Mandatory=$False,ValueFromPipeline=$FALSE)] [switch]$IncludeFolderBind, [PARAMETER(Mandatory=$False,ValueFromPipeline=$FALSE)] [switch]$ReturnObject) BEGIN { [string[]]$LogParameters = @('Operation', 'LogonUserDisplayName', 'LastAccessed', 'DestFolderPathName', 'FolderPathName', 'ClientInfoString', 'ClientIPAddress', 'ClientMachineName', 'ClientProcessName', 'ClientVersion', 'LogonType', 'MailboxResolvedOwnerName', 'OperationResult') } END { if ($ReturnObject) {return $SearchResults} elseif ($SearchResults.count -gt 0) { $Date = get-date -Format yyMMdd_HHmmss $OutFileName = "AuditLogResults$Date.csv" write-host write-host -fore green "Posting results to file: $OutfileName" $SearchResults | export-csv $OutFileName -notypeinformation -encoding UTF8 } } PROCESS { write-host -fore green 'Searching Mailbox Audit Logs...' $SearchResults = @(search-mailboxAuditLog $Mailbox -StartDate $StartDate -EndDate $EndDate -LogonTypes Owner, Admin, Delegate -ShowDetails -resultsize 50000) write-host -fore green '$($SearchREsults.Count) Total entries Found' if (-not $IncludeFolderBind) { write-host -fore green 'Removing FolderBind operations.' $SearchResults = @($SearchResults | ? {$_.Operation -notlike 'FolderBind'}) write-host -fore green 'Filtered to $($SearchREsults.Count) Entries' } $SearchResults = @($SearchResults | select ($LogParameters + @{Name='Subject';e={if (($_.SourceItems.Count -eq 0) -or ($_.SourceItems.Count -eq $null)){$_.ItemSubject} else {($_.SourceItems[0].SourceItemSubject).TrimStart(' ')}}}, @{Name='CrossMailboxOp';e={if (@('SendAs','Create','Update') -contains $_.Operation) {'N/A'} else {$_.CrossMailboxOperation}}})) $LogParameters = @('Subject') + $LogParameters + @('CrossMailboxOp') If ($Subject -ne '' -and $Subject -ne $null) { write-host -fore green 'Searching for Subject: $Subject' $SearchResults = @($SearchResults | ? {$_.Subject -match $Subject -or $_.Subject -eq $Subject}) write-host -fore green 'Filtered to $($SearchREsults.Count) Entries' } $SearchResults = @($SearchResults | select $LogParameters) }
[ファイル] メニューの [名前を付けて保存] をクリックします。
[ 種類として保存 ボックスで、[すべてのファイル 選択。
[ ファイル名 ボックスに「 Run-MailboxAuditLogSearcher.ps1」と入力し、 Save を選択します。
Windows PowerShell を開き、 Windows リモート PowerShell に接続します。
スクリプトを保存したフォルダーを見つけて、スクリプトを実行します。
.\Run-MailboxAuditLogSearcher.ps1
Note
- パラメーターを指定せずにスクリプトを実行すると、次の既定のパラメーターの入力を求められます。
- メールボックス
- StartDate
- EndDate
- 現在の日付のエントリを検索するには、プロンプト ウィンドウの終了日の値に 1 日を追加します。 たとえば、現在の日付が 3/14/2017 で、現在の日付を検索に含める場合は、終了日として「 3/15/2017 」と入力します。
- パラメーターを指定せずにスクリプトを実行すると、次の既定のパラメーターの入力を求められます。
手順 2: メールボックス監査ログ検索をカスタマイズする
Microsoft 365 では、メールボックス監査ログ エントリはメールボックスに 90 日間保持されます。 検索の開始日と終了日を指定するように求められます。 いくつかの省略可能なパラメーターを使用して、検索をカスタマイズできます。 これらのパラメーターの説明については、「詳細情報」セクションを参照してください。
スクリプトの実行後に項目が見つかった場合は、次のようなメッセージが表示されます。
メールボックス監査ログの検索...
11 エントリの合計が見つかりました
FolderBind 操作の削除。
1 エントリにフィルター処理ファイルへの結果の投稿: AuditLogResults121024_142419.csv
このメッセージ例は、検索プロセスで 11 個のエントリが見つかったことを示します。 既定では、 FolderBind エントリは除外され、次の操作の種類が残ります。
- コピー
- 作成
- HardDelete
- MessageBind
- 移動
- MoveToDeletedItems
- SendAs
- SendOnBehalf
- SoftDelete
- 更新する
Note
FolderBind 操作は、所有者以外がメールボックスにアクセスする時刻を示します。 これは最も一般的な操作です。 更新または削除されたアイテムを調査するときに FolderBind 操作を表示する必要はありません。
.csv ファイルの出力を確認します。 最も便利な列がエクスポートされ、これらの列の一部がマージされ、出力の確認が容易になります。 エクスポートされる列の詳細については、「詳細情報」セクションを参照してください。
所有者メールボックス監査ログ
メールボックス監査ログは、すべての組織で既定で有効になっています。 既定でメールボックス監査を有効にする主な利点の 1 つは、監査対象のメールボックスアクションを管理する必要ができないことです。 これらのアクションは Microsoft によって自動的に管理され、新しいメールボックス アクションは、リリース時に既定で監査対象として自動的に追加されます。
ただし、組織では、ユーザー メールボックスと共有メールボックスに対して異なる一連のメールボックス アクションを監査する必要がある場合があります。 サインインの種類ごとに監査されるメールボックス アクションを変更する方法と、Microsoft が管理する既定のアクションに戻す方法の詳細については、「 既定でログに記録されたメールボックス アクションを変更または復元する」を参照してください。
詳細
省略可能なスクリプト パラメーター
次の一覧では、 Run-MailboxAuditLogSearcher
スクリプトと共に使用する場合に異なる結果を生成する省略可能なパラメーターについて説明します。
IncludeFolderBind: FolderBind 操作が出力からフィルター処理されないようにします。 FolderBind 情報を使用して、メールボックス アクセスの問題を調査できます。
たとえば、次のコマンドレットは、"Test User 1" メールボックスを検索し、すべての操作を含みます。
.\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;"
件名: アイテムに対して実行される操作の検索を制限するために、アイテムの件名を指定できます。
たとえば、次のコマンドレットは、件名が "Good News" に設定されている項目を除くすべての出力を除外します。
.\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.comgt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;"
ReturnObject: 結果が画面に表示されます (ただし、.csv ファイルにはエクスポートされません)。
たとえば、次のコマンドレットは画面に出力を表示します。
.\Run-MailboxAuditLogSearcher.ps1 -ReturnObject -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;"
.csv ファイルからエクスポートされた列
.csv ファイルの最も便利な列がエクスポートされます。 これらの列の一部は、出力を確認しやすくするためにマージされます。 次の表に、エクスポートされる列の一覧を示します。
列 | 説明 |
---|---|
サブジェクト | アイテムの件名 |
操作 | アイテムに対して実行されるアクション |
LogonUserDisplayName | ログオンしているユーザーの表示名 |
LastAccessed | 操作が実行された時刻 |
DestFolderPathName | 移動操作の移動先フォルダー |
FolderPathName | フォルダーのパス |
ClientInfoString | 操作を実行するクライアントの詳細 |
LastAccessed | クライアント コンピューターの IP アドレス |
ClientMachineName | クライアント コンピューターの名前 |
ClientProcessName | クライアント アプリケーション プロセスの名前 |
ClientVersion | クライアント アプリケーションのバージョン |
LogonType | 操作を実行するユーザーのログオンの種類 Note ログオンの種類には、次のものが含まれます: - 所有者以外の の代理人- 管理者 - メールボックス所有者 (既定ではログに記録されません) |
MailboxResolvedOwnerName | メールボックス ユーザーの解決された名前 Note 解決済み名の形式は次のとおりです: Domain\SamAccountName |
OperationResult | 操作の状態 Note 操作の結果には、 - 失敗した - 部分的にSucceeded - 成功 |
CrossMailboxOperation | ログに記録される操作がメールボックス間操作であるかどうかに関する情報 (たとえば、メールボックス間でのメッセージのコピーまたは移動) |
メールボックス監査ログの詳細
Search-MailboxAuditLog コマンドレットは、手順 1 のサンプル スクリプトで 1 つのメールボックスを同期的に検索するために使用します。 これを行うには、Windows リモート PowerShell でコマンドレットを実行します。
コマンドレットの詳細については、次の TechNet の記事を参照してください。
1 つ以上のメールボックスを非同期で検索できます。 これを行うには、Windows リモート PowerShell で次のコマンドレットを実行します。
New-MailboxAuditLogSearch
このコマンドレットの詳細については、次の記事を参照してください。
既定のメールボックス監査ログ エントリの詳細については、次の記事の「メールボックス監査ログ エントリ」セクションを参照してください。