Office 365 でのメールボックス監査ログの使用方法

適用対象: Exchange OnlineMicrosoft Exchange Online Dedicated

概要


Microsoft Office 365 では、メールボックス監査ログを実行して、メールボックスが予期せず更新されていないか、メールボックスにアイテムがないかどうかを判断できます。 例えば、アイテムが移動された場合や、アイテムが予期せず削除されたり間違って削除された場合などに、この操作を実行しなければならない場合があります。 

vNext 環境では、既定ではメールボックス監査ログが有効になっていないので、検索を開始する前にユーザーに対して有効にする必要があります。 関連情報については、以下を参照してください。 Office 365 専用/ITAR (vNext) ではメールボックス監査ログは有効になっていません。

メールボックス監査ログを実行およびチェックする方法


メールボックス監査ログを使用すると、ユーザーは、非所有者および管理者が実行するアクションに関する情報を取得できます。 メールボックス監査ログは、Windows リモート PowerShell を使用する場合にのみ、監査レポート メールボックスのセルフサービス グループのメンバーが利用できます。

注:

  • 既定では、所有者以外のメールボックス監査ログのみが有効になっており、所有者のメールボックス監査ログは無効になっています。 特定の問題を調査するために所有者のメールボックス監査ログを実行する必要がある場合は、プロセスを 2 週間一時的に有効にすることができます。
  • 一部の組織では、メールボックス監査ログを使用できないため、機能を無効にしています。


この問題を調べるには、このセクションの手順 1 で提供されているサンプル スクリプトを使用して、Windows PowerShell スクリプトを作成して使用し、検索をカスタマイズします。 既定では、非所有者および管理者が実行するアクションを調査できます。 このスクリプトは、コンテンツを単純なコンマ区切り値 (.csv) ファイルにエクスポートして、見つからないアイテムや、予期せず更新されたアイテムに関するレポートのトラブルシューティングを助けます。

重要 特定の調査のために、Microsoft Online Services が提供するスクリプトを使用することをお勧めします。 Microsoft Online Services スクリプトは一般的なものであり、すべての顧客環境で使用できる必要があります。 スクリプトを実行するときにエラーが発生した場合は、スクリプトの内容を例として使用し、特定の顧客環境用のカスタマイズされたスクリプトを作成する必要があります。 Microsoft Online Services は、Office 365 のお客様の便宜のために、明示的、黙示的にかかわらずスクリプトを提供します。 

手順 1: スクリプトを実行します

スクリプトを実行するには、以下の手順を実行します。

  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)}

     

  2. [ファイル] メニューの [名前を付けて保存] をクリックします。
  3. [タイプとして保存] ボックスで、[すべてのファイル] をクリックします。
  4. [ファイル名] ボックスに Run-MailboxAuditLogSearcher.ps1 と入力し、[ 保存 ] をクリックします。
  5. Windows PowerShell を起動し、Windows リモート PowerShell に接続します。
  6. スクリプトを保存したディレクトリを探し、スクリプトを実行します。 

    .\Run-MailboxAuditLogSearcher.ps1

    注:
     
    • パラメーターを指定せずにスクリプトを実行すると、以下の既定のパラメータの入力を求められます。
       
      • Mailbox
      • StartDate
      • EndDate
    • 現在の日からエントリを検索するには、プロンプト ウィンドウの end-date 値に 1 日を追加します。 例えば、現在の日付が 2017 年 3 月 14 日の場合、現在の日付を検索に含めるには、終了日として 2017 年 4 月 15 日を入力します。

手順 2: メールボックス監査ログ検索をカスタマイズします

Office 365 では、メールボックス監査ログエントリは 90 日間メールボックスに保持されます。 検索の開始日と終了日を示すように求められます。 複数のオプション パラメーターを使用して、検索をカスタマイズできます。 これらのパラメーターの説明については、「詳細」セクションを参照してください。

スクリプトの実行後にアイテムが見つかった場合は、次のようなメッセージが表示されます。

A screenshot of the message after running script

この例のメッセージでは、検索処理が 11 個のエントリを検出したことを示します。 既定では、 FolderBind エントリは除外され、以下の種類の操作が残ります。

  • コピーする
  • 作成
  • HardDelete
  • MessageBind
  • Move
  • MoveToDeletedItems
  • SendAs
  • SendOnBehalf
  • SoftDelete
  • 更新プログラム

注: FolderBind 操作は、メールボックスが非所有者によってアクセスされた時刻を示します。 これが最も一般的な操作です。 更新または削除されたアイテムを調査するときに、FolderBind 操作を表示する必要はありません。

.csv ファイルの出力を確認します。 最も有用な列はエクスポートされ、これらの列の一部が結合されて出力のレビューが簡単になります。 エクスポートされる列の詳細については、「詳細」セクションを参照してください。

所有者メールボックス監査ログ

