Filtres de destinataires dans les commandes Exchange PowerShell

Les applets de commande dans Exchange Management Shell et Exchange Online PowerShelll prennent en charge différents types de filtres dans les applets de commande liées aux destinataires :

  • Filtres prédéfinits.
  • Filtres personnalisés à l’aide du paramètre RecipientFilter .
  • Filtres personnalisés à l’aide du paramètre Filter .
  • Filtres personnalisés à l’aide du paramètre ContentFilter .

Dans les versions antérieures d’Exchange, la syntaxe de filtrage LDAP (Lightweight Directory Access Protocol) permet de créer des listes d’adresses personnalisées, des listes d’adresses globales, des stratégies d’adresse de messagerie et des groupes de distribution. La syntaxe de filtrage OPATH a remplacé la syntaxe de filtrage LDAP à partir de Exchange Server 2007.

Filtres prédéfinis

Un filtre prédéfinit utilise des propriétés populaires dans Exchange pour filtrer les destinataires des groupes de distribution dynamiques, des stratégies d’adresse de messagerie, des listes d’adresses ou des listes d’adresses générales. Avec les filtres précannés, vous pouvez utiliser Exchange PowerShell ou le Centre d’administration Exchange (EAC). À l’aide de filtres prédéfinits, vous pouvez effectuer les tâches suivantes :

  • Déterminer l’étendue des destinataires.
  • Ajoutez un filtrage conditionnel basé sur des propriétés courantes telles que l’entreprise, le département et l’état ou la région.
  • Ajouter des attributs personnalisés pour les destinataires. Pour plus d’informations, consultez Attributs personnalisés.

Les paramètres suivants sont considérés comme des filtres prédéfinis :

  • IncludedRecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1 à ConditionalCustomAttribute15.

Les filtres précanned sont disponibles sur les applets de commande suivantes :

Exemple de filtre précanned

Cet exemple décrit l’utilisation de filtres précannés dans Exchange Management Shell pour créer un groupe de distribution dynamique. La syntaxe employée dans cet exemple s’apparente sans être identique à celle que vous utiliseriez pour créer une stratégie d’adresse de messagerie, une liste d’adresses ou une liste d’adresses globale. Lorsque vous créez un filtre prédéfini, vous devez vous poser les questions suivantes :

  • À partir de quelle unité d’organisation souhaitez-vous inclure des destinataires (le paramètre RecipientContainer ) ?

    Remarque

    La sélection de l’unité d’organisation à cet effet s’applique uniquement à la création de groupes de distribution dynamiques, et non à la création de stratégies d’adresses e-mail, de listes d’adresses ou de listes de disponibilité générale.

  • Quels types de destinataires voulez-vous inclure (paramètre IncludedRecipients ) ?

  • Quelles conditions supplémentaires voulez-vous inclure dans le filtre (les paramètres ConditionalCompany, ConditionalDepartment, ConditionalStateOrProvince et ConditionalCustomAttribute ) ?

Cet exemple crée un groupe de distribution dynamique avec les propriétés suivantes :

  • Nom : Contoso Finance.
  • Types de destinataires : boîtes aux lettres utilisateur.
  • Emplacement du destinataire : l’unité d’organisation nommée Contoso.com/Users.
  • Filtres Incluez uniquement les destinataires dont l’attribut Department est défini comme Finance et l’attribut Company défini comme Contoso.
New-DynamicDistributionGroup -Name "Contoso Finance" -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso"

Cet exemple affiche les propriétés de ce nouveau groupe de distribution dynamique.

Get-DynamicDistributionGroup -Identity "Contoso Finance" | Format-List Recipient*,Included*

Filtres personnalisés à l’aide du paramètre RecipientFilter

Si les filtres précannés ne répondent pas à vos besoins, vous pouvez créer des filtres personnalisés à l’aide du paramètre RecipientFilter . Ce paramètre est disponible sur les applets de commande suivantes :

Pour plus d’informations sur les propriétés filtrables que vous pouvez utiliser avec le paramètre RecipientFilter , consultez Propriétés filtrables pour le paramètre RecipientFilter.

Exemple de filtre personnalisé

L’exemple qui suit utilise le paramètre RecipientFilter pour créer un groupe de distribution dynamique. La syntaxe employée dans cet exemple s’apparente sans être identique à celle que vous utilisez pour créer une stratégie d’adresse de messagerie, une liste d’adresses ou une liste d’adresses globale.

