Search-UnifiedAuditLog

此指令程式只能在雲端式服務中使用。

使用 Search-UnifiedAuditLog Cmdlet 來搜尋統一的稽核記錄。 此記錄檔包含來自 Exchange Online、SharePoint Online、商務用 OneDrive、Azure Active Directory、Microsoft Teams、Power BI 和其他事件Microsoft 365服務。 您可以搜尋指定日期範圍內的所有事件,也可以根據特定準則篩選結果,例如執行動作的使用者、動作或目標物件。

如需下方<語法>一節中參數集的詳細資訊,請參閱 Exchange Cmdlet 語法

Syntax

Search-UnifiedAuditLog
      -EndDate <ExDateTime>
      -StartDate <ExDateTime>
      [-Formatted]
      [-FreeText <String>]
      [-IPAddresses <String[]>]
      [-ObjectIds <String[]>]
      [-Operations <String[]>]
      [-RecordType <AuditRecordType>]
      [-ResultSize <Int32>]
      [-SessionCommand <UnifiedAuditSessionCommand>]
      [-SessionId <String>]
      [-SiteIds <String[]>]
      [-UserIds <String[]>]
      [<CommonParameters>]

Description

Search-UnifiedAuditLog Cmdlet 會根據相同命令的重複反復專案來呈現資料頁面。 使用 SessionId 和 SessionCommand 重複執行 Cmdlet,直到您收到零傳回,或根據會話命令達到最大結果數目為止。 若要測量進度,請查看 ResultIndex (目前反復專案) 中的點擊,以及 ResultCount (所有反覆運算的點擊) Cmdlet 所傳回資料的屬性。

Search-UnifiedAuditLog Cmdlet 可在 Exchange Online PowerShell 中取得。 您也可以使用 Microsoft Purview 合規性入口網站,從統一稽核記錄檢視事件。 如需詳細資訊,請參閱 稽核的活動

如果您想要以程式設計方式從Microsoft 365稽核記錄下載資料,建議您使用 Microsoft 365 管理活動 API,而不是在 PowerShell 腳本中使用 Search-UnifiedAuditLog Cmdlet。 Microsoft 365管理活動 API 是一項 REST Web 服務,可用來開發組織的作業、安全性和合規性監視解決方案。 如需詳細資訊,請 參閱管理活動 API 參考

此 Cmdlet 可在 21Vianet 運作的Office 365中使用,但不會傳回任何結果。

OutVariable 參數接受 ArrayList 類型的物件。 以下是如何使用它的範例:

$start = (Get-Date).AddDays(-1); $end = (Get-Date).AddDays(-0.5); $auditData = New-Object System.Collections.ArrayList; Search-UnifiedAuditLog -StartDate $start -EndDate $end -OutVariable +auditData | Out-Null

您必須已獲指派權限,才能執行此 cmdlet。雖然本主題已列出此 cmdlet 的所有參數,不過,如果某些參數並未包含在指派給您的權限中,您可能就無法存取這些參數。若要尋找在組織中執行任何 cmdlet 或參數所需的權限,請參閱 尋找執行任何 Exchange cmdlet 所需的權限

範例

範例 1

Search-UnifiedAuditLog -StartDate 5/1/2018 -EndDate 5/2/2018

本範例會在整合稽核記錄中搜尋從 2018 年 5 月 1 日上午 5 月 1 日 201812:00 到 2018 年 5 月 2 日 12:00 的所有事件。

注意:如果您未在 StartDate 或 EndDate 參數的值中包含時間戳記,則會使用預設時間戳記 12:00 AM (午夜) 。

範例 2

Search-UnifiedAuditLog -StartDate "6/1/2018 8:00 AM" -EndDate "6/1/2018 6:00 PM" -RecordType ExchangeAdmin

此範例會在整合稽核記錄中搜尋從 2018 年 6 月 1 日上午 8:00 到下午 6:00 的所有Exchange系統管理事件。

