Partilhar via


Criar, gerar relatórios sobre e excluir várias Pesquisas de Conteúdo

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).

Criar e comunicar rapidamente pesquisas de deteção é, muitas vezes, um passo importante na Deteção de Dados Eletrónicos e nas investigações quando está a tentar saber mais sobre os dados subjacentes e a riqueza e qualidade das suas pesquisas. Para o ajudar a fazê-lo, o PowerShell de Conformidade & de Segurança oferece um conjunto de cmdlets para automatizar tarefas de Pesquisa de Conteúdos demoradas. Estes scripts fornecem uma forma rápida e fácil de criar uma série de pesquisas e, em seguida, executam relatórios dos resultados estimados da pesquisa que podem ajudá-lo a determinar a quantidade de dados em questão. Também pode utilizar os scripts para criar versões diferentes de pesquisas para comparar os resultados que cada um produz. Estes scripts podem ajudá-lo a identificar e a recolher os seus dados de forma rápida e eficiente.

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 avaliações do Microsoft Purview. Saiba mais detalhes sobre os termos de inscrição e avaliação.

  • Tem de ser membro do grupo de funções Gestor de Deteção de Dados Eletrónicos no portal de conformidade do Microsoft Purview para executar os scripts descritos neste tópico.
  • Para recolher uma lista dos URLs dos OneDrive for Business sites na sua organização que pode adicionar ao ficheiro CSV no Passo 1, consulte Criar uma lista de todas as localizações do OneDrive na sua organização.
  • Certifique-se de que guarda todos os ficheiros que criar neste tópico na mesma pasta. Desta forma, será mais fácil executar os scripts.
  • Os scripts incluem um processamento de erros mínimo. O seu principal objetivo é criar, comunicar e eliminar rapidamente várias Pesquisas de Conteúdo.
  • Os scripts de exemplo fornecidos neste tópico não são suportados em nenhum programa ou serviço 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.

Passo 1: Criar um ficheiro CSV que contenha informações sobre as pesquisas que pretende executar

O ficheiro de valores separados por vírgulas (CSV) que criar neste passo contém uma linha para cada utilizador que pretenda procurar. Pode procurar na caixa de correio Exchange Online do utilizador (que inclui a caixa de correio de arquivo, se estiver ativada) e no respetivo site OneDrive for Business. Em alternativa, pode procurar apenas na caixa de correio ou no site OneDrive for Business. Também pode procurar em qualquer site na sua organização do SharePoint Online. O script que executar no Passo 3 criará uma pesquisa separada para cada linha no ficheiro CSV.

  1. Copie e cole o seguinte texto num ficheiro .txt com o Bloco de Notas. Guarde este ficheiro numa pasta no seu computador local. Também irá guardar os outros scripts nesta pasta.

    ExchangeLocation,SharePointLocation,ContentMatchQuery,StartDate,EndDate
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2000,12/31/2005
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2006,12/31/2010
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2011,3/21/2016
    ,https://contoso.sharepoint.com/sites/contoso,,,3/21/2016
    ,https://contoso-my.sharepoint.com/personal/davidl_contoso_onmicrosoft_com,,1/1/2015,
    ,https://contoso-my.sharepoint.com/personal/janets_contoso_onmicrosoft_com,,1/1/2015,
    

    A primeira linha, ou linha de cabeçalho, do ficheiro lista os parâmetros que serão utilizados pelo cmdlet New-ComplianceSearch (no script no Passo 3) para criar uma nova Pesquisa de Conteúdo. Os nomes dos parâmetros são separados por vírgula. Certifique-se de que não existem espaços na linha de cabeçalho. Cada linha abaixo da linha de cabeçalho representa os valores dos parâmetros de cada pesquisa. Certifique-se de que substitui os dados do marcador de posição no ficheiro CSV pelos seus dados reais.

  2. Abra o ficheiro .txt no Excel e, em seguida, utilize as informações na tabela seguinte para editar o ficheiro com informações para cada pesquisa.


