[Update]: Dieser Beitrag wurde erstmals am 16 März 2020 veröffentlicht. Er wurde aktualisiert, um den aktuellen Stand bezüglich der Funktionstüchtigkeit von Search-Mailbox widerzugeben.
Wie in diesem Microsoft-Artikel angekündigt, wurde das Datum für die Einstellung älterer eDiscovery-Tools vom 1. April 2020 auf den 1. Juli 2020 verschoben. Zu diesem Zeitpunkt verlor das Search-Mailbox-Cmdlet seine offizielle Unterstützung. Viele Admins (zusammen mit mir) dachten, dass dies bedeutet, dass Search-Mailbox nicht mehr funktionieren wird. Wie sich herausstellt, funktioniert Search-Mailbox Anfang 2023 immer noch wunderbar (vorausgesetzt, Sie haben die richtigen Berechtigungen). Es ist nicht abzusehen, ob es irgendwann nicht mehr funktionieren wird oder nicht, deshalb werde ich in diesem Artikel zeigen, wie man das New-ComplianceSearch-Cmdlet anstelle seines langlebigen Vorgängers Search-Mailbox anwendet.
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. Laut der von PowerShell zurückgegebenen Warnung wurde das Lebensende auf den 1. Juli 2020 (zuvor 1. April 2020) festgelegt. Obwohl es nicht mehr offiziell unterstützt wird, funktioniert es im Jahr 2023 immer noch. Wenn Sie also Postfachelemente in großen Mengen entfernen müssen, lesen Sie diesen Artikel, um zu erfahren, wie Sie Search-Mailbox dafür verwenden. Es könnte sich lohnen, diese Methode zu verwenden, bevor sie endgültig abgeschaltet wird.
Obwohl Search-Mailbox im Moment gut zu funktionieren scheint, gibt es dennoch eine Warnung zurück, dass das Cmdlet zurückgezogen wird. Aus diesem Grund ist das Erlernen der Verwendung von der empfohlenen Alternative – ComplianceSearch-Cmdlets – nach wie vor ein Muss. Werfen wir jetzt also einen Blick darauf, welche Unterschiede es zwischen der alten und der neuen Methode zum Durchsuchen von Postfächern 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 um das Limit von 10.000 Ergebnissen herum arbeiten.
- Die 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 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 Microsoft Purview Compliance Portal angezeigt werden.
- New-ComplianceSearchAction ist nicht für Massenbereinigung von Postfächern gedacht, da nur 10 Elemente pro Postfach gleichzeitig gelöscht 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 den folgenden Cmdlets tun:
Connect-ExchangeOnline Connect-IPPSSession -UserPrincipalName <Ihr UPN>
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 [email protected]
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 [email protected]
Wie wird ein ComplianceSearch-Cmdlet ausgeführt
Sobald Sie verbunden sind und Ihnen die richtigen Berechtigungen zugewiesen wurden, 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. Dieses kurze Skript gibt beispielsweise Elemente zurück, 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 richten, muss dem Benutzerprinzipalnamen (UPN) außerdem ein Punkt (.) vorangestellt werden, wie unten dargestellt:
New-ComplianceSearch "Search inactive mailbox" -ExchangeLocation [email protected] -AllowNotFoundExchangeLocationsEnabled $true
Nachdem Sie die Bedingungen für die Suche festgelegt 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 vorläufig gelöscht. Dies bedeutet, dass Benutzer diese gelöschten Elemente wiederherstellen können, bis der Aufbewahrungszeitraum abgelaufen ist. Mit dem HardDelete-Wert werden Elemente endgültig gelöscht, es sei denn, es ist ein Beweissicherungsverfahren oder eine Aufbewahrungsrichtlinie eingerichtet, um das Löschen bestimmter Elemente zu verhindern. Beachten Sie, dass die Beschränkung auf „10 Elemente pro Postfach“ der New-ComplianceSearchAction erfordert, dass Sie Präzisionssuchen durchführen oder das Cmdlet in einer Schleife ausführen.
Erfahren Sie mehr über Aufbewahrungsrichtlinien und Beweissicherungsverfahren in Office 365
Problembehandlung
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 auf:
Nicht als Name eines Cmdlets erkannt
Einer der häufigsten PowerShell-Benutzern bekannten Fehler ist:
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.
Das Problem liegt daran, dass es mehrere Gründe geben kann, warum diese Warnung angezeigt wird:
- Problem: Fehler beim Herstellen einer Verbindung mit dem Microsoft Purview Compliance Portal
Lösung: führen Sie Get-PSSession aus, um zu überprüfen, ob Ihre Fernsitzungen über den Status Opened und Available verfügen. Sie könnenGet-PSSession | Remove-PSSession
verwenden und die Schritte aus dem Abschnitt Vorbereitung auf die Verwendung von Compliance Search wiederholen. Stellen Sie sicher, dass Sie die richtigen Anmeldedaten verwenden. - Problem: Fehler beim Importieren des Moduls mit verfügbaren Cmdlets
Lösung: aus irgendeinem Grund kann Ihre PowerShell-Sitzung möglicherweise nicht das richtige Office 365-Dienstmodul importieren. Um das Problem zu beheben, führen SieGet-Module | Import-Module
aus. - Problem: fehlende Berechtigungen
Lösung: 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. - Problem: Verbindungszeitüberschreitung
Lösung: Ihre Fernsitzung läuft möglicherweise nach einer Weile ab. Um dies zu beheben, wiederholen Sie die Schritte aus dem Abschnitt Vorbereitung auf die Verwendung von Compliance Search. - Problem: falsch geschriebenes Cmdlet
Lösung: New-ComplainceSearch ist öfter zu sehen als man denkt. Ich habe sogar überlegt, den Alias New-ComplainceSearch für das richtige Cmdlet zu erstellen. Vielleicht bin ich der einzige, der die Cmdlets manuell eingibt, aber es schadet nicht, Ihre Rechtschreibung zu überprüfen, wenn Sie ein Cmdlet eingeben.
Die Suche läuft immer noch
Dieser Fehler tritt auf, wenn Sie zu voreilig sind oder Suchvorgänge mit sehr breiten Kriterien ausführen.
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.
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
Dieser Fehler wird durch Ausführen von New-ComplianceSearch mit einem bereits vorhandenen Namen verursacht.
The compliance search object "*" already exists within your organization.
Verwenden Sie zu dessen Behebung entweder einen neuen eindeutigen Namen oder führen Sie stattdessen Set-ComplianceSearch aus.
Verantwortlicher für Ihre personenbezogenen Daten ist CodeTwo sp. z o.o. sp. k.
Weitere Informationen finden Sie in unserer Datenschutzerklärung.