注意 如果您對 StartDate 和 EndDate 參數使用相同的日期,則必須包含時間戳記;否則,將不會傳回任何結果,因為開始和結束日期的日期和時間會相同。

範例 3

Search-UnifiedAuditLog -StartDate 5/1/2018 -EndDate 5/8/2018 -SessionId "UnifiedAuditLogSearch 05/08/17" -SessionCommand ReturnLargeSet

此範例會在整合稽核記錄中搜尋從 2018 年 5 月 1 日到 2018 年 5 月 8 日的所有事件。 如果您未在 StartDate 或 EndDate 參數中包含時間戳記,則會在頁面中傳回資料,因為命令會在使用相同的 SessionId 值時循序重新執行。

注意事項:在指定的 SessionId 值上永遠使用相同的 SessionCommand 值。 在相同的工作階段 ID 上不要在 ReturnLargeSet 與 ReturnNextPreviewPage 間切換。 否則,輸出會限制為 10,000 個結果。

範例 4

Search-UnifiedAuditLog -StartDate 5/1/2018 -EndDate 5/8/2018 -RecordType SharePointFileOperation -Operations FileAccessed -SessionId "WordDocs_SharepointViews"-SessionCommand ReturnLargeSet

此範例會在整合稽核記錄中搜尋從 2018 年 5 月 1 日到 2018 年 5 月 8 日,SharePoint Online 中存取的任何檔案。 使用相同的 SessionId 值時,循序重新執行命令時會在頁面中傳回資料。

範例 5

Search-UnifiedAuditLog -StartDate 5/1/2018 -EndDate 5/8/2018 -ObjectIDs "https://alpinehouse.sharepoint.com/sites/contoso/Departments/SM/International/Shared Documents/Sales Invoice - International.docx"

此範例會搜尋從 2018 年 5 月 1 日到 2018 年 5 月 8 日整合的稽核記錄檔,以找出其 ObjectIDs 值所識別之特定 Word 檔的所有相關事件。

參數

-EndDate

EndDate 參數會指定日期範圍的結束日期。 專案會儲存在國際標準時間 (UTC) 的統一稽核記錄中。 如果您指定沒有時區的日期/時間值,則值為 UTC。

若要指定這個參數的日期/時間值,請使用下列其中一個選項︰

  • 以 UTC 指定日期/時間值:例如。 "2018-05-06 14:30:00z"
  • 將日期/時間值指定為公式,將您當地時區的日期/時間轉換成 UTC:例如。 (Get-Date "5/6/2018 9:30 AM").ToUniversalTime() 如需詳細資訊,請參閱 Get-Date

如果您未在此參數的值中包含時間戳記,則預設時間戳記為指定日期的上午 12:00 (午夜) 。

Type:ExDateTime
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-Formatted

Formatted 參數會使通常以整數形式傳回的屬性 (例如 RecordType 和 Operation) 格式化為描述性字串。 您不需要使用此參數指定值。

此外,此參數可讓 AuditData 更容易閱讀。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-FreeText

