Erstellen, Ausführen von Berichten und Löschen mehrerer Inhaltssuchen

Das schnelle Erstellen und Melden von Ermittlungssuchen ist häufig ein wichtiger Schritt in eDiscovery und Untersuchungen, wenn Sie versuchen, mehr über die zugrunde liegenden Daten sowie die Fülle und Qualität Ihrer Suchvorgänge zu erfahren. Um Ihnen dabei zu helfen, bietet Security & Compliance PowerShell eine Reihe von Cmdlets zum Automatisieren zeitaufwändiger Aufgaben der Inhaltssuche. Diese Skripts bieten eine schnelle und einfache Möglichkeit, eine Reihe von Suchvorgängen zu erstellen und dann Berichte über die geschätzten Suchergebnisse auszuführen, mit denen Sie die Menge der betreffenden Daten ermitteln können. Sie können die Skripts auch verwenden, um verschiedene Versionen von Suchvorgängen zu erstellen, um die Ergebnisse zu vergleichen, die jeweils erzeugt werden. Diese Skripts können Ihnen helfen, Ihre Daten schnell und effizient zu identifizieren und zu cullieren.

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.

  • Sie müssen Mitglied der Rollengruppe eDiscovery-Manager im Microsoft Purview-Complianceportal sein, um die in diesem Thema beschriebenen Skripts ausführen zu können.
  • Informationen zum Sammeln einer Liste der URLs für die OneDrive for Business Websites in Ihrem organization, die Sie der CSV-Datei in Schritt 1 hinzufügen können, finden Sie unter Erstellen einer Liste aller OneDrive-Speicherorte in Ihrem organization.
  • Achten Sie darauf, alle Dateien, die Sie in diesem Thema erstellen, im selben Ordner zu speichern. Dies erleichtert die Ausführung der Skripts.
  • Die Skripts umfassen eine minimale Fehlerbehandlung. Ihr Hauptzweck besteht darin, schnell mehrere Inhaltssuchen zu erstellen, zu melden und zu löschen.
  • 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: Erstellen einer CSV-Datei mit Informationen zu den Suchvorgängen, die Sie ausführen möchten

Die CSV-Datei (Comma Separated Value), die Sie in diesem Schritt erstellen, enthält eine Zeile für jeden Benutzer, der durchsucht werden soll. Sie können das Exchange Online Postfach des Benutzers (einschließlich des Archivpostfachs, falls aktiviert) und seine OneDrive for Business Website durchsuchen. Alternativ können Sie nur das Postfach oder die OneDrive for Business Website durchsuchen. Sie können auch eine beliebige Website in Ihrer SharePoint Online-organization durchsuchen. Das Skript, das Sie in Schritt 3 ausführen, erstellt eine separate Suche für jede Zeile in der CSV-Datei.

  1. Kopieren Sie den folgenden Text, und fügen Sie ihn mithilfe von Editor in eine .txt-Datei ein. Speichern Sie diese Datei in einem Ordner auf Ihrem lokalen Computer. Sie speichern auch die anderen Skripts in diesem Ordner.

    ExchangeLocation,SharePointLocation,ContentMatchQuery,StartDate,EndDate
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2000,12/31/2005
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2006,12/31/2010
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2011,3/21/2016
    ,https://contoso.sharepoint.com/sites/contoso,,,3/21/2016
    ,https://contoso-my.sharepoint.com/personal/davidl_contoso_onmicrosoft_com,,1/1/2015,
    ,https://contoso-my.sharepoint.com/personal/janets_contoso_onmicrosoft_com,,1/1/2015,
    

    Die erste Zeile oder Kopfzeile der Datei enthält die Parameter, die vom Cmdlet New-ComplianceSearch (im Skript in Schritt 3) verwendet werden, um eine neue Inhaltssuche zu erstellen. Die einzelnen Parameternamen werden jeweils durch ein Komma getrennt. Stellen Sie sicher, dass in der Kopfzeile keine Leerzeichen vorhanden sind. Jede Zeile unter der Kopfzeile stellt die Parameterwerte für jede Suche dar. Achten Sie darauf, die Platzhalterdaten in der CSV-Datei durch Ihre tatsächlichen Daten zu ersetzen.

  2. Öffnen Sie die .txt-Datei in Excel, und verwenden Sie dann die Informationen in der folgenden Tabelle, um die Datei mit Informationen für jede Suche zu bearbeiten.