Parâmetro Descrição
ExchangeLocation O endereço SMTP da caixa de correio do utilizador.
SharePointLocation O URL do site de OneDrive for Business do utilizador ou o URL de qualquer site na sua organização. Para o URL de OneDrive for Business sites, utilize este formato: https://<your organization>-my.sharepoint.com/personal/<user alias>_<your organization>_onmicrosoft_com. Por exemplo, https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com.
ContentMatchQuery A consulta de pesquisa da pesquisa. Para obter mais informações sobre como criar uma consulta de pesquisa, veja Consultas de palavras-chave e condições de pesquisa da Pesquisa de Conteúdos.
StartDate Para o e-mail, a data em ou depois de uma mensagem ter sido recebida por um destinatário ou enviada pelo remetente. Para documentos no SharePoint ou OneDrive for Business sites, a data em ou depois de um documento ter sido modificado pela última vez.
EndDate Para o e-mail, a data em ou antes de uma mensagem ter sido enviada pelo utilizador. Para documentos no SharePoint ou OneDrive for Business sites, a data em ou antes da última modificação de um documento.
  1. Guarde o ficheiro do Excel como um ficheiro CSV numa pasta no seu computador local. O script que criar no Passo 3 utilizará as informações neste ficheiro CSV para criar as pesquisas.

Passo 2: Ligar ao PowerShell de Conformidade do & de Segurança

O próximo passo é ligar ao PowerShell de Conformidade do & de Segurança para a sua organização. Para obter instruções passo a passo, confira Conectar-se à Segurança e Conformidade do PowerShell .

Passo 3: executar o script para criar e iniciar as pesquisas

O script neste passo irá criar uma Pesquisa de Conteúdo separada para cada linha no ficheiro CSV que criou no Passo 1. Quando executar este script, ser-lhe-ão pedidos dois valores:

  • ID do Grupo de Pesquisa – este nome fornece uma forma fácil de organizar as pesquisas criadas a partir do ficheiro CSV. Cada pesquisa criada tem o nome ID do Grupo de Pesquisa e, em seguida, é acrescentado um número ao nome da pesquisa. Por exemplo, se introduzir ContosoCase para o ID do Grupo de Pesquisa, as pesquisas são denominadas ContosoCase_1, ContosoCase_2, ContosoCase_3, etc. Tenha em atenção que o nome que escrever é sensível às maiúsculas e minúsculas. Quando utiliza o ID do Grupo de Pesquisa nos Passos 4 e 5, tem de utilizar o mesmo caso que utilizou quando o criou.

  • Ficheiro CSV – o nome do ficheiro CSV que criou no Passo 1. Certifique-se de que inclui a utilização do nome de ficheiro completo, inclua a extensão .csv ficheiro; por exemplo, ContosoCase.csv.

Para executar o script:

  1. Guarde o seguinte texto num ficheiro de script Windows PowerShell com um sufixo de nome de ficheiro de .ps1; por exemplo, CreateSearches.ps1. Guarde o ficheiro na mesma pasta onde guardou os outros ficheiros.

    # Get the Search Group ID and the location of the CSV input file
    $searchGroup = Read-Host 'Search Group ID'
    $csvFile = Read-Host 'Source CSV file'
    
    # Do a quick check to make sure our group name will not collide with other searches
    $searchCounter = 1
    import-csv $csvFile |
      ForEach-Object{
    
     $searchName = $searchGroup +'_' + $searchCounter
     $search = Get-ComplianceSearch $searchName -EA SilentlyContinue
     if ($search)
     {
        Write-Error "The Search Group ID conflicts with existing searches.  Please choose a search group name and restart the script."
        return
     }
     $searchCounter++
    }
    
    $searchCounter = 1
    import-csv $csvFile |
      ForEach-Object{
    
     # Create the query
     $query = $_.ContentMatchQuery
     if(($_.StartDate -or $_.EndDate))
     {
           # Add the appropriate date restrictions.  NOTE: Using the Date condition property here because it works across Exchange, SharePoint, and OneDrive for Business.
           # For Exchange, the Date condition property maps to the Sent and Received dates; for SharePoint and OneDrive for Business, it maps to Created and Modified dates.
           if($query)
           {
               $query += " AND"
           }
           $query += " ("
           if($_.StartDate)
           {
               $query += "Date >= " + $_.StartDate
           }
           if($_.EndDate)
           {
               if($_.StartDate)
               {
                   $query += " AND "
               }
               $query += "Date <= " + $_.EndDate
           }
           $query += ")"
     }
    
      # -ExchangeLocation can't be set to an empty string, set to null if there's no location.
      $exchangeLocation = $null
      if ( $_.ExchangeLocation)
      {
            $exchangeLocation = $_.ExchangeLocation
      }
    
     # Create and run the search
     $searchName = $searchGroup +'_' + $searchCounter
     Write-Host "Creating and running search: " $searchName -NoNewline
     $search = New-ComplianceSearch -Name $searchName -ExchangeLocation $exchangeLocation -SharePointLocation $_.SharePointLocation -ContentMatchQuery $query
    
     # Start and wait for each search to complete
     Start-ComplianceSearch $search.Name
     while ((Get-ComplianceSearch $search.Name).Status -ne "Completed")
     {
        Write-Host " ." -NoNewline
        Start-Sleep -s 3
     }
     Write-Host ""
    
     $searchCounter++
    }
    
  2. No Windows PowerShell, aceda à pasta onde guardou o script no passo anterior e, em seguida, execute o script; por exemplo:

    .\CreateSearches.ps1
    
  3. Na linha de comandos ID do Grupo de Pesquisa , escreva um nome de grupo de pesquisa e, em seguida, prima Enter; por exemplo, ContosoCase. Lembre-se de que este nome é sensível a maiúsculas e minúsculas, pelo que terá de o escrever da mesma forma nos passos subsequentes.

  4. Na linha de comandos do ficheiro CSV de origem, escreva o nome do ficheiro CSV, incluindo a extensão de ficheiro .csv; por exemplo, ContosoCase.csv.

  5. Prima Enter para continuar a executar o script.

    O script apresenta o progresso da criação e execução das pesquisas. Quando o script estiver concluído, regressa ao pedido.

    Resultado de exemplo da execução do script para criar múltiplas pesquisas de conformidade.