既定では、所有者監査ログは有効になっていません。 これは、メールボックスの所有者によるアクションの調査が必要な場合にのみ使用します。 これは、限られた期間、およそ 2 週間使用する必要があります。 これは、監査ログ エントリがメールボックスに保存されているため、メールボックスのゴミ箱がサイズ制限を超えてしまう可能性があります。

所有者の監査ログを有効にするには、以下の手順を実行します。

  1. メールボックス監査ログを有効にするかどうかを決定します。 これを行うには、次のコマンドレットを実行します。 

    Get-Mailbox <useridentity> | ft AuditEnabled
  2. 結果が True の場合は、この手順をスキップします。 結果が False に設定されている場合は、Windows PowerShell で次のコマンドレットを実行します。 

    Set-Mailbox <useridentity> -AuditEnabled $true
  3. 所有者監査ログを有効にします。 これを行うには、次のコマンドレットを実行します。 

    Set-Mailbox <useridentity> -AuditOwner "Create,HardDelete,Move,MoveToDeletedItems,SoftDelete,Update" 
  4. Run-MailboxAuditLogSearcher.ps1 を再実行し、データを確認します。
  5. トラブルシューティングが完了したら、所有者監査ログを無効にします。 これを行うには、次のコマンドレットを実行します。 

    Set-Mailbox <useridentity> -AuditOwner $none

詳細情報


オプションのスクリプト パラメーター

次のリストでは、Run-MailboxAuditLogSearcher スクリプトと一緒に使用する場合に異なる結果を生成するオプション パラメーターを示します。

  • IncludeFolderBind: このスイッチを使用すると、出力から FolderBind 操作がフィルタリングされません。 FolderBind 情報を使用してメールボックス アクセスの問題を調査できます。 

    例えば、次のコマンドレットは、「Test User 1」メールボックスを検索し、すべての操作を含みます。

    .\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1>" -StartDate "<04/10/17>" -EndDate "<04/27/17>"
  • Subject: このスイッチを使用する場合は、そのアイテムで実行される操作の検索を制限するために、アイテムの件名を指定できます。 

    例えば、次のコマンドレットは、件名が「Good News」に設定されているアイテム以外のすべての出力を除外します。

    .\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.com>" -StartDate "<04/10/17>" -EndDate "<04/27/17>"
  • ReturnObject: このスイッチを使用すると、画面に結果が表示されますが、.csv ファイルにはエクスポートされません。 

    例えば、次のコマンドレットは画面に出力を表示します。

    .\Run-MailboxAuditLogSearcher.ps1 -ReturnObject -Mailbox "<Test User 1>" -StartDate "<04/10/17>" -EndDate "<04/27/17>"

.csv ファイルからのエクスポートされた列

.csv ファイルの最も有用な列がエクスポートされます。 これらの列の一部は、出力を簡単に確認できるように結合されています。 次の表に、エクスポートされる列を示します。

説明

表題

アイテムの件名

Operation

アイテムに対して実行されるアクション

LogonUserDisplayName

ログオンしているユーザーの表示名

LastAccessed

操作が実行された時刻

DestFolderPathName

移動操作のための移動先フォルダー

FolderPathName

フォルダーのパス

ClientInfoString

操作を実行するクライアントの詳細

ClientIPAddress

クライアント コンピューターの IP アドレス

ClientMachineName

クライアント コンピューターの名前

ClientProcessName

クライアント アプリケーション プロセスの名前

ClientVersion

クライアント アプリケーションのバージョン

LogonType

操作を実行するユーザーのログオンの種類

注: ログオンの種類は次のとおりです。

  • 非オーナーの代理人
  • Administrator
  • メールボックスの所有者(既定ではログに記録されません)

MailboxResolvedOwnerName

メールボックス ユーザーの解決名

注: 解決名の形式は次のとおりです。

Domain\SamAccountName

OperationResult

操作の状況

注: 操作結果には次のようなものがあります。

  • Failed
  • PartiallySucceeded
  • 成功

CrossMailboxOperation

ログに記録された操作がメールボックス間操作であるかどうかに関する情報 (例えば、メールボックス間のメッセージのコピーまたは移動)

メールボックス監査ログの詳細情報

  • 手順 1 のサンプル スクリプトで Search-MailboxAuditLog コマンドレットは、1 つのメールボックスを同期的に検索するために使用されます。 また、Windows リモート PowerShell でコマンドレットを実行して、これを行うこともできます。

    コマンドレットの詳細については、次の TechNet トピックを参照してください。

    Search-MailboxAuditLog

  • 1 つ以上のメールボックスを非同期で検索できます。 このためには、Windows リモート PowerShell で次のコマンドレットを実行します。

    New-MailboxAuditLogSearch
     

    このコマンドレットの詳細については、以下の TechNet トピックを参照してください。

    New-MailboxAuditLogSearch

    既定のメールボックス監査ログ エントリの詳細については、次の TechNet トピックの「メールボックス監査ログ エントリ」を参照してください。

    Exchange 2016 でのメールボックス監査ログ