Cet exemple utilise des filtres personnalisés pour créer un groupe de distribution dynamique avec les propriétés suivantes :

  • Nom : AllContosoNorth.
  • Types de destinataires : boîtes aux lettres utilisateur.
  • Emplacement du destinataire : l’unité d’organisation nommée Contoso.com/Users.
  • Filtres Incluez uniquement les destinataires dont l’attribut Company est défini sur Contoso et l’attribut Office défini sur North Building.
New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientTypeDetails -eq 'UserMailbox') -and (Company -eq 'Contoso') -and (Office -eq 'North Building'))"

Filtres personnalisés à l’aide du paramètre Filter

Vous pouvez utiliser le paramètre Filter pour filtrer les résultats d’une commande et spécifier les objets à extraire. Par exemple, au lieu de récupérer tous les utilisateurs ou groupes, vous pouvez spécifier un ensemble d’utilisateurs ou de groupes à l’aide d’une chaîne de filtre. Ce type de filtre ne modifie pas la configuration ou les attributs des objets. Il modifie uniquement l’ensemble des objets retournés par la commande.

L’utilisation du paramètre Filter pour modifier des résultats de commande est un processus appelé filtrage côté serveur. Le filtrage côté serveur soumet la commande et le filtre au serveur pour traitement. Nous prenons également en charge le filtrage côté client, dans lequel la commande récupère tous les objets du serveur, puis applique le filtre dans la fenêtre de console locale. Pour effectuer le filtrage côté client, utilisez la cmdlet Where-Object. Pour plus d’informations sur le filtrage côté serveur et côté client, consultez « Filtrage des données » dans la rubrique Working with Command Output.

Pour rechercher les propriétés filtrables pour les cmdlets dotées du paramètre Filter, vous pouvez exécuter la commande Get par rapport à un objet et mettre en forme la sortie par un traitement en pipeline du paramètre Format-List. La plupart des valeurs retournées peuvent être utilisées dans le paramètre Filter .

L’exemple qui suit retourne une liste détaillée pour la boîte aux lettres de l’utilisateur Ayla.

Get-Mailbox -Identity Ayla | Format-List

Le paramètre Filter est disponible pour les applets de commande de destinataire suivantes :

Pour plus d’informations sur les propriétés filtrables que vous pouvez utiliser avec le paramètre Filter , consultez Propriétés filtrables pour le paramètre Filter.

Exemple de paramètre de filtre

Cet exemple utilise le paramètre Filter pour retourner des informations sur les utilisateurs dont le titre contient le mot « manager ».

Get-User -Filter "Title -like 'Manager*'"

Filtres personnalisés à l’aide du paramètre ContentFilter

Vous pouvez utiliser le paramètre ContentFilter pour sélectionner un contenu de message spécifique à exporter à l’aide de la cmdlet New-MailboxExportRequest. Si la commande trouve un message contenant la correspondance avec le filtre de contenu, elle exporte ce message dans un fichier .pst.

Exemple de paramètre ContentFilter

Cet exemple crée une demande d’exportation qui recherche dans la boîte aux lettres d’Ayla des messages où le corps contient l’expression « prospectus de la société ». Si cette expression est trouvée, la commande exporte tous les messages contenant cette expression dans un fichier .pst.

New-MailboxExportRequest -Mailbox Ayla -ContentFilter "Body -like 'company prospectus*'"

Pour plus d’informations sur les propriétés filtrables que vous pouvez utiliser avec le paramètre ContentFilter , consultez Propriétés filtrables pour le paramètre ContentFilter.

Informations supplémentaires sur la syntaxe OPATH

