如何在 Microsoft 365 中使用信箱稽核記錄
在 Microsoft 365 中,您可以執行信箱稽核記錄,以判斷信箱何時意外更新或信箱中遺漏專案。 例如,如果專案已移動,或專案遭到意外或不正確刪除,您可能必須執行此動作。
注意:針對 vNext 環境,預設不會啟用信箱稽核記錄。 必須開啟此功能,使用者才能開始搜尋。
如何執行及檢查信箱稽核記錄
信箱稽核記錄可讓使用者取得非擁有者和系統管理員所執行之動作的相關信息。 信箱稽核記錄僅適用於稽核報告信箱自助群組的成員,只能使用 Windows 遠端 PowerShell。
注意
- 根據預設,只會啟用非擁有者信箱稽核記錄,並停用擁有者信箱稽核記錄。 如果您必須執行擁有者信箱稽核記錄來調查特定問題,您可以暫時啟用程式兩周。
- 某些組織可能不允許您使用信箱稽核記錄。 在此情況下,將會為您關閉此功能。
若要調查此問題,請使用本節步驟 1 中提供的範例腳本來建立及使用 Windows PowerShell 腳本,然後自定義搜尋。 根據預設,您可以調查非擁有者和系統管理員所執行的動作。 此腳本會匯出簡化、逗號分隔值 (.csv) 檔案中的內容,以協助您針對遺漏或意外更新的專案進行疑難解答。
重要
建議客戶使用此範例腳本。 腳本是由 Microsoft Online Services 提供,以協助進行特定調查。 Microsoft Online Services 腳本是泛型的,而且應該在所有客戶環境中都可使用。 如果腳本執行時發生錯誤,腳本的內容應該作為範例來建立特定客戶環境的自定義腳本。 Microsoft在線服務提供腳本,方便Microsoft 365 名客戶,而不提供明示或默示擔保。
步驟 1:執行腳本
若要執行文稿,請遵循下列步驟:
開啟文字編輯器,例如記事本,然後將下列程式代碼複製到檔案中。 程序代碼會使用
search-mailboxAuditLog
屬於exchange Server Microsoft一部分的命令。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
注意
- 如果您在不使用參數的情況下執行文稿,系統會提示您輸入下列預設參數:
- 信箱
- StartDate
- EndDate
- 若要從目前日期搜尋專案,請在提示視窗中將一天新增至結束日期值。 例如,如果目前的日期是 2017/3/14,而且您想要在搜尋中包含目前日期,請輸入 3/15/2017 做為結束日期。
- 如果您在不使用參數的情況下執行文稿,系統會提示您輸入下列預設參數:
步驟 2:自定義信箱稽核記錄搜尋
Microsoft 365 中,信箱稽核記錄專案會保留在信箱中 90 天。 系統會提示您指出搜尋的開始日期和結束日期。 您可以使用數個選擇性參數來自定義搜尋。 如需這些參數的描述,請參閱一節。
如果在文稿執行之後找到專案,您會收到類似下列訊息的訊息:
正在搜尋信箱稽核紀錄...
共11個專案
拿掉 FolderBind 作業。
篩選為1個專案將結果張貼至檔案:AuditLogResults121024_142419.csv
此範例訊息指出搜尋程式找到11個專案。 根據預設, FolderBind 專案會篩選掉,且下列作業類型會維持不變:
- 複本
- 建立
- HardDelete
- MessageBind
- 移動
- MoveToDeletedItems
- SendAs
- SendOnBehalf
- SoftDelete
- 更新
注意
FolderBind 作業指出非擁有者存取信箱的時間。 這是最常見的作業。 當您調查已更新或刪除的專案時,您不需要檢視 FolderBind 作業。
檢閱.csv檔案的輸出。 最有用的數據行會匯出,其中有些數據行會合併,讓輸出更容易檢閱。 如需匯出之數據行的詳細資訊,請參閱一節。
擁有者信箱稽核記錄
默認會針對所有組織開啟信箱稽核記錄。 默認啟用信箱稽核的主要優點之一是您不需要管理稽核的信箱動作。 Microsoft為您管理這些動作,而且我們會在發行信箱時,自動新增要稽核的新信箱動作。
不過,您的組織可能必須針對使用者信箱和共用信箱稽核一組不同的信箱動作。 如需如何變更針對每個登入類型稽核的信箱動作,以及如何還原為受Microsoft管理的默認動作的詳細資訊,請參閱 默認記錄的變更或還原信箱動作。
其他相關資訊
選擇性腳本參數
下列清單描述搭配文稿搭配使用時產生不同結果的 Run-MailboxAuditLogSearcher
選擇性參數:
IncludeFolderBind:防止 FolderBind 作業從輸出篩選。 您可以使用 FolderBind 資訊來調查信箱存取問題。
例如,下列 Cmdlet 會搜尋 「Test User 1」 信箱,並包含所有作業:
.\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;"
主旨:可讓您指定專案的主旨,以限制在該專案上執行的作業搜尋。
例如,下列 Cmdlet 會篩選出所有輸出,但主旨設定為 『Good News』 的專案除外:
.\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.comgt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;"
ReturnObject:導致結果顯示在畫面上(但無法匯出至.csv檔案)。
例如,下列 Cmdlet 會在畫面上顯示輸出:
.\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 | 執行作業 的使用者登入類型附註 登入類型包括: - 非擁有者 委派 - 系統管理員 - 信箱擁有者 (預設未記錄) |
MailboxResolvedOwnerName | 信箱使用者的 已解析名稱 注意 已解析的名稱的格式如下: Domain\SamAccountName |
OperationResult | 作業 狀態 注意 作業結果包括: - 失敗 - 部分成功 - 成功 |
CrossMailboxOperation | 記錄的作業是否為跨信箱作業的相關信息(例如,在信箱之間複製或移動郵件) |
信箱稽核記錄的詳細資訊
Search-MailboxAuditLog Cmdlet 用於步驟 1 的範例腳本中,以同步方式搜尋單一信箱。 您也可以在 Windows 遠端 PowerShell 中執行 Cmdlet 來執行此動作。
如需 Cmdlet 的詳細資訊,請移至下列 TechNet 文章:
您可以異步搜尋一或多個信箱。 若要這樣做,請在 Windows 遠端 PowerShell 中執行下列 Cmdlet:
New-MailboxAuditLogSearch
如需此 Cmdlet 的詳細資訊,請移至下列文章:
如需預設信箱稽核記錄項目的詳細資訊,請移至下列文章的一節: