Compartilhar via


Utilizar um script para criar um relatório em suspensões em casos de Deteção de Dados Eletrónicos

Dica

A Deteção de Dados Eletrónicos (pré-visualização) está agora disponível no novo portal do Microsoft Purview. Para saber mais sobre como utilizar a nova experiência de Deteção de Dados Eletrónicos, veja Saiba mais sobre a Deteção de Dados Eletrónicos (pré-visualização).

O script neste artigo permite que os administradores de Deteção de Dados Eletrónicos e os gestores de Deteção de Dados Eletrónicos gerem um relatório que contém informações sobre todas as suspensões associadas a casos de Deteção de Dados Eletrónicos (Standard) e de Deteção de Dados Eletrónicos (Premium) no portal de conformidade do Microsoft Purview. O relatório contém informações como o nome do caso ao qual uma suspensão está associada, as localizações de conteúdo que são colocadas em suspensão e se a suspensão é baseada em consultas. Se existirem casos que não tenham retenções, o script irá criar um relatório adicional com uma lista de casos sem suspensões.

Consulte a secção Mais informações para obter uma descrição detalhada das informações incluídas no relatório.

Dica

Se você não é um cliente E5, use a avaliação das soluções do Microsoft Purview de 90 dias para explorar como os recursos adicionais do Purview podem ajudar sua organização a gerenciar as necessidades de segurança e conformidade de dados. Comece agora no hub de testes do portal de conformidade do Microsoft Purview. Saiba mais detalhes sobre os termos de inscrição e avaliação.

Requisitos de administração e informações do script

  • Para gerar um relatório sobre todos os casos de Deteção de Dados Eletrónicos na sua organização, tem de ser um Administrador de Deteção de Dados Eletrónicos na sua organização. Se for um Gestor de Deteção de Dados Eletrónicos, o relatório só incluirá informações sobre os casos a que pode aceder. Para obter mais informações sobre permissões de Deteção de Dados Eletrónicos, veja Atribuir permissões de Deteção de Dados Eletrónicos.
  • O script neste artigo tem um processamento de erros mínimo. O principal objetivo é criar rapidamente um relatório sobre as suspensões que estão associadas aos casos de Deteção de Dados Eletrónicos na sua organização.
  • Os scripts de exemplo fornecidos neste artigo não são compatíveis com nenhum serviço ou programa de suporte padrão da Microsoft. Os scripts de exemplo são fornecidos COMO ESTÃO sem qualquer tipo de garantia. A Microsoft também se isenta de todas as garantias implícitas, incluindo sem limitações quaisquer garantias aplicáveis de padrões de comercialização ou de adequação a uma finalidade específica. Todos os riscos decorrentes do uso ou da execução da documentação ou scripts de exemplo serão de sua responsabilidade. De modo algum a Microsoft, seus autores ou qualquer outra pessoa envolvida na criação, produção ou veiculação dos scripts serão considerados responsáveis por quaisquer danos (incluindo sem limitações danos por perda de lucros comerciais, interrupção de negócios, perda de informações comerciais ou outras perdas pecuniárias) resultantes do uso ou da incapacidade de uso da documentação ou scripts de exemplo, mesmo que a Microsoft tenha sido alertada sobre a possibilidade de tais danos.

Etapa 1: Conecte-se à Segurança e Conformidade do PowerShell

A primeira etapa é conectar-se à Segurança e Conformidade do PowerShell da sua organização. Para obter instruções passo a passo, confira Conectar-se à Segurança e Conformidade do PowerShell .

Passo 2: Executar o script para comunicar em suspensões associadas a casos de Deteção de Dados Eletrónicos

Depois de se ligar ao PowerShell de Conformidade do & de Segurança, o passo seguinte consiste em criar e executar o script que recolhe informações sobre os casos de Deteção de Dados Eletrónicos na sua organização.

  1. Guarde o seguinte texto num ficheiro de script do Windows PowerShell com um sufixo de nome de ficheiro de .ps1; por exemplo, CaseHoldsReport.ps1.

     #script begin
     " "
     write-host "***********************************************"
     write-host "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 -Format dd-MM-yyyy_hh.mm
     $Path = Read-Host 'Enter a folder path to save the report to a .csv file (filename is created automatically)'
     $outputpath = $Path + '\' + 'CaseHoldsReport' + ' ' + $time + '.csv'
     $noholdsfilepath = $Path + '\' + 'CaseswithNoHolds' + $time + '.csv'
    
     #add case details to the csv file
     function add-tocasereport {
         Param([string]$casename,
             [String]$casetype,
             [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,
             [string]$holdstatus,
             [string]$holderror
         )
    
         $addRow = New-Object PSObject
         Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case name" -Value $casename
         Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case type" -Value $casetype
         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
         Add-Member -InputObject $addrow -MemberType NoteProperty -Name "Hold Status" -Value $holdstatus
         Add-Member -InputObject $addrow -MemberType NoteProperty -Name "Hold Error" -Value $holderror
    
         $allholdreport = $addRow | Select-Object "Case name", "Case type", "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)", "Hold Status", "Hold Error"
         $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 eDiscovery (Standard) 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 -casetype $cc.casetype -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 }
             if ($policies -ne $NULL) {
                 foreach ($policy in $policies) {
                     $rule = Get-CaseHoldRule -Policy $policy.name
                     add-tocasereport -casename $cc.name -casetype $cc.casetype -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 -holdstatus $policy.DistributionStatus -holderror $policy.DistributionResults
                 }
             }
             else {
                 Write-Host "No hold policies found in case:" $cc.name -foregroundColor 'Yellow'
                 " "
                 [string]$cc.name | out-file -filepath $noholdsfilepath -append
             }
         }
     }
    
     #get information on the cases and pass values to the case report function
     " "
     write-host "Gathering a list of eDiscovery (Premium) cases and holds..."
     " "
     $edc = Get-ComplianceCase -CaseType Advanced -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 -casetype $cc.casetype -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 }
             if ($policies -ne $NULL) {
                 foreach ($policy in $policies) {
                     $rule = Get-CaseHoldRule -Policy $policy.name
                     add-tocasereport -casename $cc.name -casetype $cc.casetype -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 -holdstatus $policy.DistributionStatus -holderror $policy.DistributionResults
    
                 }
             }
             else {
                 write-host "No hold policies found in case:" $cc.name -foregroundColor 'Yellow'
                 " "
                 [string]$cc.name | out-file -filepath $noholdsfilepath -append
             }
         }
     }
    
     " "
     Write-host "Script complete! Report files saved to this folder: '$Path'"
     " "
     #script end
    
  2. Na sessão do Windows PowerShell que abriu no Passo 1, aceda à pasta onde guardou o script.

  3. Executar o script; Por exemplo:

    .\CaseHoldsReport.ps1
    

    O script pedirá uma pasta de destino para guardar o relatório.

  4. Escreva o nome completo do caminho da pasta na qual pretende guardar o relatório e, em seguida, prima Enter.

    Dica

    Para guardar o relatório na mesma pasta onde o script está localizado, escreva um ponto final (".") quando lhe for pedido para procurar uma pasta de destino. Para guardar o relatório numa subpasta na pasta onde o script está localizado, basta escrever o nome da subpasta.

    O script começa a recolher informações sobre todos os casos de Deteção de Dados Eletrónicos na sua organização. Não aceda ao ficheiro de relatório enquanto o script estiver em execução. Após a conclusão do script, é apresentada uma mensagem de confirmação na sessão do Windows PowerShell. Depois de esta mensagem ser apresentada, pode aceder ao relatório na pasta que especificou no Passo 4. O nome do ficheiro do relatório é CaseHoldsReport<DateTimeStamp>.csv.

    Além disso, o script também cria um relatório com uma lista de casos que não têm retenções. O nome de ficheiro para este relatório é CaseswithNoHolds<DateTimeStamp>.csv.

    Eis um exemplo de execução do script CaseHoldsReport.ps1.

    O resultado depois de executar o script CaseHoldsReport.ps1.

Mais informações

O caso contém o relatório que é criado quando executa o script neste artigo contém as seguintes informações sobre cada suspensão. Conforme explicado anteriormente, tem de ser um Administrador de Deteção de Dados Eletrónicos para devolver informações de todas as suspensões na sua organização. Para obter mais informações sobre a suspensão de casos, veja Casos de Deteção de Dados Eletrónicos.

  • O nome da suspensão e o nome do caso de Deteção de Dados Eletrónicos ao qual a suspensão está associada.
  • Se a suspensão está associada a um caso de Deteção de Dados Eletrónicos (Standard) ou de Deteção de Dados Eletrónicos (Premium).
  • Se o caso de Deteção de Dados Eletrónicos está ou não ativo ou fechado.
  • Se a suspensão está ou não ativada ou desativada.
  • Os membros do caso de Deteção de Dados Eletrónicos ao qual a suspensão está associada. Os membros do caso podem ver ou gerir um caso, consoante as permissões de Deteção de Dados Eletrónicos que lhes foram atribuídas.
  • A hora e a data em que o caso foi criado.
  • Se um caso for encerrado, a pessoa que o fechou e a hora e data em que foi encerrado.
  • As caixas de correio do Exchange e as localizações dos sites do SharePoint que estão em suspensão.
  • Se a suspensão for baseada em consultas, a sintaxe da consulta.
  • A hora e a data em que a suspensão foi criada e a pessoa que a criou.
  • A hora e a data em que a suspensão foi alterada pela última vez e a pessoa que a alterou.