New-ComplianceSearch: Wie nutzt man die neue Version von Search-Mailbox

Ab dem 1. April 2020 gehen ältere eDiscovery-Tools in die Geschichte. Was bedeutet das? Alle Skripte, die Search-Mailbox verwenden, muss man neu schreiben und eines der grundlegendsten Verwaltungstools von Grund auf neu lernen. Dieser Beitrag zeigt, wie man das New-ComplianceSearch-Commandlet anstelle seines langlebigen Vorgängers Search-Mailbox anwendet.

New-ComplianceSearch

Search-Mailbox: End of Life

Seit einiger Zeit gibt das Search-Mailbox-Cmdlet eine Warnung zurück, dass es bald keine Anwendung mehr finden werde. Das Ende seines Lebenszyklus wird genau am 1. April 2020 stattfinden. Und wenn Sie immer noch in Exchange 2010 arbeiten, nehmen Sie es in Kauf, dass dessen Supportende sich ebenso nähert.

Diejenige unter Ihnen, die Exchange Online verwalten, verlieren bald die Möglichkeit, die alte Methode zum Durchsuchen von Postfächern anzuwenden. Daher ist es ein Muss, das ComplianceSearch-Commandlet in Erfahrung zu bringen. Die Verwendung von *-ComplianceSearch-Cmdlets wird auch in modernen lokalen Exchange-Umgebungen empfohlen. Werfen wir jetzt also einen Blick darauf, welche Unterschiede zwischen der alten und der neuen Methode es gibt.

Vergleich: ComplianceSearch und Search-Mailbox

Das Search-Mailbox-Cmdlet kann zu folgenden Zwecken verwendet werden:

  • Wiederherstellung gelöschter Elemente (unsichtbar aus der Benutzerperspektive);
  • Kopieren bestimmter Elemente in ein Discovery-Postfach;
  • Löschen oder Leeren der Postfach-Inhalte;
  • Schätzung der Ergebnisse für eine ausgewählte Abfrage.

Diese Funktionen zusammen mit dem hochanpassbaren -SearchQuery-Attribut machten dieses einzelne Cmdlet äußerst nützlich. Natürlich gab es aber auch Schattenseiten. Und zwar wie folgt:

  • Sie mussten das Limit von 10.000 Ergebnissen umgehen.
  • Das in der SearchQuery verwendete KQL war etwas schwerfällig, insbesondere wenn Sie mehrere Bedingungen einbezogen haben. Um aber ehrlich zu sein, verwendet das -ContentMatchQuery- Attribut in der neuen Suchfunktion auch das KQL.
  • Es gab keine Möglichkeit, gelöschte Elemente in demselben Postfach wiederherzustellen. Das Zielpostfach musste sich von dem durchsuchten Postfach unterscheiden.

Mit der *-ComplianceSearch-Cmdlet-Familie können Sie jetzt ähnliche Ergebnisse erzielen. Die Vorgehensweise ähnelt jedoch dem Wechsel von den Nachrichtenverfolgungsprotokollen (Message Tracking logs) zur Office 365-Nachrichtenverfolgung (Office 365 Message Trace). Die Hauptunterschiede sind:

  • Search-Mailbox benötigte die Mailbox-Search-Rolle, um Suchvorgänge durchzuführen, oder die Mailbox-Import-Export-Rolle, um Elemente zu löschen. *-ComplianceSearch-Cmdlets erfordern eine dieser Rollen UND eine sicherheits- und Compliance-bezogene Rolle.
  • Mit Search-Mailbox können Sie ein einzelnes Cmdlet verwenden, um einige Postfachinhalte zu suchen und zu löschen, während ComplianceSearch einige Schritte erfordert.
  • Search-Mailbox (wie der Name schon sagt) behandelte nur Postfach-bezogenen Inhalt. ComplianceSearch basiert auf Unified Search und ist daher auch für SharePoint-Websites und für öffentliche Ordner ausführbar.
  • Wenn es um ComplianceSearch-Cmdlets geht, reicht eine PowerShell-Fernsitzung für Exchange Online nicht aus. Sie müssen auch eine Verbindung zum Security & Compliance-Modul herstellen.
  • Jede von Ihnen durchgeführte New-ComplianceSearch kann im Office 365 Compliance Center angezeigt werden.

Vorbereitung auf die Verwendung von Compliance Search

Bevor Sie irgendwelche Aktionen im Zusammenhang mit der ComplianceSearch vornehmen, müssen Sie sich mit den richtigen Office 365-Diensten verbinden. Sie können dies in einer einzelnen PowerShell-Sitzung mit dem folgenden Code tun:

$credential = get-credential;
$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange
-ConnectionUri "https://outlook.office365.com/powershell-liveid/"
-Credential $credential -Authentication "Basic" -AllowRedirection;
Import-PSSession $exchangeSession -DisableNameChecking;
$SccSession = New-PSSession -ConfigurationName Microsoft.Exchange
-ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid/
-Credential $credential -Authentication "Basic" -AllowRedirection;
Import-PSSession $SccSession

Sie werden aufgefordert, Ihre Office 365-Administratoranmeldedaten einzugeben. Danach versucht die Konsole, Fernverbindungen zu Exchange Online und Security & Compliance PowerShell herzustellen. Die richtigen Module werden zusammen mit den zugänglichen Cmdlets automatisch installiert und importiert.

Als Nächstes müssen Sie sicherstellen, dass Sie über die richtigen Berechtigungen verfügen. Führen Sie das folgende Cmdlet aus, um herauszufinden, wer Zugriff auf die Mailbox-Search-Rolle hat:

Get-ManagementRoleAssignment -Role "Mailbox Search" -GetEffectiveUsers -Delegating $false

Der einfachste Weg, diese Rolle zuzuweisen, besteht darin, sich selbst einer Gruppe hinzuzufügen, die diese Rolle enthält. Zum Beispiel:

Add-RoleGroupMember "Discovery Management" -member me@example.com 

Beachten Sie, dass man mit der Mailbox-Search-Rolle Suchvorgänge erstellen kann, aber nur mit der Mailbox-Import-Export-Rolle ist es für Administratoren möglich, die Suchergebnisse zu löschen oder zu exportieren.

Im nächsten Schritt überprüfen Sie die eDiscovery-Administratoren:

Get-eDiscoveryCaseAdmin 

Und fügen Sie sich bei Bedarf dieser Gruppe hinzu:

Add-eDiscoveryCaseAdmin me@example.com 

Wie führt man die Compliance Search durch?

Sobald Sie verbunden sind und die richtigen Berechtigungen zugewiesen haben, können Sie Ihre Suche starten. Zunächst müssen Sie eine Suche mit dem New-ComplianceSearch-Cmdlet konfigurieren. Sie können beispielsweise alle Postfächer durchsuchen und nach einem bestimmten Schlüsselwort im Betreff der Nachricht suchen:

New-ComplianceSearch -name "suspicious emails" -ExchangeLocation all -ContentMatchQuery 'subject:"suspicious"' 

Sie können auch Ihre Suche auf ein Datum basieren, an dem Elemente empfangen wurden. In diesem kurzen Skript werden beispielsweise Elemente zurückgegeben, die zwei Tage alt und neuer sind:

$date= (get-date).adddays(-2);
$date = $date.ToShortDateString();
$date = [scriptblock]::create($date);
New-ComplianceSearch "mailbox items newer than 2 days"
-ExchangeLocation all -ContentMatchQuery "received>=$date"

Das -ContentMatchQuery-Attribut funktioniert genauso wie das -SearchQuery-Attribut in Search-Mailbox. Eine ausführliche Anleitung zur Verwendung von SearchQuery finden Sie hier.

Wenn Sie inaktive Postfächer durchsuchen möchten, benötigen Sie ein zusätzliches Attribut: -AllowNotFoundExchangeLocationsEnabled $true. Wenn Sie Ihre Suche auf ein einzelnes inaktives Postfach verweisen, muss dem Benutzerprinzipalnamen (UPN) außerdem ein Punkt (.) vorangestellt werden, wie unten dargestellt:

New-ComplianceSearch "Search inactive mailbox" -ExchangeLocation .samplemailbox@example.com -AllowNotFoundExchangeLocationsEnabled $true 

Nachdem Sie die Bedingungen für die Suche festgestellt haben, müssen Sie ein separates Cmdlet ausführen, um sie zu starten:

Start-ComplianceSearch “suspicious emails” 

Sie können das New-ComplianceSearch-Cmdlet auch wie folgt an Start-ComplianceSearch weiterleiten:

New-ComplianceSearch … | Start-ComplianceSearch 

Führen Sie das folgende Cmdlet aus, um den Fortschritt Ihrer Suche zu überprüfen und grundlegende Informationen zu den aktuellen Ergebnissen zu erhalten:

Get-ComplianceSearch | FL name,items,size,jobprogress,status 

