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 testes do portal de conformidade do Microsoft Purview. Saiba mais detalhes sobre os termos de inscrição e avaliação.
Antes de criar uma Pesquisa de Conteúdo
- 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 sites do OneDrive para Empresas 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 do Exchange Online do utilizador (que inclui a caixa de correio de arquivo, se estiver ativada) e no respetivo site do OneDrive para Empresas. Em alternativa, pode procurar apenas na caixa de correio ou no site do OneDrive para Empresas. 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.
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.
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 do OneDrive para Empresas do utilizador ou o URL de qualquer site na sua organização. Para o URL dos sites do OneDrive para Empresas, 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 em sites do SharePoint ou do OneDrive para Empresas, 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 em sites do SharePoint ou do OneDrive para Empresas, a data em ou antes da última modificação de um documento. |
- 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:
Guarde o seguinte texto num ficheiro de script do 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++ }
No Windows PowerShell, aceda à pasta onde guardou o script no passo anterior e, em seguida, execute o script; Por exemplo:
.\CreateSearches.ps1
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.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
.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.
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.
Guarde o seguinte texto num ficheiro de script do 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 }
No Windows PowerShell, aceda à pasta onde guardou o script no passo anterior e, em seguida, execute o script; Por exemplo:
.\SearchReport.ps1
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.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 escreverC:\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.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.
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.
Guarde o seguinte texto num ficheiro de script do 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 } }
No Windows PowerShell, aceda à pasta onde guardou o script no passo anterior e, em seguida, execute o script; Por exemplo:
.\DeleteSearches.ps1
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.