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

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 OneDrive for Business e quindi aggiungere ogni cassetta postale e OneDrive for Business sito 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 esegue la ricerca nella cassetta postale e OneDrive for Business sito per ogni utente nell'elenco, usando la query di ricerca fornita.

Consiglio

Se non si è un cliente E5, usare la versione di valutazione delle soluzioni Microsoft Purview di 90 giorni per esplorare in che modo funzionalità aggiuntive di Purview possono aiutare l'organizzazione a gestire le esigenze di sicurezza e conformità dei dati. Iniziare ora dall'hub delle versioni di valutazione Portale di conformità di Microsoft Purview. Informazioni dettagliate sull'iscrizione e le condizioni di valutazione.

Autorizzazioni e informazioni sullo script

  • È necessario essere un membro del gruppo di ruoli di eDiscovery Manager nel portale di conformità e un amministratore globale di SharePoint Online 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 sarà 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 OneDrive for Business sito di ogni utente.

  • Gli script di esempio forniti in questo argomento non sono supportati in alcun programma o servizio di supporto standard 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 Online per ottenere gli URL per i siti OneDrive for Business.

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 Exchange Online comando di PowerShell 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, verranno richieste le informazioni seguenti. Assicurarsi di avere queste informazioni pronte prima di eseguire lo script.

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

  • Nome del dominio MySite: il dominio MySite è il dominio che contiene tutti i siti OneDrive for Business 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 che verrà 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 Windows PowerShell usando un suffisso di nome file di .ps1, SearchEXOOD4B.ps1ad esempio . 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 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. 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 fare clic su 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 OneDrive for Business 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.