Parameter Beschreibung
ExchangeLocation Die SMTP-Adresse des Postfachs des Benutzers.
SharePointLocation Die URL für die OneDrive for Business Website des Benutzers oder die URL für eine beliebige Website in Ihrem organization. Verwenden Sie für die URL für OneDrive for Business Websites das folgende Format: https://<your organization>-my.sharepoint.com/personal/<user alias>_<your organization>_onmicrosoft_com. Beispiel: https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com.
ContentMatchQuery Die Suchabfrage für die Suche. Weitere Informationen zum Erstellen einer Suchabfrage finden Sie unter Schlüsselwortabfragen und Suchbedingungen für die Inhaltssuche.
StartDate Bei E-Mails das Datum, an dem oder nachdem eine Nachricht von einem Empfänger empfangen oder vom Absender gesendet wurde. Bei Dokumenten auf SharePoint- oder OneDrive for Business-Websites das Datum am oder nach der letzten Änderung eines Dokuments.
EndDate Bei E-Mails das Datum am oder vor dem Senden einer Nachricht durch einen , der vom Benutzer gesendet wurde. Bei Dokumenten auf SharePoint- oder OneDrive for Business-Websites das Datum am oder vor der letzten Änderung eines Dokuments.
  1. Speichern Sie die Excel-Datei als CSV-Datei in einem Ordner auf Ihrem lokalen Computer. Das Skript, das Sie in Schritt 3 erstellen, verwendet die Informationen in dieser CSV-Datei, um die Suchvorgänge zu erstellen.

Schritt 2: Herstellen einer Verbindung mit Security & Compliance PowerShell

Der nächste Schritt besteht darin, eine Verbindung mit Security & Compliance PowerShell für Ihre organization herzustellen. Schrittweise Anleitungen erhalten Sie unter Herstellen einer Verbindung mit Security & Compliance PowerShell.

Schritt 3: Ausführen des Skripts zum Erstellen und Starten der Suchvorgänge

Das Skript in diesem Schritt erstellt eine separate Inhaltssuche für jede Zeile in der CSV-Datei, die Sie in Schritt 1 erstellt haben. Wenn Sie dieses Skript ausführen, werden Sie zur Eingabe von zwei Werten aufgefordert:

  • Suchgruppen-ID : Dieser Name bietet eine einfache Möglichkeit zum Organisieren der Suchvorgänge, die aus der CSV-Datei erstellt werden. Jede erstellte Suche wird mit der Suchgruppen-ID benannt, und dann wird eine Zahl an den Suchnamen angefügt. Wenn Sie beispielsweise ContosoCase für die Suchgruppen-ID eingeben, werden die Suchvorgänge ContosoCase_1, ContosoCase_2, ContosoCase_3 usw. benannt. Beachten Sie, dass bei dem von Ihnen eingegebenen Namen die Groß-/Kleinschreibung beachtet wird. Wenn Sie die Suchgruppen-ID in Schritt 4 und Schritt 5 verwenden, müssen Sie den gleichen Fall wie bei der Erstellung verwenden.

  • CSV-Datei : Der Name der CSV-Datei, die Sie in Schritt 1 erstellt haben. Stellen Sie sicher, dass Sie den vollständigen Dateinamen verwenden, fügen Sie die .csv Dateierweiterung ein. Beispiel: ContosoCase.csv.

