Use a Pesquisa de Conteúdo para procurar uma lista de usuários na caixa de correio e no site do OneDrive for Business

Segurança & Conformidade O PowerShell fornece vários cmdlets que permitem automatizar tarefas relacionadas à descoberta eletrônica demoradas. Atualmente, criar uma pesquisa de conteúdo no portal de conformidade do Microsoft Purview pesquisar um grande número de locais de conteúdo do custodiante leva tempo e preparação. Antes de criar uma pesquisa, você precisa coletar a URL de cada OneDrive for Business site e, em seguida, adicionar cada caixa de correio e OneDrive for Business site à pesquisa. Em versões futuras, isso será mais fácil de fazer no portal de conformidade. Até lá, você pode usar o script neste artigo para automatizar esse processo. Esse script solicita o nome do domínio MySite da sua organização (por exemplo, contoso na URL https://contoso-my.sharepoint.com), uma lista de endereços de email do usuário, o nome da nova Pesquisa de Conteúdo e a consulta de pesquisa a ser usada. O script obtém a URL OneDrive for Business para cada usuário na lista e, em seguida, ele cria e inicia uma Pesquisa de Conteúdo que pesquisa a caixa de correio e OneDrive for Business site para cada usuário na lista, usando a consulta de pesquisa que você fornece.

Dica

Se você não for um cliente E5, use a avaliação de soluções do Microsoft Purview de 90 dias para explorar como 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 portal de conformidade do Microsoft Purview. Saiba mais sobre os termos de inscrição e avaliação.

Permissões e informações de script

  • Você precisa ser membro do grupo de funções do eDiscovery Manager no portal de conformidade e um administrador global do SharePoint Online para executar o script na Etapa 3.

  • Salve a lista de usuários que você cria na Etapa 2 e o script na Etapa 3 para a mesma pasta. Isso facilitará a execução do script.

  • O script inclui o tratamento mínimo de erros. Sua principal finalidade é pesquisar rapidamente e facilmente a caixa de correio e OneDrive for Business site de cada usuário.

  • Os scripts de exemplo fornecidos neste tópico não têm suporte 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.

Etapa 1: Instalar o Shell de gerenciamento do SharePoint Online

A primeira etapa é instalar o Shell de Gerenciamento do SharePoint Online. Você não precisa usar o shell neste procedimento, mas precisa instalá-lo porque ele contém pré-requisitos exigidos pelo script que você executa na Etapa 3. Esses pré-requisitos permitem que o script se comunique com o SharePoint Online para obter as URLs dos sites OneDrive for Business.

Vá para Configurar o ambiente do Shell de Gerenciamento do SharePoint Online e execute a Etapa 1 e a Etapa 2 para instalar o Shell de Gerenciamento do SharePoint Online.

Etapa 2: gerar uma lista de usuários

O script na Etapa 3 criará uma Pesquisa de Conteúdo para pesquisar as caixas de correio e contas do OneDrive em busca de uma lista de usuários. Basta digitar os endereços de email em um arquivo de texto ou executar um comando no PowerShell para obter uma lista de endereços de email e salvá-los em um arquivo (localizado na mesma pasta na qual você salvará o script na Etapa 3).

Aqui está um comando Exchange Online PowerShell que você pode executar para obter uma lista de endereços de email para todos os usuários da sua organização e salvá-lo em um arquivo de texto chamado Users.txt.

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

Depois de executar esse comando, abra o arquivo e remova o cabeçalho que contém o nome da propriedade , PrimarySmtpAddress. O arquivo de texto deve conter apenas uma lista de endereços de email e nada mais. Verifique se não há linhas em branco antes ou depois da lista de endereços de email.

Ao executar o script nesta etapa, ele solicitará as seguintes informações. Certifique-se de ter essas informações prontas antes de executar o script.

  • Suas credenciais de usuário – o script usará suas credenciais para acessar o SharePoint Online para obter as URLs de OneDrive for Business e conectar-se ao PowerShell de Conformidade do & de Segurança.

  • Nome do domínio MySite – O domínio MySite é o domínio que contém todos os OneDrive for Business sites em sua organização. Por exemplo, se a URL do domínio MySite for https://contoso-my.sharepoint.com, você entrará contoso quando o script solicitar o nome do domínio MySite.

  • Nome do caminho do arquivo de texto da Etapa 2 – o nome do caminho do arquivo de texto que você criou na Etapa 2. Se o arquivo de texto e o script estiverem localizados na mesma pasta, insira o nome do arquivo de texto. Caso contrário, insira o nome de caminho completo para o arquivo 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 que será usada com a Pesquisa de Conteúdo é criada e executada. Para obter mais informações sobre consultas de pesquisa, consulte Consultas de palavra-chave e condições de pesquisa para descoberta eletrônica.

Para executar o script:

  1. Salve o texto a seguir em um arquivo de script Windows PowerShell usando um sufixo de nome de arquivo de .ps1; por exemplo, SearchEXOOD4B.ps1. Salve o arquivo na mesma pasta em que você salvou a lista de usuários na Etapa 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 for Business 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 for Business
    $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 for Business 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 Windows PowerShell e vá para a pasta em que você salvou o script e a lista de usuários da Etapa 2.

  3. Inicie o script; por exemplo:

    .\SearchEXOOD4B.ps1
    
  4. Quando solicitado para suas credenciais, insira seu endereço de email e senha e clique em OK.

  5. Insira as informações a seguir quando solicitado pelo script. Digite cada pedaço de informação e pressione Enter.

    • O nome do domínio MySite.

    • O nome do nome do arquivo de texto que contém a lista de usuários.

    • Um nome para a Pesquisa de Conteúdo.

    • A consulta de pesquisa (deixe isso em branco para retornar todos os itens nos locais de conteúdo).

    O script obtém as URLs de cada site OneDrive for Business e cria e inicia a pesquisa. Você pode executar o cmdlet Get-ComplianceSearch no Security & Compliance PowerShell para exibir as estatísticas e os resultados da pesquisa ou acessar a página pesquisa de conteúdo no portal de conformidade para exibir informações sobre a pesquisa.