Empfängerfilter in den Exchange-PowerShell-Befehlen
Die Cmdlets in der Exchange-Verwaltungsshell und Exchange Online PowerShelll unterstützen verschiedene Filtertypen in empfängerbezogenen Cmdlets:
- Präcannierte Filter.
- Benutzerdefinierte Filter mit dem RecipientFilter-Parameter .
- Benutzerdefinierte Filter mit dem Filter-Parameter .
- Benutzerdefinierte Filter mit dem ContentFilter-Parameter .
In älteren Exchange-Versionen wurde die LDAP-Filtersyntax verwendet, um benutzerdefinierte Adresslisten, globale Adresslisten (GALs), E-Mail-Adressrichtlinien und Verteilergruppen zu erstellen. Die OPATH-Filtersyntax wurde ab Exchange Server 2007 an die LDAP-Filtersyntax ersetzt.
Musterfilter
Ein vordefinierter Filter verwendet beliebte Eigenschaften in Exchange, um Empfänger nach dynamischen Verteilergruppen, E-Mail-Adressrichtlinien, Adresslisten oder GALs zu filtern. Mit vordefinierten Filtern können Sie entweder Exchange PowerShell oder das Exchange Admin Center (EAC) verwenden. Mithilfe von vordefinierten Filtern können Sie die folgenden Aufgaben ausführen:
- Bestimmen des Empfängerbereichs.
- Fügen Sie bedingte Filterung basierend auf allgemeinen Eigenschaften wie Unternehmen, Abteilung und Bundesland oder Region hinzu.
- Hinzufügen benutzerdefinierter Attribute für Empfänger. Weitere Informationen finden Sie unter Custom Attributes.
Die folgenden Parameter werden als Musterfilter betrachtet:
- Includedrecipients
- ConditionalCompany
- ConditionalDepartment
- ConditionalStateOrProvince
- ConditionalCustomAttribute1 in ConditionalCustomAttribute15.
Vordefinierte Filter sind in den folgenden Cmdlets verfügbar:
Beispiel für präcannierte Filter
In diesem Beispiel wird die Verwendung von vordefinierten Filtern in der Exchange-Verwaltungsshell zum Erstellen einer dynamischen Verteilergruppe beschrieben. Die Syntax in diesem Beispiel ähnelt der Syntax zur Erstellung einer E-Mail-Adressrichtlinie, Adressrichtlinie oder GAL, ist aber nicht mit dieser identisch. Wenn Sie einen Musterfilter erstellen, sollten Sie sich die folgenden Fragen stellen:
Aus welcher Organisationseinheit (OE) möchten Sie Empfänger einschließen (der RecipientContainer-Parameter )?
Hinweis
Die Auswahl der Organisationseinheit zu diesem Zweck gilt nur für das Erstellen dynamischer Verteilergruppen und nicht für das Erstellen von E-Mail-Adressrichtlinien, Adresslisten oder GALs.
Welche Empfängertypen möchten Sie einschließen (der IncludedRecipients-Parameter )?
Welche zusätzlichen Bedingungen möchten Sie in den Filter einschließen (die Parameter ConditionalCompany, ConditionalDepartment, ConditionalStateOrProvince und ConditionalCustomAttribute )?
In diesem Beispiel wird eine dynamische Verteilergruppe mit den folgenden Eigenschaften erstellt:
- Name: Contoso Finance.
- Empfängertypen: Benutzerpostfächer.
- Empfängerspeicherort: Die Organisationseinheit mit dem Namen Contoso.com/Users.
- Filter Schließen Sie nur Empfänger ein, für die das Department-Attribut als Finance und das Company-Attribut als Contoso definiert sind.
New-DynamicDistributionGroup -Name "Contoso Finance" -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso"
In diesem Beispiel werden die Eigenschaften dieser neuen dynamischen Verteilergruppe angezeigt.
Get-DynamicDistributionGroup -Identity "Contoso Finance" | Format-List Recipient*,Included*
Mit dem Parameter "RecipientFilter" erstellte benutzerdefinierte Filter
Wenn vordefinierte Filter Ihre Anforderungen nicht erfüllen, können Sie mithilfe des RecipientFilter-Parameters benutzerdefinierte Filter erstellen. Dieser Parameter ist für die folgenden Cmdlets verfügbar:
Weitere Informationen zu den filterbaren Eigenschaften, die Sie mit dem RecipientFilter-Parameter verwenden können, finden Sie unter Filterbare Eigenschaften für den RecipientFilter-Parameter.
Beispiel für einen benutzerdefinierten Filter
In diesem Beispiel wird der Parameter RecipientFilter zum Erstellen einer dynamischen Verteilergruppe verwendet. Die Syntax in diesem Beispiel ähnelt der Syntax zum Erstellen einer E-Mail-Adressrichtlinie, Adressliste oder GAL, ist aber nicht mit dieser identisch.
In diesem Beispiel werden benutzerdefinierte Filter verwendet, um eine dynamische Verteilergruppe mit den folgenden Eigenschaften zu erstellen:
- Name: AllContosoNorth.
- Empfängertypen: Benutzerpostfächer.
- Empfängerspeicherort: Die Organisationseinheit mit dem Namen Contoso.com/Users.
- Filter Schließen Sie nur Empfänger ein, für die das Attribut "Company " als Contoso und das Office-Attribut als "North Building" definiert sind.
New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientTypeDetails -eq 'UserMailbox') -and (Company -eq 'Contoso') -and (Office -eq 'North Building'))"
Mit dem Parameter "Filter" erstellte benutzerdefinierte Filter
Sie können mit dem Parameter Filter die Ergebnisse eines Befehls filtern und so angeben, welche Objekte abgerufen werden sollen. Anstatt beispielsweise alle Benutzer oder Gruppen abzurufen, können Sie eine Gruppe von Benutzern oder Gruppen mithilfe einer Filterzeichenfolge angeben. Mit diesem Filtertyp werden weder die Konfiguration noch Attribute von Objekten geändert. Es wird lediglich die Gruppe von Objekten geändert, die durch den Befehl zurückgegeben wird.
Wenn der Parameter Filter zur Modifizierung von Befehlsergebnissen verwendet wird, wird dies als serverseitige Filterung bezeichnet. Bei der serverseitigen Filterung werden der Befehl und der Filter zur Verarbeitung an den Server übergeben. Wir unterstützen auch die clientseitige Filterung, bei der der Befehl alle Objekte vom Server abruft und dann den Filter im lokalen Konsolenfenster anwendet. Die clientseitige Filterung wird mit dem Cmdlet Where-Object durchgeführt. Weitere Informationen zu server- und clientseitiger Filterung finden Sie unter "Filtern von Daten" in Working with Command Output.
Um die filterbaren Eigenschaften für Cmdlets zu ermitteln, die den Parameter Filter verwenden, können Sie den Befehl Get für ein Objekt ausführen und die Ausgabe durch Weiterleitung des Parameters Format-List formatieren. Die meisten zurückgegebenen Werte stehen für die Verwendung im Filter-Parameter zur Verfügung.
Das folgende Beispiel gibt eine detaillierte Liste für das Postfach "Ayla" zurück.
Get-Mailbox -Identity Ayla | Format-List
Der Parameter Filter ist für die folgenden Empfänger-Cmdlets verfügbar:
- Get-CASMailbox
- Get-Contact
- Get-DistributionGroup
- Get-DynamicDistributionGroup
- Get-Group
- Get-Mailbox
- Get-MailContact
- Get-MailPublicFolder
- Get-MailUser
- Get-Recipient
- Get-RemoteMailbox
- Get-SecurityPrincipal
- Get-UMMailbox
- Get-User
- Get-UnifiedGroup
Weitere Informationen zu den filterbaren Eigenschaften, die Sie mit dem Filter-Parameter verwenden können, finden Sie unter Filterbare Eigenschaften für den Filter-Parameter.
Beispiel für Filterparameter
In diesem Beispiel wird der Filter-Parameter verwendet, um Informationen zu Benutzern zurückzugeben, deren Titel das Wort "Manager" enthält.
Get-User -Filter "Title -like 'Manager*'"
Mit dem Parameter "ContentFilter" erstellte benutzerdefinierte Filter
Sie können den Parameter ContentFilter verwenden, um bei Verwendung des Cmdlets New-MailboxExportRequest spezifische Nachrichteninhalte zu exportieren. Wenn über den Befehl eine Nachricht gefunden wird, die mit dem Inhaltsfilter übereinstimmt, wird die Nachricht in eine PST-Datei exportiert.
ContentFilter-Parameterbeispiel
In diesem Beispiel wird eine Exportanforderung erstellt, die das Postfach von Ayla nach Nachrichten durchsucht, in denen der Text den Ausdruck "Unternehmensprospekt" enthält. Wenn dieser Ausdruck gefunden wird, exportiert der Befehl alle Nachrichten mit diesem Ausdruck in eine PST-Datei.
New-MailboxExportRequest -Mailbox Ayla -ContentFilter "Body -like 'company prospectus*'"
Weitere Informationen zu den filterbaren Eigenschaften, die Sie mit dem ContentFilter-Parameter verwenden können, finden Sie unter Filterbare Eigenschaften für den ContentFilter-Parameter.
Weitere Informationen zur OPATH-Syntax
Berücksichtigen Sie beim Erstellen ihrer eigenen benutzerdefinierten OPATH-Filter folgendes:
Verwenden Sie die folgende Syntax, um die Typen von Werten zu identifizieren, nach denen Sie suchen:
Textwerte: Schließen Sie den Text in einfache Anführungszeichen ein (z. B
'Value'
. oder'Value with spaces'
). Alternativ können Sie einen Textwert in doppelte Anführungszeichen einschließen, dies schränkt jedoch die Zeichen ein, die Sie zum Einschließen des gesamten OPATH-Filters verwenden können.Variablen: Schließen Sie Variablen, die erweitert werden müssen, in einfache Anführungszeichen ein (z. B
'$User'
. ). Wenn der Variablenwert selbst einfache Anführungszeichen enthält, müssen Sie die einfachen Anführungszeichen identifizieren (mit Escapezeichen versehen), um die Variable ordnungsgemäß zu erweitern. Sie können z. B.'$($User -Replace "'","''")'
anstelle von'$User'
verwenden.Ganzzahlige Werte: Sie müssen keine ganzen Zahlen einschließen (z. B
500
. ). Sie können ganze Zahlen häufig in einfache Anführungszeichen oder doppelte Anführungszeichen einschließen, aber dies schränkt die Zeichen ein, die Sie verwenden können, um den gesamten OPATH-Filter einzuschließen.Systemwerte: Schließen Sie keine Systemwerte ein (z. B
$true
. ,$false
oder$null
). Um den gesamten OPATH-Filter in doppelte Anführungszeichen einzuschließen, müssen Sie den Systemwert des Dollarzeichens mit Escapezeichen versehen (z. B`$true
. ).
Sie müssen den gesamten OPATH-Filter in doppelte Anführungszeichen " " " oder einfache Anführungszeichen " " einschließen. Obwohl jedes OPATH-Filterobjekt technisch gesehen eine Zeichenfolge und kein Skriptblock ist, können Sie trotzdem geschweifte Klammern { } verwenden, aber nur, wenn der Filter keine Variablen enthält, die eine Erweiterung erfordern. Welche Zeichen Sie verwenden können, um den gesamten OPATH-Filter einzuschließen, hängt von den Typen von Werten ab, nach denen Sie suchen, und von den Zeichen, die Sie verwendet haben (oder nicht verwendet haben), um diese Werte einzuschließen:
Textwerte: Hängt davon ab, wie Sie den text eingeschlossen haben, nach dem gesucht werden soll:
- In einfache Anführungszeichen eingeschlossener Text: Schließen Sie den gesamten OPATH-Filter in doppelte Anführungszeichen oder geschweifte Klammern ein.
- In doppelte Anführungszeichen eingeschlossener Text: Schließen Sie den gesamten OPATH-Filter in geschweifte Klammern ein.
Variablen: Schließen Sie den gesamten OPATH-Filter in doppelte Anführungszeichen ein (z. B
"Name -eq '$User'"
. ).Ganzzahlige Werte: Um sicherzustellen, dass sie in allen Fällen funktionieren, schließen Sie sie auf eine der folgenden Arten ein:
-
Ganze Zahl in einfache Anführungszeichen eingeschlossen: Schließen Sie den gesamten OPATH-Filter in doppelte Anführungszeichen oder geschweifte Klammern ein
"CountryCode -eq '840'"
. -
Ganze Zahl in doppelte Anführungszeichen eingeschlossen: Schließen Sie den gesamten OPATH-Filter in geschweifte Klammern ein (z. B
{CountryCode -eq "840"}
. ).
-
Ganze Zahl in einfache Anführungszeichen eingeschlossen: Schließen Sie den gesamten OPATH-Filter in doppelte Anführungszeichen oder geschweifte Klammern ein
Systemwerte: Schließen Sie den gesamten OPATH-Filter in einfache Anführungszeichen oder geschweifte Klammern ein (z. B
'HiddenFromAddressListsEnabled -eq $true'
. ). Wenn Sie den Systemwert des Dollarzeichens mit Escapezeichen versehen, können Sie auch den gesamten OPATH-Filter in doppelte Anführungszeichen einschließen (z. B"HiddenFromAddressListsEnabled -eq `$true"
. ).
Die Kompatibilität der Suchkriterien und die gültigen Zeichen, die Sie zum Einschließen des gesamten OPATH-Filters verwenden können, sind in der folgenden Tabelle zusammengefasst:
Search Wert OPATH-Filter
eingeschlossen in
Doppelte AnführungszeichenOPATH-Filter
eingeschlossen in
einfache AnführungszeichenIn eingeschlossener OPATH-Filter
Klammern'Text'
✔ ✔ "Text"
✔ '$Variable'
✔ 500
✔ ✔ ✔ '500'
✔ ✔ "500"
✔ $true
✔ ✔ `$true
✔ ✔ ✔ Schließen Sie den Bindestrich vor allen logischen Operatoren oder Vergleichsoperatoren ein. Zu den am häufigsten verwendeten Operatoren gehören:
-and
-or
-not
-
-eq
(gleich) -
-ne
(ungleich) -
-lt
(kleiner als) -
-gt
(größer als) -
-like
(Zeichenfolgenvergleich) -
-notlike
(Zeichenfolgenvergleich)
Viele filterbare Eigenschaften akzeptieren Platzhalterzeichen. Wenn Sie ein Wildcardzeichen verwenden, verwenden Sie den Operator -like anstelle des Operators -eq . Verwenden Sie den Operator -like , um Mustervergleiche in rich-Typen (z. B. Zeichenfolgen) zu finden. Verwenden Sie den Operator -eq , um eine genaue Übereinstimmung zu finden.
Wenn Sie den Operator -like in Exchange Online PowerShell verwenden, wird das Platzhalterzeichen nur als Suffix in den meisten Parametern unterstützt. Beispielsweise
"Department -like 'sales*'"
ist zulässig, aber"Department -like '*sales'"
nicht zulässig.Tipp
Selbst wenn ein Platzhalterpräfix in einem Filterparameter in Exchange Online PowerShell funktioniert, wird die Verwendung aufgrund von Leistungsproblemen nicht empfohlen.
Weitere Informationen zu Operatoren, die Sie verwenden können, finden Sie unter:
Dokumentation zu Empfängerfiltern
Die folgende Tabelle enthält Links zu Artikeln, die Ihnen helfen, mehr über die filterbaren Eigenschaften zu erfahren, die Sie mit Exchange-Empfängerbefehlen verwenden können.
Artikel | Beschreibung |
---|---|
Filterbare Eigenschaften für den RecipientFilter-Parameter in Exchange-Cmdlets | Erfahren Sie mehr über die filterbaren Eigenschaften, die für den RecipientFilter-Parameter verfügbar sind. |
Filterbare Eigenschaften für den Filter-Parameter in Exchange-Cmdlets | Erfahren Sie mehr über die filterbaren Eigenschaften, die für den Filter-Parameter verfügbar sind. |
Filter im Exchange Online PowerShell-Modul | Erfahren Sie mehr über die Überlegungen zu Filtern in den neun exklusiven Get-EXO*-Cmdlets im Exchange Online PowerShell-Modul. |