Utilizar a Pesquisa de Conteúdos para procurar uma lista de utilizadores na caixa de correio e no site do OneDrive

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 PowerShell de Conformidade & de Segurança fornece vários cmdlets que lhe permitem automatizar tarefas relacionadas com a Deteção de Dados Eletrónicos demoradas. Atualmente, a criação de uma pesquisa de Conteúdos no portal de conformidade do Microsoft Purview para procurar um grande número de localizações de conteúdo depositário demora tempo e preparação. Antes de criar uma pesquisa, tem de recolher o URL de cada site do OneDrive para Empresas e, em seguida, adicionar cada caixa de correio e site do OneDrive para Empresas à pesquisa. Em versões futuras, será mais fácil fazê-lo no portal de conformidade. Até lá, pode utilizar o script neste artigo para automatizar este processo. Este script pede-lhe o nome do domínio OMeuSite da sua organização (por exemplo, contoso no URL https://contoso-my.sharepoint.com), uma lista de endereços de e-mail de utilizador, o nome da nova Pesquisa de Conteúdos e a consulta de pesquisa a utilizar. O script obtém o URL do OneDrive para Empresas para cada utilizador na lista e, em seguida, cria e inicia uma Pesquisa de Conteúdos que pesquisa na caixa de correio e no site do OneDrive para Empresas para cada utilizador na lista, utilizando a consulta de pesquisa que fornecer.

Permissões e informações de script

Importante

A Microsoft recomenda que você use funções com o menor número de permissões. Minimizar o número de utilizadores com a função de Administrador Global ajuda a melhorar a segurança da sua organização. Saiba mais sobre as funções e permissões do Microsoft Purview.

  • Tem de ser membro do grupo de funções Gestor de Deteção de Dados Eletrónicos no portal do Microsoft Purview ou no portal de conformidade e um administrador global do SharePoint para executar o script no Passo 3.
  • Certifique-se de que guarda a lista de utilizadores que cria no Passo 2 e o script no Passo 3 na mesma pasta. Isto facilita a execução do script.
  • O script inclui um processamento de erros mínimo. O seu principal objetivo é procurar de forma rápida e fácil a caixa de correio e o site do OneDrive de cada utilizador.
  • 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: Instalar o Shell de gerenciamento do SharePoint Online

O primeiro passo é instalar a Shell de Gestão do SharePoint Online. Não tem de utilizar a shell neste procedimento, mas tem de instalá-la porque contém os pré-requisitos necessários para o script que executa no Passo 3. Estes pré-requisitos permitem que o script comunique com o SharePoint para obter os URLs dos sites do OneDrive.

Aceda a Configurar o ambiente da Shell de Gestão do SharePoint Online e execute os Passos 1 e 2 para instalar a Shell de Gestão do SharePoint Online.

Passo 2: Gerar uma lista de utilizadores

O script no Passo 3 criará uma Pesquisa de Conteúdo para procurar uma lista de utilizadores nas caixas de correio e nas contas do OneDrive. Pode simplesmente escrever os endereços de e-mail num ficheiro de texto ou executar um comando no PowerShell para obter uma lista de endereços de e-mail e guardá-los num ficheiro (localizado na mesma pasta na qual irá guardar o script no Passo 3).

Eis um comando do PowerShell do Exchange Online que pode executar para obter uma lista de endereços de e-mail para todos os utilizadores na sua organização e guardá-lo num ficheiro de texto com o nome Users.txt.

Get-Mailbox -ResultSize unlimited -Filter { RecipientTypeDetails -eq 'UserMailbox'} | Select-Object PrimarySmtpAddress > Users.txt

Depois de executar este comando, certifique-se de que abre o ficheiro e remove o cabeçalho que contém o nome da propriedade , PrimarySmtpAddress. O ficheiro de texto deve conter apenas uma lista de endereços de e-mail e nada mais. Certifique-se de que não existem linhas em branco antes ou depois da lista de endereços de e-mail.

Quando executa o script neste passo, este pede-lhe as seguintes informações. Certifique-se de que tem estas informações prontas antes de executar o script.

  • As suas credenciais de utilizador – o script utiliza as suas credenciais para aceder ao SharePoint para obter os URLs do OneDrive e para ligar ao PowerShell de Conformidade do & de Segurança.

  • Nome do seu domínio MySite – o domínio OMeuSite é o domínio que contém todos os sites do OneDrive na sua organização. Por exemplo, se o URL do seu domínio MySite for https://contoso-my.sharepoint.com, deverá introduzir contoso quando o script lhe pedir o nome do seu domínio OMeuSite.

  • Pathname do ficheiro de texto do Passo 2 – o nome do caminho do ficheiro de texto que criou no Passo 2. Se o ficheiro de texto e o script estiverem localizados na mesma pasta, introduza o nome do ficheiro de texto. Caso contrário, introduza o nome do caminho completo para o ficheiro de texto.

  • Nome da Pesquisa de Conteúdo – o nome da Pesquisa de Conteúdo que será criada pelo script.

  • Consulta de pesquisa – a consulta de pesquisa utilizada com a Pesquisa de Conteúdos é criada e executada. Para obter mais informações sobre consultas de pesquisa, veja Consultas de palavras-chave e condições de pesquisa para Deteção de Dados Eletrónicos.

Para executar o script:

  1. Guarde o seguinte texto num ficheiro de script do Windows PowerShell com um sufixo de nome de ficheiro de .ps1; por exemplo, SearchEXOOD4B.ps1. Guarde o ficheiro na mesma pasta onde guardou a lista de utilizadores no Passo 2.

    # This PowerShell script will prompt you for the following information:
    #    * Your user credentials
    #    * The name of your organization's MySite domain
    #    * The pathname for the text file that contains a list of user email addresses
    #    * The name of the Content Search that will be created
    #    * The search query string
    # The script will then:
    #    * Find the OneDrive site for each user in the text file
    #    * Create and start a Content Search using the above information
    # Get user credentials
    if (!$credentials)
    {
        $credentials = Get-Credential
    }
    # Get the user's MySite domain name.  We use this to create the admin URL and root URL for OneDrive
    $mySiteDomain = Read-Host "What is your organization's MySite domain?  For example,  'contoso' for 'https://contoso-my.sharepoint.com'"
    $AdminUrl = "https://$mySiteDomain-admin.sharepoint.com"
    $mySiteUrlRoot = "https://$mySiteDomain-my.sharepoint.com"
    # Get other required information
    $inputfile = read-host "Enter the file name of the text file that contains the email addresses for the users you want to search"
    $searchName = Read-Host "Enter the name for the new search"
    $searchQuery = Read-Host "Enter the search query you want to use"
    $emailAddresses = Get-Content $inputfile | where {$_ -ne ""}  | foreach{ $_.Trim() }
    # Connect to Security & Compliance PowerShell
    if (!$s -or !$a)
    {
        Import-Module ExchangeOnlineManagement
        Connect-IPPSSession
    }
    
    # Load the SharePoint assemblies from the SharePoint Online Management Shell
    # To install, go to https://go.microsoft.com/fwlink/p/?LinkId=255251
    if (!$SharePointClient -or !$SPRuntime -or !$SPUserProfile)
    {
        $SharePointClient = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
        $SPRuntime = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
        $SPUserProfile = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
        if (!$SharePointClient)
        {
            Write-Error "SharePoint Online Management Shell isn't installed, please install from: https://go.microsoft.com/fwlink/p/?LinkId=255251 and then run this script again"
            return;
        }
    }
    if (!$spCreds)
    {
        $spCreds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
    }
    # Add the path of the User Profile Service to the SPO admin URL, then create a new webservice proxy to access it
    $proxyaddr = "$AdminUrl/_vti_bin/UserProfileService.asmx?wsdl"
    $UserProfileService= New-WebServiceProxy -Uri $proxyaddr -UseDefaultCredential False
    $UserProfileService.Credentials = $credentials
    # Take care of auth cookies
    $strAuthCookie = $spCreds.GetAuthenticationCookie($AdminUrl)
    $uri = New-Object System.Uri($AdminUrl)
    $container = New-Object System.Net.CookieContainer
    $container.SetCookies($uri, $strAuthCookie)
    $UserProfileService.CookieContainer = $container
    Write-Host "Getting each user's OneDrive URL"
    $urls = @()
    foreach($emailAddress in $emailAddresses)
    {
        try
        {
            $prop = $UserProfileService.GetUserProfileByName("i:0#.f|membership|$emailAddress") | Where-Object { $_.Name -eq "PersonalSpace" }
            $url = $prop.values[0].value
            $furl = $mySiteUrlRoot + $url
            $urls += $furl
            Write-Host "-$emailAddress => $furl"
        }
        catch
        {
            Write-Warning "Could not locate OneDrive for $emailAddress"
        }
    }
    Write-Host "Creating and starting the search"
    $search = New-ComplianceSearch -Name $searchName -ExchangeLocation $emailAddresses -SharePointLocation $urls -ContentMatchQuery $searchQuery
    # Finally, start the search and then display the status
    if($search)
    {
        Start-ComplianceSearch $search.Name
        Get-ComplianceSearch $search.Name
    }
    
  2. Abra o Windows PowerShell e aceda à pasta onde guardou o script e a lista de utilizadores do Passo 2.

  3. Iniciar o script; Por exemplo:

    .\SearchEXOOD4B.ps1
    
  4. Quando lhe forem pedidas as suas credenciais, introduza o seu endereço de e-mail e palavra-passe e, em seguida, selecione OK.

  5. Introduza as seguintes informações quando lhe for pedido pelo script. Escreva cada informação e, em seguida, prima Enter.

    • O nome do seu domínio MySite.

    • O nome do caminho do ficheiro de texto que contém a lista de utilizadores.

    • Um nome para a Pesquisa de Conteúdo.

    • A consulta de pesquisa (deixe esta opção em branco para devolver todos os itens nas localizações de conteúdo).

    O script obtém os URLs de cada site do OneDrive e, em seguida, cria e inicia a pesquisa. Pode executar o cmdlet Get-ComplianceSearch no PowerShell de Conformidade do & de Segurança para apresentar as estatísticas e os resultados da pesquisa ou pode aceder à página Pesquisa de conteúdos no portal de conformidade para ver informações sobre a pesquisa.