Compartir vía


Usar búsqueda de contenido para buscar en el buzón de correo y en el sitio de OneDrive una lista de usuarios

Sugerencia

eDiscovery (versión preliminar) ya está disponible en el nuevo portal de Microsoft Purview. Para obtener más información sobre el uso de la nueva experiencia de exhibición de documentos electrónicos, consulte Información sobre eDiscovery (versión preliminar).

Security & Compliance PowerShell proporciona una serie de cmdlets que permiten automatizar tareas relacionadas con eDiscovery que requieren mucho tiempo. Actualmente, la creación de una búsqueda de contenido en el portal de cumplimiento de Microsoft Purview para buscar un gran número de ubicaciones de contenido del custodio tarda tiempo y preparación. Antes de crear una búsqueda, debe recopilar la dirección URL de cada sitio de OneDrive para la Empresa y, a continuación, agregar cada buzón y el sitio de OneDrive para la Empresa a la búsqueda. En futuras versiones, esto será más fácil de hacer en el portal de cumplimiento. Hasta entonces, puede usar el script de este artículo para automatizar este proceso. Este script le pide el nombre del dominio MySite de su organización (por ejemplo, contoso en la dirección URL https://contoso-my.sharepoint.com), una lista de direcciones de correo electrónico de usuario, el nombre de la nueva búsqueda de contenido y la consulta de búsqueda que se va a usar. El script obtiene la dirección URL de OneDrive para la Empresa para cada usuario de la lista y, a continuación, crea e inicia una búsqueda de contenido que busca en el buzón y en el sitio de OneDrive para la Empresa cada usuario de la lista, mediante la consulta de búsqueda que proporcione.

Permisos e información de script

Importante

Microsoft recomienda utilizar roles con la menor cantidad de permisos. Minimizar el número de usuarios con el rol administrador global ayuda a mejorar la seguridad de la organización. Obtenga más información sobre los roles y permisos de Microsoft Purview.

  • Debe ser miembro del grupo de roles administrador de exhibición de documentos electrónicos en el portal de Microsoft Purview o en el portal de cumplimiento y un administrador global de SharePoint para ejecutar el script en el paso 3.
  • Asegúrese de guardar la lista de usuarios que cree en el paso 2 y el script del paso 3 en la misma carpeta. Esto facilita la ejecución del script.
  • El script incluye un control mínimo de errores. Su propósito principal es buscar rápida y fácilmente el buzón de correo y el sitio de OneDrive de cada usuario.
  • Los scripts de ejemplo que aparecen en este artículo no son compatibles con ningún programa o servicio de soporte técnico estándar de Microsoft. Los scripts de ejemplo aparecen "TAL CUAL", sin garantía de ningún tipo. Además, Microsoft no se hace responsable de cualquier garantía implícita, incluyendo, de manera enunciativa pero no limitativa, cualquier garantía implícita de comercialización o de calidad para cualquier propósito. Cualquier riesgo resultante del uso o resultado de los scripts y la documentación de ejemplo será únicamente responsabilidad suya. En ningún caso Microsoft, sus autores o cualquier persona involucrada en su creación, producción o entrega de los scripts será responsable de cualquier daño (incluidos, de manera enunciativa pero no limitativa, daños por pérdidas de beneficios de una empresa, interrupción de la actividad de una empresa, pérdidas de información de una empresa, o cualquier otro daño pecuniario), incluso si Microsoft supiera de la posibilidad de tales daños.

Paso 1: Instalar el Shell de administración de SharePoint Online

El primer paso es instalar el Shell de administración de SharePoint Online. No es necesario usar el shell en este procedimiento, pero tiene que instalarlo porque contiene los requisitos previos requeridos por el script que se ejecuta en el paso 3. Estos requisitos previos permiten que el script se comunique con SharePoint para obtener las direcciones URL de los sitios de OneDrive.

Vaya a Configurar el entorno del Shell de administración de SharePoint Online y realice los pasos 1 y 2 para instalar el Shell de administración de SharePoint Online.

Paso 2: Generar una lista de usuarios

El script del paso 3 creará una búsqueda de contenido para buscar en los buzones y las cuentas de OneDrive una lista de usuarios. Simplemente puede escribir las direcciones de correo electrónico en un archivo de texto o puede ejecutar un comando en PowerShell para obtener una lista de direcciones de correo electrónico y guardarlas en un archivo (ubicado en la misma carpeta en la que guardará el script en el paso 3).

Este es un comando de PowerShell de Exchange Online que puede ejecutar para obtener una lista de direcciones de correo electrónico para todos los usuarios de la organización y guardarlo en un archivo de texto denominado Users.txt.

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

Después de ejecutar este comando, asegúrese de abrir el archivo y quitar el encabezado que contiene el nombre de la propiedad, PrimarySmtpAddress. El archivo de texto solo debe contener una lista de direcciones de correo electrónico y nada más. Asegúrese de que no haya filas en blanco antes o después de la lista de direcciones de correo electrónico.

Al ejecutar el script en este paso, se le pedirá la siguiente información. Asegúrese de tener esta información lista antes de ejecutar el script.

  • Credenciales de usuario : el script usa sus credenciales para acceder a SharePoint para obtener las direcciones URL de OneDrive y para conectarse a PowerShell de cumplimiento de seguridad &.

  • Nombre del dominio de MySite : el dominio MySite es el dominio que contiene todos los sitios de OneDrive de la organización. Por ejemplo, si la dirección URL del dominio MySite es https://contoso-my.sharepoint.com, escribiría contoso cuando el script le pida el nombre del dominio MySite.

  • Pathname del archivo de texto del paso 2 : nombre de ruta de acceso del archivo de texto que creó en el paso 2. Si el archivo de texto y el script se encuentran en la misma carpeta, escriba el nombre del archivo de texto. De lo contrario, escriba el nombre de ruta de acceso completo para el archivo de texto.

  • Nombre de la búsqueda de contenido : nombre de la búsqueda de contenido que creará el script.

  • Consulta de búsqueda: se crea y ejecuta la consulta de búsqueda que se usa con la búsqueda de contenido. Para obtener más información sobre las consultas de búsqueda, vea Consultas de palabras clave y condiciones de búsqueda para eDiscovery.

Para ejecutar el script:

  1. Guarde el texto siguiente en un archivo de script de Windows PowerShell mediante un sufijo de nombre de archivo de .ps1; por ejemplo, SearchEXOOD4B.ps1. Guarde el archivo en la misma carpeta donde guardó la lista de usuarios en el paso 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 Windows PowerShell y vaya a la carpeta donde guardó el script y la lista de usuarios del paso 2.

  3. Inicie el script; por ejemplo:

    .\SearchEXOOD4B.ps1
    
  4. Cuando se le soliciten las credenciales, escriba su dirección de correo electrónico y contraseña y, a continuación, seleccione Aceptar.

  5. Escriba la siguiente información cuando el script le solicite. Escriba cada fragmento de información y, a continuación, presione Entrar.

    • Nombre del dominio de MySite.

    • Nombre de ruta de acceso del archivo de texto que contiene la lista de usuarios.

    • Nombre de la búsqueda de contenido.

    • La consulta de búsqueda (deje esto en blanco para devolver todos los elementos de las ubicaciones de contenido).

    El script obtiene las direcciones URL de cada sitio de OneDrive y, a continuación, crea e inicia la búsqueda. Puede ejecutar el cmdlet Get-ComplianceSearch en Security & Compliance PowerShell para mostrar las estadísticas de búsqueda y los resultados, o bien puede ir a la página Búsqueda de contenido en el portal de cumplimiento para ver información sobre la búsqueda.