So führen Sie das Skript aus

  1. Speichern Sie den folgenden Text in einer Windows PowerShell Skriptdatei, indem Sie das Dateinamensuffix .ps1 verwenden, CreateSearches.ps1z. B. . Speichern Sie die Datei in demSelben Ordner, in dem Sie die anderen Dateien gespeichert haben.

    # Get the Search Group ID and the location of the CSV input file
    $searchGroup = Read-Host 'Search Group ID'
    $csvFile = Read-Host 'Source CSV file'
    
    # Do a quick check to make sure our group name will not collide with other searches
    $searchCounter = 1
    import-csv $csvFile |
      ForEach-Object{
    
     $searchName = $searchGroup +'_' + $searchCounter
     $search = Get-ComplianceSearch $searchName -EA SilentlyContinue
     if ($search)
     {
        Write-Error "The Search Group ID conflicts with existing searches.  Please choose a search group name and restart the script."
        return
     }
     $searchCounter++
    }
    
    $searchCounter = 1
    import-csv $csvFile |
      ForEach-Object{
    
     # Create the query
     $query = $_.ContentMatchQuery
     if(($_.StartDate -or $_.EndDate))
     {
           # Add the appropriate date restrictions.  NOTE: Using the Date condition property here because it works across Exchange, SharePoint, and OneDrive for Business.
           # For Exchange, the Date condition property maps to the Sent and Received dates; for SharePoint and OneDrive for Business, it maps to Created and Modified dates.
           if($query)
           {
               $query += " AND"
           }
           $query += " ("
           if($_.StartDate)
           {
               $query += "Date >= " + $_.StartDate
           }
           if($_.EndDate)
           {
               if($_.StartDate)
               {
                   $query += " AND "
               }
               $query += "Date <= " + $_.EndDate
           }
           $query += ")"
     }
    
      # -ExchangeLocation can't be set to an empty string, set to null if there's no location.
      $exchangeLocation = $null
      if ( $_.ExchangeLocation)
      {
            $exchangeLocation = $_.ExchangeLocation
      }
    
     # Create and run the search
     $searchName = $searchGroup +'_' + $searchCounter
     Write-Host "Creating and running search: " $searchName -NoNewline
     $search = New-ComplianceSearch -Name $searchName -ExchangeLocation $exchangeLocation -SharePointLocation $_.SharePointLocation -ContentMatchQuery $query
    
     # Start and wait for each search to complete
     Start-ComplianceSearch $search.Name
     while ((Get-ComplianceSearch $search.Name).Status -ne "Completed")
     {
        Write-Host " ." -NoNewline
        Start-Sleep -s 3
     }
     Write-Host ""
    
     $searchCounter++
    }
    
  2. Navigieren Sie in Windows PowerShell zu dem Ordner, in dem Sie das Skript im vorherigen Schritt gespeichert haben, und führen Sie das Skript aus. Beispiel:

    .\CreateSearches.ps1
    
  3. Geben Sie an der Eingabeaufforderung Gruppen-ID suchen einen Suchgruppennamen ein, und drücken Sie dann die EINGABETASTE. Beispiel: ContosoCase. Beachten Sie, dass bei diesem Namen die Groß-/Kleinschreibung beachtet wird, sodass Sie ihn in den nachfolgenden Schritten auf die gleiche Weise eingeben müssen.

  4. Geben Sie an der Eingabeaufforderung Quell-CSV-Datei den Namen der CSV-Datei ein, einschließlich der .csv Dateierweiterung. Beispiel: ContosoCase.csv.

  5. Drücken Sie die EINGABETASTE , um die Ausführung des Skripts fortzusetzen.

    Das Skript zeigt den Fortschritt der Erstellung und Ausführung der Suchvorgänge an. Wenn das Skript abgeschlossen ist, kehrt es zur Eingabeaufforderung zurück.

    Beispielausgabe der Ausführung des Skripts zum Erstellen mehrerer Konformitätssuchen.

Schritt 4: Ausführen des Skripts zum Melden der Suchschätzungen