Passo 4: executar o script para comunicar as estimativas de pesquisa

Depois de criar as pesquisas, o passo seguinte consiste em executar um script que apresenta um relatório simples do número de acessos de pesquisa para cada pesquisa criada no Passo 3. O relatório também inclui o tamanho dos resultados de cada pesquisa e o número total de resultados e o tamanho total de todas as pesquisas. Quando executar o script de relatórios, ser-lhe-á pedido o ID do Grupo de Pesquisa e um nome de ficheiro CSV se quiser guardar o relatório num ficheiro CSV.

  1. Guarde o seguinte texto num ficheiro de script Windows PowerShell com um sufixo de nome de ficheiro de .ps1; por exemplo, SearchReport.ps1. Guarde o ficheiro na mesma pasta onde guardou os outros ficheiros.

    $searchGroup = Read-Host 'Search Group ID'
    $outputFile = Read-Host 'Enter a file name or file path to save the report to a .csv file. Leave blank to only display the report'
    $searches = Get-ComplianceSearch | ?{$_.Name -clike $searchGroup + "_*"}
    $allSearchStats = @()
    foreach ($partialObj in $searches)
    {
       $search = Get-ComplianceSearch $partialObj.Name
       $sizeMB = [System.Math]::Round($search.Size / 1MB, 2)
       $searchStatus = $search.Status
       if($search.Errors)
       {
           $searchStatus = "Failed"
       }elseif($search.NumFailedSources -gt 0)
       {
           $searchStatus = "Failed Sources"
       }
       $searchStats = New-Object PSObject
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Name -Value $search.Name
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name ContentMatchQuery -Value $search.ContentMatchQuery
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Status -Value $searchStatus
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Items -Value $search.Items
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size" -Value $search.Size
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size(MB)" -Value $sizeMB
       $allSearchStats += $searchStats
    }
    # Calculate the totals
    $allItems = ($allSearchStats | Measure-Object Items -Sum).Sum
    # Convert the total size to MB and round to the nearst 100th
    $allSize = ($allSearchStats | Measure-Object 'Size' -Sum).Sum
    $allSizeMB = [System.Math]::Round($allSize  / 1MB, 2)
    # Get the total successful searches and total of all searches
    $allSuccessCount = ($allSearchStats |?{$_.Status -eq "Completed"}).Count
    $allCount = $allSearchStats.Count
    $allStatus = [string]$allSuccessCount + " of " + [string]$allCount
    # Totals Row
    $totalSearchStats = New-Object PSObject
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Name -Value "Total"
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Status -Value $allStatus
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Items -Value $allItems
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name "Size(MB)" -Value $allSizeMB
    $allSearchStats += $totalSearchStats
    # Just get the columns we're interested in showing
    $allSearchStatsPrime = $allSearchStats | Select-Object Name, Status, Items, "Size(MB)", ContentMatchQuery
    # Print the results to the screen
    $allSearchStatsPrime |ft -AutoSize -Wrap
    # Save the results to a CSV file
    if ($outputFile)
    {
       $allSearchStatsPrime | Export-Csv -Path $outputFile -NoTypeInformation
    }
    
  2. No Windows PowerShell, aceda à pasta onde guardou o script no passo anterior e, em seguida, execute o script; por exemplo:

    .\SearchReport.ps1
    
  3. Na linha de comandos ID do Grupo de Pesquisa , escreva um nome de grupo de pesquisa e, em seguida, prima Enter; por exemplo ContosoCase, . Lembre-se de que este nome é sensível a maiúsculas e minúsculas, pelo que terá de o escrever da mesma forma que escreveu quando executou o script no Passo 3.

  4. No Caminho do ficheiro para guardar o relatório num ficheiro CSV (deixe em branco para apresentar apenas o relatório), escreva um nome de ficheiro com o caminho completo do nome de ficheiro (incluindo a extensão de ficheiro .csv) se quiser guardar o relatório num ficheiro CSV. nome do ficheiro CSV, incluindo a extensão de ficheiro .csv. Por exemplo, pode escrever ContosoCaseReport.csv para guardá-lo no diretório atual ou pode escrever C:\Users\admin\OneDrive for Business\ContosoCase\ContosoCaseReport.csv para guardá-lo numa pasta diferente. Também pode deixar o pedido em branco para apresentar o relatório, mas não guardá-lo num ficheiro.

  5. Pressione Enter.

    O script apresenta o progresso da criação e execução das pesquisas. Quando o script estiver concluído, o relatório é apresentado.

    Execute o relatório de pesquisa para apresentar as estimativas do grupo de pesquisa.

