Condividi tramite


Usare Ricerca contenuto per cercare un elenco di utenti nella cassetta postale e nel sito di OneDrive

Consiglio

eDiscovery (anteprima) è ora disponibile nel nuovo portale di Microsoft Purview. Per altre informazioni sull'uso della nuova esperienza di eDiscovery, vedere Informazioni su eDiscovery (anteprima).

Security & Compliance PowerShell offre una serie di cmdlet che consentono di automatizzare attività correlate a eDiscovery che richiedono molto tempo. Attualmente, la creazione di una ricerca contenuto nel portale di conformità di Microsoft Purview per cercare un numero elevato di posizioni di contenuto responsabile richiede tempo e preparazione. Prima di creare una ricerca, è necessario raccogliere l'URL per ogni sito di OneDrive for Business e quindi aggiungere ogni cassetta postale e il sito di OneDrive for Business alla ricerca. Nelle versioni future questa operazione sarà più semplice nel portale di conformità. Fino ad allora, è possibile usare lo script in questo articolo per automatizzare questo processo. Questo script richiede il nome del dominio MySite dell'organizzazione,ad esempio contoso nell'URL https://contoso-my.sharepoint.com, un elenco di indirizzi di posta elettronica utente, il nome della nuova ricerca contenuto e la query di ricerca da usare. Lo script ottiene l'URL di OneDrive for Business per ogni utente nell'elenco e quindi crea e avvia una ricerca contenuto che cerca nella cassetta postale e nel sito di OneDrive for Business ogni utente nell'elenco, usando la query di ricerca fornita.

Autorizzazioni e informazioni sullo script

Importante

Microsoft consiglia di usare i ruoli con il minor numero di autorizzazioni. Ridurre al minimo il numero di utenti con il ruolo Amministratore globale consente di migliorare la sicurezza per l'organizzazione. Altre informazioni sui ruoli e le autorizzazioni di Microsoft Purview.

  • È necessario essere un membro del gruppo di ruoli di eDiscovery Manager nel portale di Microsoft Purview o nel portale di conformità e un amministratore globale di SharePoint per eseguire lo script nel passaggio 3.
  • Assicurarsi di salvare l'elenco di utenti creati nel passaggio 2 e lo script nel passaggio 3 nella stessa cartella. In questo modo è più semplice eseguire lo script.
  • Lo script include la gestione minima degli errori. Il suo scopo principale è quello di cercare rapidamente e facilmente la cassetta postale e il sito di OneDrive di ogni utente.
  • Gli script di esempio forniti in questo articolo non sono supportati da alcun programma o servizio standard di supporto Microsoft. Gli script di esempio sono forniti così come sono senza alcun tipo di garanzia. Microsoft esclude inoltre qualsiasi garanzia implicita, tra cui, senza limitazioni, tutte le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. L'utente assume tutti i rischi associati all'uso o alle prestazioni degli script di esempio e della documentazione. In nessun caso Microsoft, i suoi autori o chiunque altro coinvolto nella creazione, produzione o consegna degli script è da ritenersi responsabile per qualsiasi danno eventuale (inclusi, senza limitazione alcuna, danni riguardanti profitti aziendali, interruzione di attività, perdita di informazioni aziendali o altra perdita pecuniaria) derivanti dall'utilizzo o dall'incapacità di utilizzo degli script di esempio e della documentazione, anche nel caso in cui Microsoft sia stata avvisata della possibilità di tali danni.

Passaggio 1: Installare SharePoint Online Management Shell

Il primo passaggio consiste nell'installare SharePoint Online Management Shell. Non è necessario usare la shell in questa procedura, ma è necessario installarla perché contiene i prerequisiti richiesti dallo script eseguito nel passaggio 3. Questi prerequisiti consentono allo script di comunicare con SharePoint per ottenere gli URL per i siti di OneDrive.

Passare a Configurare l'ambiente SharePoint Online Management Shell ed eseguire i passaggi 1 e 2 per installare SharePoint Online Management Shell.

Passaggio 2: Generare un elenco di utenti

Lo script nel passaggio 3 creerà una ricerca contenuto per cercare un elenco di utenti nelle cassette postali e negli account di OneDrive. È sufficiente digitare gli indirizzi di posta elettronica in un file di testo oppure eseguire un comando in PowerShell per ottenere un elenco di indirizzi di posta elettronica e salvarli in un file (che si trova nella stessa cartella in cui si salverà lo script nel passaggio 3).

Ecco un comando di PowerShell di Exchange Online che è possibile eseguire per ottenere un elenco di indirizzi di posta elettronica per tutti gli utenti dell'organizzazione e salvarlo in un file di testo denominato Users.txt.

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

Dopo aver eseguito questo comando, assicurarsi di aprire il file e rimuovere l'intestazione che contiene il nome della proprietà, PrimarySmtpAddress. Il file di testo deve contenere solo un elenco di indirizzi di posta elettronica e nient'altro. Assicurarsi che non siano presenti righe vuote prima o dopo l'elenco degli indirizzi di posta elettronica.

Quando si esegue lo script in questo passaggio, vengono richieste le informazioni seguenti. Assicurarsi di avere queste informazioni pronte prima di eseguire lo script.

  • Credenziali utente : lo script usa le credenziali per accedere a SharePoint per ottenere gli URL di OneDrive e per connettersi a PowerShell sicurezza & conformità.

  • Nome del dominio MySite : il dominio MySite è il dominio che contiene tutti i siti di OneDrive nell'organizzazione. Ad esempio, se l'URL per il dominio MySite è https://contoso-my.sharepoint.com, immettere contoso quando lo script richiede il nome del dominio MySite.

  • Nome percorso del file di testo dal passaggio 2 : nome percorso del file di testo creato nel passaggio 2. Se il file di testo e lo script si trovano nella stessa cartella, immettere il nome del file di testo. In caso contrario, immettere il nome percorso completo per il file di testo.

  • Nome della ricerca contenuto : nome della ricerca contenuto che verrà creata dallo script.

  • Query di ricerca: viene creata ed eseguita la query di ricerca usata con Ricerca contenuto. Per altre informazioni sulle query di ricerca, vedere Query con parole chiave e condizioni di ricerca per eDiscovery.

Per eseguire lo script:

  1. Salvare il testo seguente in un file di script di Windows PowerShell usando un suffisso di nome file di .ps1; Ad esempio, SearchEXOOD4B.ps1. Salvare il file nella stessa cartella in cui è stato salvato l'elenco di utenti nel passaggio 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 previous 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. Aprire Windows PowerShell e passare alla cartella in cui sono stati salvati lo script e l'elenco di utenti dal passaggio 2.

  3. Avviare lo script; Per esempio:

    .\SearchEXOOD4B.ps1
    
  4. Quando vengono richieste le credenziali, immettere l'indirizzo di posta elettronica e la password e quindi selezionare OK.

  5. Immettere le informazioni seguenti quando richiesto dallo script. Digitare ogni informazione e quindi premere INVIO.

    • Nome del dominio MySite.

    • Nome percorso del file di testo che contiene l'elenco di utenti.

    • Nome della ricerca contenuto.

    • Query di ricerca (lasciare vuoto questo oggetto per restituire tutti gli elementi nei percorsi del contenuto).

    Lo script ottiene gli URL per ogni sito di OneDrive e quindi crea e avvia la ricerca. È possibile eseguire il cmdlet Get-ComplianceSearch in PowerShell Sicurezza & Conformità per visualizzare le statistiche di ricerca e i risultati oppure passare alla pagina Ricerca contenuto nel portale di conformità per visualizzare le informazioni sulla ricerca.