Lorsque vous créez vos propres filtres OPATH personnalisés, tenez compte des éléments suivants :

  • Utilisez la syntaxe suivante pour identifier les types de valeurs que vous recherchez :

    • Valeurs de texte : placez le texte entre guillemets simples (par exemple, 'Value' ou 'Value with spaces'). Vous pouvez également placer une valeur de texte entre guillemets doubles, mais cela limite les caractères que vous pouvez utiliser pour entourer l’ensemble du filtre OPATH.

    • Variables : placez les variables qui doivent être développées entre guillemets simples (par exemple, '$User'). Si la valeur de la variable elle-même contient des guillemets simples, vous devez identifier (échappement) les guillemets simples pour développer la variable correctement. Par exemple, au lieu de '$User', utilisez '$($User -Replace "'","''")'.

    • Valeurs entières : vous n’avez pas besoin d’inclure des entiers (par exemple, 500). Vous pouvez souvent placer des entiers entre guillemets simples ou guillemets doubles, mais cela limite les caractères que vous pouvez utiliser pour entourer l’ensemble du filtre OPATH.

    • Valeurs système : ne placez pas les valeurs système (par exemple, $true, $falseou $null). Pour placer l’ensemble du filtre OPATH entre guillemets doubles, vous devez échapper la valeur système de connexion dollar (par exemple, `$true).

  • Vous devez placer l’ensemble du filtre OPATH entre guillemets doubles « » ou guillemets simples . Bien que tout objet de filtre OPATH soit techniquement une chaîne et non un bloc de script, vous pouvez toujours utiliser des accolades { }, mais uniquement si le filtre ne contient pas de variables qui nécessitent une extension. Les caractères que vous pouvez utiliser pour entourer l’ensemble du filtre OPATH dépendent des types de valeurs que vous recherchez et des caractères que vous avez utilisés (ou non utilisés) pour inclure ces valeurs :

    • Valeurs de texte : dépend de la façon dont vous avez inclus le texte à rechercher :

      • Texte placé entre guillemets simples : placez l’ensemble du filtre OPATH entre guillemets doubles ou accolades.
      • Texte placé entre guillemets doubles : placez l’ensemble du filtre OPATH entre accolades.
    • Variables : placez l’ensemble du filtre OPATH entre guillemets doubles (par exemple, "Name -eq '$User'").

    • Valeurs entières : dépend de la façon dont vous avez inclus (ou n’avez pas englobant) l’entier à rechercher :

      • Entier non entouré : placez l’ensemble du filtre OPATH entre guillemets doubles, guillemets simples ou accolades (par exemple "CountryCode -eq 840").
      • Entier placé entre guillemets simples : placez l’ensemble du filtre OPATH entre guillemets "CountryCode -eq '840'"doubles ou accolades.
      • Entier placé entre guillemets doubles : placez l’ensemble du filtre OPATH entre accolades (par exemple {CountryCode -eq "840"}).
    • Valeurs système : placez l’ensemble du filtre OPATH entre guillemets simples ou accolades (par exemple 'HiddenFromAddressListsEnabled -eq $true'). Si vous échappez la valeur système de signe dollar, vous pouvez également placer l’ensemble du filtre OPATH entre guillemets doubles (par exemple, "HiddenFromAddressListsEnabled -eq `$true").

    La compatibilité des critères de recherche et les caractères valides que vous pouvez utiliser pour inclure l’ensemble du filtre OPATH sont résumés dans le tableau suivant :

    Valeur de recherche Filtre OPATH
    entre les deux
    guillemets doubles
    Filtre OPATH
    entre les deux
    guillemets simples
    Filtre OPATH placé dans
    Accolades
    'Text'
    "Text"
    '$Variable'
    500
    '500'
    "500"
    $true
    `$true
  • Incluez le trait d’union avant tous les opérateurs logiques ou de comparaison. Les opérateurs les plus courants sont notamment les suivants :

    • -and
    • -or
    • -not
    • -eq (égal à)
    • -ne (n’est pas égal)
    • -lt (inférieur à)
    • -gt (supérieur à)
    • -like (comparaison de chaînes)
    • -notlike (comparaison de chaînes)
  • De nombreuses propriétés filtrables acceptent des caractères génériques. Si vous utilisez un caractère générique, optez pour l'opérateur -like plutôt que l'opérateur -eq. Utilisez l’opérateur -like pour rechercher des correspondances de modèle dans des types riches (par exemple, des chaînes). Utilisez l’opérateur -eq pour rechercher une correspondance exacte.

    Lorsque vous utilisez l’opérateur -like dans Exchange Online PowerShell, le caractère générique est pris en charge uniquement en tant que suffixe dans la plupart des paramètres. Par exemple, "Department -like 'sales*'" est autorisé, mais "Department -like '*sales'" n’est pas autorisé.

    Conseil

    Même si un préfixe générique fonctionne dans un paramètre de filtre dans Exchange Online PowerShell, nous vous déconseillons de l’utiliser en raison de problèmes de performances faibles.

  • Pour plus d’informations sur les opérateurs que vous pouvez utiliser, consultez :

Documentation du filtrage des destinataires

Le tableau suivant contient des liens vers des articles pour vous aider à en savoir plus sur les propriétés filtrables que vous pouvez utiliser avec les commandes de destinataire Exchange.

Article Description
Propriétés filtrables pour le paramètre RecipientFilter sur les applets de commande Exchange En savoir plus sur les propriétés filtrables disponibles pour le paramètre RecipientFilter .
Propriétés filtrables pour le paramètre Filter sur les applets de commande Exchange En savoir plus sur les propriétés filtrables disponibles pour le paramètre Filter .
Filtres dans le module PowerShell Exchange Online Découvrez les considérations relatives aux filtres dans les neuf applets de commande Get-EXO* exclusives dans le module PowerShell Exchange Online.