Microsoft 365 でメールボックス監査ログを使用する方法
元の KB 番号: 4021960
概要
Microsoft 365 では、メールボックス監査ログを実行して、メールボックスが予期せず更新されたタイミングや、メールボックスにアイテムが見つからないかどうかを判断できます。 たとえば、アイテムが移動された場合や、予期せず削除された場合や誤って削除された場合など、これを行う必要があります。
vNext 環境の場合、メールボックス監査ログは既定では有効になっていないので、検索を開始する前にユーザーに対して有効にする必要があることに注意してください。
メールボックス監査ログを実行してチェックする方法
メールボックス監査ログを使用すると、ユーザーは所有者および管理者以外によって実行されるアクションに関する情報を取得できます。 メールボックス監査ログは、Windows リモート PowerShell を使用する場合にのみ、監査レポート メールボックスのセルフサービス グループのメンバーが使用できます。
注:
- 既定では、所有者以外のメールボックス監査ログのみが有効になり、所有者メールボックス監査ログは無効になっています。 所有者メールボックス監査ログを実行して特定の問題を調査する必要がある場合は、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」と入力し、[ 保存] をクリックします。
Windows PowerShellを開始し、Windows リモート PowerShell に接続します。
スクリプトを保存したディレクトリを見つけて、スクリプトを実行します。
.\Run-MailboxAuditLogSearcher.ps1
注:
- パラメーターなしでスクリプトを実行すると、次の既定のパラメーターの入力を求められます。
- Mailbox
- StartDate
- EndDate
- 現在の日付のエントリを検索するには、プロンプト ウィンドウの終了日の値に 1 日を追加します。 たとえば、現在の日付が 2017 年 3 月 14 日で、現在の日付を検索に含める場合は、終了日として 「3/15/2017 」と入力します。
- パラメーターなしでスクリプトを実行すると、次の既定のパラメーターの入力を求められます。
手順 2: メールボックス監査ログ検索をカスタマイズする
Microsoft 365 では、メールボックス監査ログ エントリはメールボックスに 90 日間保持されます。 検索の開始日と終了日を示すメッセージが表示されます。 いくつかの省略可能なパラメーターを使用して、検索をカスタマイズできます。 これらのパラメーターの説明については、「詳細情報」セクションを参照してください。
スクリプトの実行後に項目が見つかった場合は、次のようなメッセージが表示されます。
この例のメッセージは、検索プロセスで 11 個のエントリが見つかったことを示します。 既定では、 FolderBind エントリは除外され、次の操作の種類が残ります。
- コピー
- 作成する
- HardDelete
- MessageBind
- Move
- MoveToDeletedItems
- SendAs
- SendOnBehalf
- SoftDelete
- Update
注:
FolderBind 操作は、所有者以外のユーザーがメールボックスにアクセスする時刻を示します。 これは最も一般的な操作です。 更新または削除されたアイテムを調査するときに、FolderBind 操作を表示する必要はありません。
.csv ファイルの出力を確認します。 最も便利な列がエクスポートされ、これらの列の一部がマージされ、出力の確認が容易になります。 エクスポートされる列の詳細については、「詳細情報」セクションを参照してください。
所有者メールボックス監査ログ
既定では。 所有者監査ログがオンになっていない。 これは、メールボックスの所有者によってアクションを調査する必要がある場合にのみ使用する必要があります。 これは、限られた期間のために使用する必要があります, 約2週間. これは、監査ログ エントリがメールボックスに格納され、メールボックス ダンプがサイズ制限を超える可能性があるためです。
所有者監査ログを有効にするには、次の手順に従います。
メールボックス監査ログが有効かどうかを判断します。 これを行うには、以下のコマンドレットを実行します。
Get-Mailbox <useridentity> | ft AuditEnabled
結果が True の場合は、この手順をスキップします。 結果が False の場合は、Windows PowerShellで次のコマンドレットを実行します。
Set-Mailbox <useridentity> -AuditEnabled $true
所有者監査ログを有効にします。 これを行うには、以下のコマンドレットを実行します。
Set-Mailbox <useridentity> -AuditOwner "Create,HardDelete,Move,MoveToDeletedItems,SoftDelete,Update"
Run-MailboxAuditLogSearcher.ps1を再実行し、データを確認します。
トラブルシューティングが完了したら、所有者監査ログを無効にします。 これを行うには、以下のコマンドレットを実行します。
Set-Mailbox <useridentity> -AuditOwner $none
詳細情報
省略可能なスクリプト パラメーター
次の一覧では、スクリプトと 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 | ログに記録されたユーザーの表示名 o |
LastAccessed | 操作が実行された時刻 |
DestFolderPathName | 移動操作の保存先フォルダー |
FolderPathName | フォルダーのパス |
ClientInfoString | 操作を実行するクライアントの詳細 |
LastAccessed | クライアント コンピューターの IP アドレス |
ClientMachineName | クライアント コンピューターの名前 |
ClientProcessName | クライアント アプリケーション プロセスの名前 |
ClientVersion | クライアント アプリケーションのバージョン |
LogonType | 操作を実行するユーザーのログオンの種類注 ログオンの種類には、次のものが含まれます。 - 所有者以外の代理人 - 管理者 - メールボックス所有者 (既定ではログに記録されません) |
MailboxResolvedOwnerName | メールボックス ユーザーの解決済み名前メモ 解決済み名は次の形式です:Domain\SamAccountName |
OperationResult | 操作の状態注 操作の結果には、次が含まれます。 - 失敗 - 部分的にSucceed - 成功 |
CrossMailboxOperation | ログに記録された操作がメールボックス間操作であるかどうかに関する情報 (メールボックス間でのメッセージのコピーや移動など) |
メールボックス監査ログの詳細
Search-MailboxAuditLog コマンドレットは、手順 1 のサンプル スクリプトで使用され、1 つのメールボックスを同期的に検索します。 これを行うには、Windows リモート PowerShell でコマンドレットを実行します。
コマンドレットの詳細については、次の TechNet の記事を参照してください。
1 つ以上のメールボックスを非同期で検索できます。 これを行うには、Windows リモート PowerShell で次のコマンドレットを実行します。
New-MailboxAuditLogSearch
このコマンドレットの詳細については、次の TechNet の記事を参照してください。
既定のメールボックス監査ログ エントリの詳細については、次の TechNet 記事の「メールボックス監査ログ エントリ」セクションを参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示