在 Office 365 中的电子数据展示事例保留在创建报表

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

注意: 已更新本文中的脚本来修复问题正在报表中包含内容的位置保留起来未。致谢向我们的个别扇区提供此客户 !

本文中的脚本,让电子数据展示管理员和电子数据展示管理生成的报表,其中包含有关与Office 365 安全与合规中心中的电子数据展示事例相关联的所有保留的信息。 报表包含的信息,如保留的事例的名称与置于保持状态,内容位置以及是否保留是基于查询。请参阅的详细信息部分中的报表中包含的信息的详细说明。

准备工作

  • 要生成您的组织中所有的电子数据展示事例的报表,您必须是您的组织中电子数据展示管理员。 如果您是电子数据展示管理器,报表将仅包含有关您可以访问的情况。有关电子数据展示权限的详细信息,请参阅在 Office 365 安全和合规性中心中的电子数据展示权限分配

  • 本文中的脚本具有最少错误处理。主要用途是迅速创建有关与您的组织中的电子数据展示事例相关联的保留报告。

  • 本主题中提供的示例脚本在任意 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: 运行报告的脚本包含与电子数据展示事例相关联

您已连接到使用远程 PowerShell 安全和合规性中心后下, 一步是创建和运行收集有关您的组织中的电子数据展示事例的脚本。

  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

    提示: 要将报表保存脚本位于同一文件夹中,键入句点 ("。") 时提示您目标文件夹。若要在脚本所在的文件夹中的子文件夹中保存报表,只需键入子文件夹的名称。

    脚本开始收集有关您的组织中的所有电子数据展示事例的信息。 脚本运行时,没有访问报表文件。脚本完成后,在Windows PowerShell会话中显示一条确认消息。显示此消息后,您可以访问您在步骤 4 中指定的文件夹中的报告。报表的文件名是 CaseHoldsReport < DateTimeStamp >.csv。

    下面是运行 CaseHoldsReport.ps1 脚本的示例。

    之后运行 CaseHoldsReport.ps1 脚本输出

返回页首

更多信息

这种情况包含在本文中运行脚本时创建的报表中包含有关每个保留的以下信息。为前面所述,您必须是电子数据展示管理员联系,以返回您的组织中的所有保留的信息。有关事例保留的详细信息,请参阅在 Office 365 安全和合规性中心管理电子数据展示事例

  • 保留和保留相关联的电子数据展示事例的名称的名称。

  • 电子数据展示事例是否活动或已关闭。

  • 是否启用或禁用保留。

  • 保持相关联的电子数据展示事例的成员。大小写的成员可以查看或管理的情况下,具体取决于他们已被分配电子数据展示权限。

  • 时间和大小写的创建的日期。

  • 如果已关闭事例,请关闭它和时间和日期它的人员已关闭。

  • Exchange邮箱和SharePoint网站上保留的位置。

  • 如果保留是基于查询的查询语法。

  • 时间和保留的创建的日期和创建它的人员。

  • 时间和保留上次更改的日期和更改它的人员。

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×