FreeText 參數會依指定的文字字串來篩選記錄專案。 如果值包含空格,請使用引號 (") 括住值。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-IPAddresses

IPAddresses 參數會依指定的 IP 位址篩選記錄專案。 您可以指定多個以逗號分隔的 IP 位址。

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-ObjectIds

ObjectIds 參數會依據物件識別碼來篩選記錄項目。 物件識別碼是已啟動的目標物件,而且取決於事件的 RecordType 和 Operations 值。 例如,針對SharePoint作業,物件識別碼是檔案、資料夾或網站的 URL 路徑。 針對Azure Active Directory作業,物件識別碼是帳戶的帳戶名稱或 GUID 值。

ObjectId 值會出現在事件的 AuditData (也稱為詳細資料) 屬性。

您可以輸入多個以逗號分隔的值。 如果值包含空格或需要引號,請使用下列語法: "Value1","Value2",..."ValueN"

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-Operations

Operations 參數會依據作業來篩選記錄項目。 此參數的可用值取決於 RecordType 值。 如需此參數可用值的清單,請參閱 稽核的活動

您可以輸入多個以逗號分隔的值。 如果值包含空格或需要引號,請使用下列語法: "Value1","Value2",..."ValueN"

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-RecordType

RecordType 參數會依據記錄類型來篩選記錄項目。 如需可用值的詳細資訊,請參閱 AuditLogRecordType

Type:AuditRecordType
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-ResultSize

ResultSize 參數會指定傳回的結果筆數上限。預設值為 100,最大值為 5000。

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-SessionCommand

SessionCommand 參數會指定傳回的資訊量及其組織方式。 有效值為:

  • ReturnLargeSet:此值會導致 Cmdlet 傳回未排序的資料。 藉由使用分頁,您最多可以存取 50,000 個結果。 如果不需要已排序的結果,而且已經針對搜尋延遲優化,則這是建議的值。
  • ReturnNextPreviewPage:此值會使 Cmdlet 傳回依日期排序的資料。 使用分頁或 ResultSize 參數傳回的記錄數目上限為 5,000 筆記錄。

注意事項:在指定的 SessionId 值上永遠使用相同的 SessionCommand 值。 在相同的工作階段 ID 上不要在 ReturnLargeSet 與 ReturnNextPreviewPage 間切換。 否則,輸出會限制為 10,000 個結果。

Type:UnifiedAuditSessionCommand
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-SessionId

SessionId 參數會以字串格式指定您提供的識別碼來識別命令 (Cmdlet 和它的參數),該命令將會執行多次以傳回分頁資料。SessionId 可以是您選擇的任何字串值。

當 Cmdlet 以相同的會話識別碼循序執行時,Cmdlet 會以 ResultSize 所指定大小的循序區塊傳回資料。

在指定的工作階段 ID 上,如果您使用 SessionCommand 值 ReturnLargeSet然後使用 SessionCommand值 ReturnNextPreviewPage,結果會僅限於 10000 筆記錄。若要讓所有 50000 記錄可用,每次在相同工作階段 ID 上執行此指令時,永遠使用 ReturnLargeSet 值。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-SiteIds

SiteIds 參數會依 SharePoint SiteId (GUID) 來篩選記錄專案。 您可以輸入多個以逗號分隔的值: Value1, Value2,...ValueN

若要取得SharePoint網站的 SiteId,請附加 /_api/site/id 至您要指定之網站集合的 URL。 例如,將 URL https://contoso.sharepoint.com/sites/hr-project 變更為 https://contoso.sharepoint.com/sites/hr-project/_api/site/id 。 會傳回 XML 承載,而網站集合的 SiteId 會顯示在 Edm.Guid 屬性中;例如: <d:Id xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:type="Edm.Guid">14ab81b6-f23d-476a-8cac-ad5dbd2910f7</d:Id>

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-StartDate

StartDate 參數會指定日期範圍的開始日期。 專案會儲存在國際標準時間 (UTC) 的統一稽核記錄中。 如果您指定沒有時區的日期/時間值,則值為 UTC。

若要指定這個參數的日期/時間值,請使用下列其中一個選項︰

  • 以 UTC 指定日期/時間值:例如。 "2018-05-06 14:30:00z"
  • 將日期/時間值指定為公式,將您當地時區的日期/時間轉換成 UTC:例如。 (Get-Date "5/6/2018 9:30 AM").ToUniversalTime() 如需詳細資訊,請參閱 Get-Date

如果您未在此參數的值中包含時間戳記,則預設時間戳記為指定日期的上午 12:00 (午夜) 。

Type:ExDateTime
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online
-UserIds

UserIds 參數會依執行動作之使用者 (UserPrincipalName) 帳戶篩選記錄專案。 例如,laura@contoso.onmicrosoft.com。

您可以輸入多個以逗號分隔的值。 如果值包含空格或需要引號,請使用下列語法: "Value1","Value2",..."ValueN"

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

輸入

輸出