Observação

Se a mesma caixa de correio ou site for especificado como uma localização de conteúdo em mais do que uma pesquisa num grupo de pesquisa, a estimativa dos resultados totais no relatório (tanto para o número de itens como para o tamanho total) pode incluir resultados para os mesmos itens. Isto acontece porque a mesma mensagem de e-mail ou documento será contado mais do que uma vez se corresponder à consulta de diferentes pesquisas no grupo de pesquisa.

Passo 5: Executar o script para eliminar as pesquisas

Uma vez que pode estar a criar muitas pesquisas, este último script apenas facilita a eliminação rápida das pesquisas que criou no Passo 3. Tal como os outros scripts, este também lhe pede o ID do Grupo de Pesquisa. Todas as pesquisas com o ID do Grupo de Pesquisa no nome da pesquisa serão eliminadas quando executar este script.

  1. Guarde o seguinte texto num ficheiro de script Windows PowerShell com um sufixo de nome de ficheiro de .ps1; por exemplo, DeleteSearches.ps1. Guarde o ficheiro na mesma pasta onde guardou os outros ficheiros.

    # Delete all searches in a search group
    $searchGroup = Read-Host 'Search Group ID'
    Get-ComplianceSearch |
       ForEach-Object{
       # If the name matches the search group name pattern (case sensitive), delete the search
       if ($_.Name -cmatch $searchGroup + "_\d+")
       {
           Write-Host "Deleting search: " $_.Name
           Remove-ComplianceSearch $_.Name -Confirm:$false
       }
    }
    
  2. No Windows PowerShell, aceda à pasta onde guardou o script no passo anterior e, em seguida, execute o script; por exemplo:

    .\DeleteSearches.ps1
    
  3. Na linha de comandos ID do Grupo de Pesquisa , escreva um nome de grupo de pesquisa para as pesquisas que pretende eliminar e, em seguida, prima Enter; por exemplo, ContosoCase. Lembre-se de que este nome é sensível a maiúsculas e minúsculas, pelo que terá de o escrever da mesma forma que escreveu quando executou o script no Passo 3.

    O script apresenta o nome de cada pesquisa que é eliminada.

    Execute o script para eliminar as pesquisas no grupo de pesquisa.