Verwenden Sie die Inhaltssuche, um das Postfach und die OneDrive for Business-Website nach einer Liste mit Benutzern zu durchsuchen.

Security & Compliance PowerShell bietet eine Reihe von Cmdlets, mit denen Sie zeitaufwändige eDiscovery-bezogene Aufgaben automatisieren können. Derzeit benötigt das Erstellen einer Inhaltssuche im Microsoft Purview-Complianceportal, um eine große Anzahl von Speicherorten von Verwahrerinhalten zu durchsuchen, Zeit und Vorbereitung. Bevor Sie eine Suche erstellen, müssen Sie die URL für jede OneDrive for Business Website erfassen und dann jedes Postfach und OneDrive for Business Website zur Suche hinzufügen. In zukünftigen Versionen wird dies im Complianceportal einfacher zu erledigen sein. Bis dahin können Sie das Skript in diesem Artikel verwenden, um diesen Prozess zu automatisieren. Dieses Skript fordert Sie zur Eingabe des Namens der MySite-Domäne Ihres organization (z. B. contoso in der URL https://contoso-my.sharepoint.com), einer Liste der Benutzer-E-Mail-Adressen, des Namens der neuen Inhaltssuche und der zu verwendenden Suchabfrage auf. Das Skript ruft die OneDrive for Business URL für jeden Benutzer in der Liste ab und erstellt und startet dann eine Inhaltssuche, die das Postfach und OneDrive for Business Website für jeden Benutzer in der Liste durchsucht, indem es die von Ihnen bereitgestellte Suchabfrage verwendet.

Tipp

Wenn Sie kein E5-Kunde sind, verwenden Sie die 90-tägige Testversion von Microsoft Purview-Lösungen, um zu erfahren, wie zusätzliche Purview-Funktionen Ihre organization die Verwaltung von Datensicherheits- und Complianceanforderungen unterstützen können. Beginnen Sie jetzt im Microsoft Purview-Complianceportal Testversionshub. Erfahren Sie mehr über die Anmelde- und Testbedingungen.

Berechtigungen und Skriptinformationen

  • Sie müssen Mitglied der Rollengruppe eDiscovery-Manager im Complianceportal und globaler SharePoint Online-Administrator sein, um das Skript in Schritt 3 ausführen zu können.

  • Achten Sie darauf, die Liste der Benutzer, die Sie in Schritt 2 erstellt haben, und das Skript in Schritt 3 im selben Ordner zu speichern. Dies erleichtert die Ausführung des Skripts.

  • Das Skript umfasst eine minimale Fehlerbehandlung. Der Hauptzweck besteht darin, das Postfach und OneDrive for Business Website jedes Benutzers schnell und einfach zu durchsuchen.

  • Die in diesem Thema bereitgestellten Beispielskripts werden von keinem Microsoft-Standardsupportprogramm oder -Dienst unterstützt. Die Beispielskripts werden wie besehen ohne jegliche Garantie zur Verfügung gestellt. Microsoft schließt ferner alle konkludenten Gewährleistungen, einschließlich, aber nicht beschränkt auf konkludente Gewährleistungen der Handelsüblichkeit oder Eignung für einen bestimmten Zweck aus. Das gesamte Risiko, das mit der Verwendung oder Leistung der Beispielskripts und der Dokumentation einhergeht, liegt bei Ihnen. In keinem Fall sind Microsoft, seine Autoren oder an der Erstellung, Produktion oder Übermittlung der Skripts beteiligte Personen für Schäden jeglicher Art (einschließlich und ohne Einschränkung Schäden durch Verlust entgangener Gewinne, Geschäftsunterbrechungen, Verlust von Geschäftsinformationen oder andere geldliche Verluste) haftbar, die aus der Nutzung bzw. Unfähigkeit zur Nutzung der Beispielskripts oder Dokumentation entstehen, auch wenn Microsoft auf die Möglichkeit solcher Schäden hingewiesen wurde.

Schritt 1: Installieren der SharePoint Online-Verwaltungsshell

Der erste Schritt besteht darin, die SharePoint Online-Verwaltungsshell zu installieren. Sie müssen die Shell in diesem Verfahren nicht verwenden, aber Sie müssen sie installieren, da sie die Voraussetzungen enthält, die für das Skript erforderlich sind, das Sie in Schritt 3 ausführen. Diese Voraussetzungen ermöglichen es dem Skript, mit SharePoint Online zu kommunizieren, um die URLs für die OneDrive for Business Websites abzurufen.

Wechseln Sie zu Einrichten der SharePoint Online-Verwaltungsshell-Umgebung , und führen Sie Schritt 1 und Schritt 2 aus, um die SharePoint Online-Verwaltungsshell zu installieren.

Schritt 2: Generieren einer Benutzerliste

Das Skript in Schritt 3 erstellt eine Inhaltssuche, um die Postfächer und OneDrive-Konten nach einer Liste von Benutzern zu durchsuchen. Sie können die E-Mail-Adressen einfach in eine Textdatei eingeben, oder Sie können einen Befehl in PowerShell ausführen, um eine Liste von E-Mail-Adressen abzurufen und in einer Datei zu speichern (in dem Sie das Skript in Schritt 3 speichern).

Hier ist ein Exchange Online PowerShell-Befehl, den Sie ausführen können, um eine Liste der E-Mail-Adressen für alle Benutzer in Ihrem organization abzurufen und in einer Textdatei mit dem Namen Users.txtzu speichern.

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

Nachdem Sie diesen Befehl ausgeführt haben, müssen Sie die Datei öffnen und den Header entfernen, PrimarySmtpAddressder den Eigenschaftsnamen enthält. Die Textdatei sollte nur eine Liste von E-Mail-Adressen und nichts anderes enthalten. Stellen Sie sicher, dass vor oder nach der Liste der E-Mail-Adressen keine leeren Zeilen vorhanden sind.

Wenn Sie das Skript in diesem Schritt ausführen, werden Sie zur Eingabe der folgenden Informationen aufgefordert. Stellen Sie sicher, dass Diese Informationen bereit sind, bevor Sie das Skript ausführen.

  • Ihre Benutzeranmeldeinformationen: Das Skript verwendet Ihre Anmeldeinformationen für den Zugriff auf SharePoint Online, um die OneDrive for Business-URLs abzurufen und eine Verbindung mit Security & Compliance PowerShell herzustellen.

  • Name Ihrer MySite-Domäne: Die Domäne "MySite" ist die Domäne, die alle OneDrive for Business Websites in Ihrem organization enthält. Wenn die URL für Ihre MySite-Domäne beispielsweise lautet https://contoso-my.sharepoint.com, geben Sie ein contoso , wenn das Skript Sie zur Eingabe des Namens Ihrer MySite-Domäne auffordert.

  • Pfadname der Textdatei aus Schritt 2 : Der Pfadname der Textdatei, die Sie in Schritt 2 erstellt haben. Wenn sich die Textdatei und das Skript im selben Ordner befinden, geben Sie den Namen der Textdatei ein. Geben Sie andernfalls den vollständigen Pfadnamen für die Textdatei ein.

  • Name der Inhaltssuche : Der Name der Inhaltssuche, die vom Skript erstellt wird.

  • Suchabfrage : Die Suchabfrage, die mit der Inhaltssuche verwendet wird, wird erstellt und ausgeführt. Weitere Informationen zu Suchabfragen finden Sie unter Schlüsselwortabfragen und Suchbedingungen für eDiscovery.

So führen Sie das Skript aus:

  1. Speichern Sie den folgenden Text in einer Windows PowerShell Skriptdatei, indem Sie das Dateinamensuffix .ps1 verwenden, SearchEXOOD4B.ps1z. B. . Speichern Sie die Datei in dem Ordner, in dem Sie die Liste der Benutzer in Schritt 2 gespeichert haben.

    # 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. Öffnen Sie Windows PowerShell, und wechseln Sie zu dem Ordner, in dem Sie das Skript und die Liste der Benutzer aus Schritt 2 gespeichert haben.

  3. Starten Sie das Skript; Zum Beispiel:

    .\SearchEXOOD4B.ps1
    
  4. Wenn Sie zur Eingabe Ihrer Anmeldeinformationen aufgefordert werden, geben Sie Ihre E-Mail-Adresse und ihr Kennwort ein, und klicken Sie dann auf OK.

  5. Geben Sie die folgenden Informationen ein, wenn Sie vom Skript dazu aufgefordert werden. Geben Sie die einzelnen Informationen ein, und drücken Sie dann die EINGABETASTE.

    • Der Name Ihrer MySite-Domäne.

    • Der Pfadname der Textdatei, die die Liste der Benutzer enthält.

    • Ein Name für die Inhaltssuche.

    • Die Suchabfrage (lassen Sie dieses Feld leer, um alle Elemente an den Inhaltsspeicherorten zurückzugeben).

    Das Skript ruft die URLs für jede OneDrive for Business Website ab und erstellt und startet die Suche. Sie können entweder das Cmdlet Get-ComplianceSearch in Security & Compliance PowerShell ausführen, um die Suchstatistiken und -ergebnisse anzuzeigen, oder Sie können im Complianceportal zur Seite Inhaltssuche wechseln, um Informationen zur Suche anzuzeigen.