Nachdem Sie die Suchvorgänge erstellt haben, besteht der nächste Schritt darin, ein Skript auszuführen, das einen einfachen Bericht über die Anzahl der Suchtreffer für jede Suche anzeigt, die in Schritt 3 erstellt wurde. Der Bericht enthält auch die Größe der Ergebnisse für jede Suche sowie die Gesamtzahl der Treffer und die Gesamtgröße aller Suchvorgänge. Wenn Sie das Berichtsskript ausführen, werden Sie zur Eingabe der Suchgruppen-ID und eines CSV-Dateinamens aufgefordert, wenn Sie den Bericht in einer CSV-Datei speichern möchten.

  1. Speichern Sie den folgenden Text in einer Windows PowerShell Skriptdatei, indem Sie das Dateinamensuffix .ps1 verwenden, SearchReport.ps1z. B. . Speichern Sie die Datei in demSelben Ordner, in dem Sie die anderen Dateien gespeichert haben.

    $searchGroup = Read-Host 'Search Group ID'
    $outputFile = Read-Host 'Enter a file name or file path to save the report to a .csv file. Leave blank to only display the report'
    $searches = Get-ComplianceSearch | ?{$_.Name -clike $searchGroup + "_*"}
    $allSearchStats = @()
    foreach ($partialObj in $searches)
    {
       $search = Get-ComplianceSearch $partialObj.Name
       $sizeMB = [System.Math]::Round($search.Size / 1MB, 2)
       $searchStatus = $search.Status
       if($search.Errors)
       {
           $searchStatus = "Failed"
       }elseif($search.NumFailedSources -gt 0)
       {
           $searchStatus = "Failed Sources"
       }
       $searchStats = New-Object PSObject
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Name -Value $search.Name
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name ContentMatchQuery -Value $search.ContentMatchQuery
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Status -Value $searchStatus
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Items -Value $search.Items
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size" -Value $search.Size
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size(MB)" -Value $sizeMB
       $allSearchStats += $searchStats
    }
    # Calculate the totals
    $allItems = ($allSearchStats | Measure-Object Items -Sum).Sum
    # Convert the total size to MB and round to the nearst 100th
    $allSize = ($allSearchStats | Measure-Object 'Size' -Sum).Sum
    $allSizeMB = [System.Math]::Round($allSize  / 1MB, 2)
    # Get the total successful searches and total of all searches
    $allSuccessCount = ($allSearchStats |?{$_.Status -eq "Completed"}).Count
    $allCount = $allSearchStats.Count
    $allStatus = [string]$allSuccessCount + " of " + [string]$allCount
    # Totals Row
    $totalSearchStats = New-Object PSObject
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Name -Value "Total"
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Status -Value $allStatus
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Items -Value $allItems
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name "Size(MB)" -Value $allSizeMB
    $allSearchStats += $totalSearchStats
    # Just get the columns we're interested in showing
    $allSearchStatsPrime = $allSearchStats | Select-Object Name, Status, Items, "Size(MB)", ContentMatchQuery
    # Print the results to the screen
    $allSearchStatsPrime |ft -AutoSize -Wrap
    # Save the results to a CSV file
    if ($outputFile)
    {
       $allSearchStatsPrime | Export-Csv -Path $outputFile -NoTypeInformation
    }
    
  2. Navigieren Sie in Windows PowerShell zu dem Ordner, in dem Sie das Skript im vorherigen Schritt gespeichert haben, und führen Sie das Skript aus. Beispiel:

    .\SearchReport.ps1
    
  3. Geben Sie an der Eingabeaufforderung Gruppen-ID suchen einen Suchgruppennamen ein, und drücken Sie dann die EINGABETASTE. z. B ContosoCase. . Beachten Sie, dass bei diesem Namen die Groß-/Kleinschreibung beachtet wird, sodass Sie ihn genauso eingeben müssen wie beim Ausführen des Skripts in Schritt 3.

  4. Geben Sie unter Dateipfad zum Speichern des Berichts in einer CSV-Datei (leer lassen, um nur den Bericht anzuzeigen) einen Dateinamen mit vollständigem Dateinamenpfad (einschließlich der .csv Dateierweiterung) ein, wenn Sie den Bericht in einer CSV-Datei speichern möchten. Name der CSV-Datei, einschließlich der dateierweiterung .csv. Sie können beispielsweise eingeben ContosoCaseReport.csv , um es im aktuellen Verzeichnis zu speichern, oder Sie können eingeben C:\Users\admin\OneDrive for Business\ContosoCase\ContosoCaseReport.csv , um es in einem anderen Ordner zu speichern. Sie können die Eingabeaufforderung auch leer lassen, um den Bericht anzuzeigen, aber nicht in einer Datei zu speichern.

  5. Drücken Sie EINGABE.

    Das Skript zeigt den Fortschritt der Erstellung und Ausführung der Suchvorgänge an. Wenn das Skript abgeschlossen ist, wird der Bericht angezeigt.

    Führen Sie den Suchbericht aus, um die Schätzungen für die Suchgruppe anzuzeigen.