Was passiert, wenn Sie eine Compliance Search erneut ausführen?

Sie können jede bereits abgeschlossene Suche neu starten. Das sind gute Nachrichten: Jetzt ist es möglich, die Suche mit den häufigsten Abfragen erneut auszuführen. Oder verwenden Sie das Set-ComplianceSearch-Cmdlet, um die Suchkriterien zu ändern, und führen Sie die Start-ComplianceSearch gleich danach aus.

Wie löscht man Postfachinhalte in Office 365 über PowerShell?

Nachdem Sie die ComplianceSearch eingerichtet und abgeschlossen haben, müssen Sie die New-ComplianceSearchAction mit dem Attribut -Purge verwenden, um Elemente zu löschen. Zum Beispiel:

New-ComplianceSearchAction -SearchName “suspicious emails” -purge -purgetype SoftDelete/HardDelete

Wenn Sie das -PurgeType-Attribut nicht angeben, werden die Ergebnisse weich gelöscht. Dies bedeutet, dass Benutzer diese gelöschten Elemente wiederherstellen können, bis der Litigation Hold abgelaufen ist. Mit dem HardDelete-Wert werden Elemente endgültig gelöscht, es sei denn, dass ein Litigation Hold oder eine Retention Policy das Löschen bestimmter Elemente verhindert.

Erfahren Sie mehr über Litigation Hold und Retention Policy in Office 365

Fehlerbehebung

Es gibt einige häufige Probleme, die Sie während des obigen Verfahrens begegnen können. Im Folgenden liste ich die häufigsten Fehler und deren Behebungsmöglichkeiten:

Name des Cmdlets nicht erkannt

New-ComplianceSearchAction: The term 'New-ComplianceSearchAction' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 

Einer der häufigsten Fehler, die PowerShell-Benutzern begegnen. Das Problem liegt daran, dass es mehrere Gründe geben kann, warum diese Warnung angezeigt wird:

  1. Verbindung zum Security & Compliance Center fehlgeschlagen
    Führen Sie Get-PSSession aus, um zu überprüfen, ob Ihre Fernsitzungen über den Status Opened und Available verfügen. Sie können Get-PSSession | Remove-PSSession verwenden und die Schritte aus der Vorbereitung auf die Verwendung von Compliance Search wiederholen. Stellen Sie sicher, dass Sie die richtigen Anmeldedaten verwenden.
  2. Fehler beim Importieren des Moduls mit verfügbaren Cmdlets
    Aus irgendeinem Grund kann Ihre PowerShell-Sitzung möglicherweise nicht das richtige Office 365-Dienstmodul importieren. Um das Problem zu beheben, führen Sie Get-Module | Import-Module aus.
  3. Fehlende Berechtigungen
    Wenn Sie keine Berechtigungen haben, müssen sie Ihnen zugewiesen werden. Wenn Sie nicht über die erforderlichen Berechtigungen verfügen, sich selbst als Mitglied der richtigen Rollengruppe hinzufügen, müssen Sie den Zugriff bei einem anderen Administrator anfordern.
  4. Verbindungszeitüberschreitung
    Ihre Fernsitzung läuft möglicherweise nach einer Weile ab. Um dies zu beheben, wiederholen Sie die Schritte aus der Vorbereitung auf die Verwendung von Compliance Search.
  5. Falsch geschriebenes Cmdlet
    New-ComplainceSearch ist öfter zu sehen als man denkt. Prüfen Sie daher die Schreibweise Ihres Cmdlets beim Tippen.

Die Suche läuft immer noch

Unable to execute the task. Reason: The search "*" is still running or it didn't return any results. Please wait until the search finishes or edit the query and run the search again.

Dieser Fehler tritt auf, wenn Sie zu voreilig sind oder Suchvorgänge mit sehr breiten Kriterien ausführen. Um die Suche zu beschleunigen, stellen Sie sicher, dass Sie nur die relevanten Verzeichnisse durchsuchen.

Führen Sie Folgendes aus, um den Status der Compliance Search zu überprüfen:

Get-ComplianceSearch | FL name,items,size,jobprogress,status 

Das Objekt der Compliance Search ist bereits vorhanden

The compliance search object "*" already exists within your organization. 

Dieser Fehler wird durch Ausführen von New-ComplianceSearch mit einem bereits vorhandenen Namen verursacht. Verwenden Sie zu dessen Behebung entweder einen neuen eindeutigen Namen oder führen Sie stattdessen Set-ComplianceSearch aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*