Filtres de destinataires dans les commandes Exchange PowerShell

Les applets de commande dans Exchange Management Shell et Exchange Online PowerShell prennent en charge divers filtres dans les applets de commande liées aux destinataires :

  • Filtres prédéfinis
  • Filtres personnalisés utilisant le 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 est un filtre Exchange couramment utilisé que vous pouvez utiliser pour répondre à divers critères de filtrage de destinataires pour créer des groupes de distribution dynamiques, des stratégies d’adresse de messagerie, des listes d’adresses ou des listes de disponibilité générale. Avec les filtres précannés, vous pouvez utiliser Exchange PowerShell ou le Centre d’administration Exchange (EAC). Les filtres prédéfinis vous permettent de réaliser les tâches suivantes :

  • Déterminer l’étendue des destinataires.
  • Ajouter un filtrage conditionnel basé sur des propriétés, telles qu’une société, un département, un état ou une 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.

Des filtres prédéfinis sont disponibles pour les cmdlets 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 ? (Cette question correspond au paramètre RecipientContainer.)

    Remarque

    La sélection de l’unité d’organisation à cette fin s’applique uniquement lors de la création de groupes de distribution dynamiques et non lorsque vous créez des stratégies d’adresse de messagerie, des listes d’adresses ou des listes d’adresses globales.

  • Quel type de destinataire voulez-vous inclure ? (Cette question correspond au paramètre IncludedRecipients.)

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

Cet exemple crée le groupe de distribution dynamique Contoso Finance pour les boîtes aux lettres des utilisateurs dans l’unité d’organisation Contoso.com/Users et précise la condition pour y inclure uniquement les destinataires dotés de l’attribut Department défini pour Finance et l’attribut Company pour 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édéfinits ne répondent pas à vos besoins en matière de création ou de modification de groupes de distribution dynamiques, de stratégies d’adresse de messagerie et de listes d’adresses, vous pouvez créer un filtre personnalisé à l’aide du paramètre RecipientFilter .

Le paramètre de filtrage des destinataires est disponible pour les cmdlets 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 pour des boîtes aux lettres d’utilisateurs pour lesquels l’attribut Company est défini en tant que valeur Contoso et l’attribut Office en tant que valeur North Building.

New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientType -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 d’extraire 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 les résultats de la commande est appelée 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 renvoyées seront disponibles en vue d’une utilisation 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

Cet exemple utilise le paramètre Filter pour renvoyer des informations sur les utilisateurs dont le titre de fonction renferme le terme « 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 de l’utilisateur Ayla des messages dont le corps contient l’expression « company prospectus ». Si l’expression est trouvée, la commande exporte tous les messages qui en sont dotés vers 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 qu’un 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 entouré) 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' Coche. Marque de vérification.
"Text" Coche.
'$Variable' Coche.
500 Coche. Coche. Coche.
'500' Marque de vérification. Coche
"500" Coche
$true Coche. Coche
`$true Coche. Coche Coche
  • 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. Par exemple, "Department -like 'sales*'" est autorisé ; "Department -like '*sales'" n’est pas autorisé.

  • 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 qui vous aideront à 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.