Hinweis

Wenn dasselbe Postfach oder dieselbe Website als Inhaltsspeicherort in mehreren Suchvorgängen in einer Suchgruppe angegeben wird, können die Geschätzten Gesamtergebnisse im Bericht (sowohl für die Anzahl der Elemente als auch für die Gesamtgröße) Ergebnisse für dieselben Elemente enthalten. Das liegt daran, dass die gleiche E-Mail-Nachricht oder dasselbe Dokument mehrmals gezählt wird, wenn es mit der Abfrage für verschiedene Suchvorgänge in der Suchgruppe übereinstimmt.

Schritt 5: Ausführen des Skripts zum Löschen der Suchvorgänge

Da Sie möglicherweise viele Suchvorgänge erstellen, erleichtert dieses letzte Skript das schnelle Löschen der Suchvorgänge, die Sie in Schritt 3 erstellt haben. Wie die anderen Skripts werden Sie auch hier zur Eingabe der Suchgruppen-ID aufgefordert. Alle Suchvorgänge mit der Suchgruppen-ID im Suchnamen werden gelöscht, wenn Sie dieses Skript ausführen.

  1. Speichern Sie den folgenden Text in einer Windows PowerShell Skriptdatei, indem Sie das Dateinamensuffix .ps1 verwenden, DeleteSearches.ps1z. B. . Speichern Sie die Datei in demSelben Ordner, in dem Sie die anderen Dateien gespeichert haben.

    # Delete all searches in a search group
    $searchGroup = Read-Host 'Search Group ID'
    Get-ComplianceSearch |
       ForEach-Object{
       # If the name matches the search group name pattern (case sensitive), delete the search
       if ($_.Name -cmatch $searchGroup + "_\d+")
       {
           Write-Host "Deleting search: " $_.Name
           Remove-ComplianceSearch $_.Name -Confirm:$false
       }
    }
    
  2. Navigieren Sie in Windows PowerShell zu dem Ordner, in dem Sie das Skript im vorherigen Schritt gespeichert haben, und führen Sie das Skript aus. Beispiel:

    .\DeleteSearches.ps1
    
  3. Geben Sie an der Eingabeaufforderung Suchgruppen-ID einen Suchgruppennamen für die Suchvorgänge ein, die Sie löschen möchten, und drücken Sie dann die EINGABETASTE. Beispiel: ContosoCase. Beachten Sie, dass bei diesem Namen die Groß-/Kleinschreibung beachtet wird, sodass Sie ihn genauso eingeben müssen wie beim Ausführen des Skripts in Schritt 3.

    Das Skript zeigt den Namen jeder gelöschten Suche an.

    Führen Sie das Skript aus, um die Suchvorgänge in der Suchgruppe zu löschen.