在 Office 365 中的 eDiscovery 案例中保留在建立報表

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

附註: 若要修正問題位置保留內容的位置未包含在報表中已更新這份文件中的指令碼。我們注意到引薦此客戶的感謝您 !

本文中的指令碼讓 eDiscovery 系統管理員和 eDiscovery 管理員產生報告,包含所有保留 eDiscovery 案例中Office 365 安全性與合規性中心與相關聯的相關資訊。 報表包含資訊,例如會與內容的位置上按住不放,相關聯的大小寫保留名稱,以及是否保留是以查詢為基礎。請參閱在報表中所包含的資訊的詳細描述的詳細資訊區段。

開始之前

  • 您組織中產生上所有的 eDiscovery 案例的報告,您必須是您組織中的 eDiscovery 系統管理員。 如果您是 eDiscovery 管理員,報告只會包含您可以存取的案例的相關資訊。如需有關 eDiscovery 權限的詳細資訊,請參閱指派的 [Office 365 的安全性與規範中心中的 eDiscovery 權限

  • 本文中的指令碼具有最小的錯誤處理。主要目的是快速建立 [與您組織中的 eDiscovery 案例相關聯的保留相關報告。

  • 在任何 Microsoft 標準支援程式或服務下,不支援本主題提供的指令碼。範例指令碼係依「現狀」提供,不附帶任何明示或默示的擔保。Microsoft 另外不承擔任何明示或默示的擔保,包括但不限於適售性或適合某特定用途的默示擔保。使用或操作範例指令碼和文件發生的所有風險皆屬於您的責任。Microsoft、其作者以及其他與建置、生產或交付程式碼相關的任何人在任何情況下皆完全不需對任何損失負責任,包括但不限於商業利潤損失、業務中斷、業務資訊損失、或其他錢財損失等因使用或無法使用範例指令碼所發生的損失,即使 Microsoft 曾建議這些損失發生的可能性。

步驟 1: 連線至 [安全性與規範中心使用遠端 PowerShell

第一個步驟是將 Windows PowerShell 連線到安全性與合規性中心為您的組織。

  1. 使用檔案名稱的尾碼.ps1; 將下列文字儲存至Windows PowerShell指令碼檔例如,ConnectSCC.ps1。

    # Get login credentials 
    $UserCredential = Get-Credential 
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid -Credential $UserCredential -Authentication Basic -AllowRedirection 
    Import-PSSession $Session -AllowClobber -DisableNameChecking 
    $Host.UI.RawUI.WindowTitle = $UserCredential.UserName + " (Office 365 Security & Compliance Center)" 
    
  2. 在您的本機電腦上開啟Windows PowerShell並移至之前儲存的指令碼的資料夾。

  3. 執行指令碼。例如:

    .\ConnectSCC.ps1
  4. 出現提示時輸入您的認證,輸入您的電子郵件地址和密碼,,然後按一下[確定]

回到頁首

步驟 2: 執行報告的指令碼保留 eDiscovery 案例與相關聯

您已連線至安全性與合規性中心與遠端 PowerShell 後下, 一步是建立並執行指令碼會收集您組織中的 eDiscovery 案例的相關資訊。

  1. 使用檔案名稱的尾碼.ps1; 將下列文字儲存至Windows PowerShell指令碼檔例如,CaseHoldsReport.ps1。

    #script begin
    " " 
    write-host "***********************************************"
    write-host "   Office 365 Security & Compliance Center   " -foregroundColor yellow -backgroundcolor darkgreen
    write-host "        eDiscovery cases - Holds report         " -foregroundColor yellow -backgroundcolor darkgreen 
    write-host "***********************************************"
    " " 
    
    #prompt users to specify a path to store the output files
    $time=get-date
    $Path = Read-Host 'Enter a file path to save the report to a .csv file'
    $outputpath=$Path+'\'+'CaseHoldsReport'+' '+$time.day+'-'+$time.month+'-'+$time.year+' '+$time.hour+'.'+$time.minute+'.csv'
    
    #add case details to the csv file
    
    function add-tocasereport{
    Param([string]$casename,
    [String]$casestatus,
    [datetime]$casecreatedtime,
    [string]$casemembers,
    [datetime]$caseClosedDateTime,
    [string]$caseclosedby,
    [string]$holdname,
    [String]$Holdenabled,
    [string]$holdcreatedby,
    [string]$holdlastmodifiedby,
    [string]$ExchangeLocation,
    [string]$sharePointlocation,
    [string]$ContentMatchQuery,
    [datetime]$holdcreatedtime,
    [datetime]$holdchangedtime
    )
    $addRow = New-Object PSObject 
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case name" -Value $casename
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case status" -Value $casestatus
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case members" -Value $casemembers
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case created time" -Value $casecreatedtime
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case closed time" -Value $caseClosedDateTime
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case closed by" -Value $caseclosedby
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold name" -Value $holdname
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold enabled" -Value $Holdenabled
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold created by" -Value $holdcreatedby
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold last changed by" -Value $holdlastmodifiedby
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Exchange locations" -Value  $ExchangeLocation
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "SharePoint locations" -Value $sharePointlocation
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold query" -Value $ContentMatchQuery
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold created time (UTC)" -Value $holdcreatedtime
    Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold changed time (UTC)" -Value $holdchangedtime
    
    $allholdreport = $addRow | Select-Object "Case name","Case status","Hold name","Hold enabled","Case members", "Case created time","Case closed time","Case closed by","Exchange locations","SharePoint locations","Hold query","Hold created by","Hold created time (UTC)","Hold last changed by","Hold changed time (UTC)"
    
    $allholdreport | export-csv -path $outputPath -notypeinfo -append -Encoding ascii 
    }
    
    #get information on the cases and pass values to the case report function
    
    " "
    write-host "Gathering a list of cases and holds..."
    " "
    $edc =Get-ComplianceCase -ErrorAction SilentlyContinue
    foreach($cc in $edc)
    {
    write-host "Working on case :" $cc.name
    if($cc.status -eq 'Closed')
    {
    $cmembers = ((Get-ComplianceCaseMember -Case $cc.name).windowsLiveID)-join ';'
    add-tocasereport -casename $cc.name -casestatus $cc.Status -caseclosedby $cc.closedby -caseClosedDateTime $cc.ClosedDateTime -casemembers $cmembers 
    }
    else{
    $cmembers = ((Get-ComplianceCaseMember -Case $cc.name).windowsLiveID)-join ';'
    $policies = Get-CaseHoldPolicy -Case $cc.Name | %{ Get-CaseHoldPolicy $_.Name -Case $_.CaseId -DistributionDetail}
    foreach ($policy in $policies)
    {
    $rule=Get-CaseHoldRule -Policy $policy.name
    add-tocasereport -casename $cc.name -casemembers $cmembers -casestatus $cc.Status -casecreatedtime $cc.CreatedDateTime -holdname $policy.name -holdenabled $policy.enabled -holdcreatedby $policy.CreatedBy -holdlastmodifiedby $policy.LastModifiedBy -ExchangeLocation (($policy.exchangelocation.name)-join ';') -SharePointLocation (($policy.sharePointlocation.name)-join ';') -ContentMatchQuery $rule.ContentMatchQuery -holdcreatedtime $policy.WhenCreatedUTC -holdchangedtime $policy.WhenChangedUTC
    }
    }
    }
    " "
    Write-host "Script complete! Report file: '$outputPath'"
    " "
    #script end
  2. 在 [步驟 1 中開啟Windows PowerShell工作階段,移至儲存指令碼的資料夾。

  3. 執行指令碼。例如:

    .\CaseHoldsReport.ps1

    若要儲存報表的目標資料夾會提示輸入指令碼。

  4. 輸入要儲存報表,以資料夾完整路徑名稱,然後按enter 鍵

    提示: 若要儲存報表的指令碼位於相同資料夾中,輸入一段 (「。 」) 當系統提示您輸入的目標資料夾。若要將報表儲存在指令碼所在的資料夾的子資料夾中,只要輸入子資料夾的名稱。

    指令碼會開始 「 收集您組織中的所有 eDiscovery 案例的相關資訊。 執行指令碼時,沒有存取報表檔案。指令碼完成後,請確認訊息會顯示Windows PowerShell工作階段。顯示此訊息後,您可以存取您在步驟 4 中指定的資料夾中的報表。報表的檔案名稱是 CaseHoldsReport < DateTimeStamp >.csv。

    以下是執行 CaseHoldsReport.ps1 指令碼的範例。

    執行 CaseHoldsReport.ps1 指令碼之後輸出

回到頁首

其他資訊

大小寫保留您執行本文中的指令碼時所建立的報表包含每個保留的下列資訊。如先前所解釋,您必須是 eDiscovery 系統管理員,以傳回您組織中的所有保留的資訊。如需有關大小寫保留的詳細資訊,請參閱在 Office 365 的安全性與規範中心管理 eDiscovery 案件

  • 保留和 eDiscovery 案例保留與其相關聯的名稱的名稱。

  • 是否 eDiscovery 案例是作用中或已關閉。

  • 保留是否啟用或停用。

  • EDiscovery 案例保留與其相關聯的成員。大小寫的成員可以檢視或管理的情況下,視已被指派的 eDiscovery 權限而定。

  • 時間和大小寫的建立的日期。

  • 如果已關閉的情況下,已關閉關閉其與時間和日期它的人員。

  • Exchange信箱和SharePoint網站上保留的位置。

  • 如果保留是以查詢為基礎的查詢語法。

  • 時間及保留的建立的日期,以及建立的人員。

  • 時間和上次變更保留日期,以及變更的人員。

回到頁首

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×