Фильтры получателей для командах Exchange PowerShell

Командлеты в командной консоли Exchange и Exchange Online PowerShell поддерживают различные фильтры в командлетах, связанных с получателями:

  • Предустановленные фильтры
  • Пользовательские фильтры с использованием параметра RecipientFilter
  • Пользовательские фильтры с использованием параметра Filter
  • настраиваемые фильтры, использующие параметр ContentFilter.

В более поздних версиях Exchange использовался синтаксис фильтрации LDAP для создания настраиваемых списков адресов, глобальных списков адресов, групп рассылки и политик электронных адресов. Синтаксис фильтрации OPATH заменил синтаксис фильтрации LDAP, начиная с Exchange Server 2007 г.

Предустановленные фильтры

Предварительно подготовленный фильтр — это часто используемый фильтр Exchange, который можно использовать для выполнения различных критериев фильтрации получателей для создания динамических групп рассылки, политик адресов электронной почты, списков адресов или общедоступных адресов. С предварительно подготовленными фильтрами можно использовать Exchange PowerShell или Центр администрирования Exchange (EAC). Предустановленные фильтры позволяют выполнить следующие операции.

  • Определение области получателей.
  • Добавление условной фильтрации на основе таких свойств, как компания, отдел и область или регион.
  • Добавление настраиваемых атрибутов для получателей. Дополнительные сведения см. в статье Custom Attributes.

Следующие параметры считаются предустановленными фильтрами.

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

Предустановленные фильтры доступны для следующих командлетов:

Пример предварительного фильтра

В этом примере описывается использование предварительно подготовленных фильтров в командной консоли Exchange для создания динамической группы рассылки. Синтаксис задействованных в примере команд подобен синтаксису, который используется для создания политики электронных адресов и обычного или глобального списка адресов, но не идентичен ему. При создании заранее подготовленного фильтра необходимо ответить на указанные ниже вопросы.

  • Получателей из какого подразделения требуется включить в список? (Этот вопрос относится к параметру RecipientContainer).

    Примечание

    Выбор подразделения для этих целей применимо только при создании динамических групп рассылки, а не для политик адресов электронной почты, обычных и глобальных списков адресов.

  • Какой тип получателей требуется включить? (Этот вопрос относится к параметру IncludedRecipients).

  • Какие дополнительные условия требуется включить в фильтр? (Этот вопрос относится к параметрам ConditionalCompany, ConditionalDepartment, ConditionalStateOrProvince и ConditionalCustomAttribute).

В этом примере создается динамическая группа распределения Contoso Finance для почтовых ящиков пользователей подразделения Contoso.com/Users, а также указывается условие для включения только пользователей, атрибут Department которых равен Finance, а атрибут Company равен Contoso.

New-DynamicDistributionGroup -Name "Contoso Finance" -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso"

В этом примере отображаются свойства новой динамической группы рассылки.

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

Настраиваемые фильтры, использующие параметр RecipientFilter

Если предустановленные фильтры не соответствуют требованиям к созданию или изменению динамических групп рассылки, политик адресов электронной почты и списков адресов, можно создать настраиваемый фильтр с помощью параметра RecipientFilter.

Параметр фильтра получателей доступен для следующих командлетов:

Дополнительные сведения о фильтруемых свойствах, которые можно использовать с параметром RecipientFilter , см. в разделе "Фильтруемые свойства" для параметра RecipientFilter.

Пример пользовательского фильтра

Для создания динамической группы рассылки в следующем примере используется параметр RecipientFilter. Синтаксис этого примера подобен, но не идентичен синтаксису, используемому для создания политики адресов электронной почты и обычного или глобального списка адресов.

В этом примере настраиваемые фильтры используются для создания динамической группы рассылки пользовательских почтовых ящиков со значением атрибута Company, равным Contoso, и значением атрибута Office, равным North Building.

New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientType -eq 'UserMailbox') -and (Company -eq 'Contoso') -and (Office -eq 'North Building'))"

Настраиваемые фильтры, использующие параметр Filter

Параметр Filter используется для фильтрации результатов команды и указания получаемых объектов. Например, вместо извлечения информации обо всех пользователях или группах с помощью строки фильтра можно выделить сведения о некотором наборе пользователей или групп. Этот тип фильтра не изменяет конфигурацию или атрибуты объектов. Он только изменяет набор объектов, данные о которых возвращает команда.

Использование параметра Filter для изменения результатов команд называется фильтрацией на стороне сервера. В случае фильтрации на стороне сервера команда или фильтр обрабатываются на сервере. Мы также поддерживаем фильтрацию на стороне клиента, в которой команда извлекает все объекты с сервера, а затем применяет фильтр в окне локальной консоли. Для выполнения фильтрации на стороне клиента используйте командлет Where-Object. Дополнительные сведения о фильтрации на стороне сервера и клиента см. раздел "Фильтрация данных" статьи Working with Command Output.

Чтобы найти фильтруемые свойства для командлетов с параметром Filter, можно запустить команду Get для объекта и отформатировать вывод путем передачи по конвейеру параметра Format-List. Большинство возвращенных значений будут доступны для использования в параметре Filter. Следующий пример возвращает подробный список почтового ящика пользователя Ayla.

Get-Mailbox -Identity Ayla | Format-List

Параметр Filter доступен для следующих командлетов получателей:

Дополнительные сведения о фильтруемых свойствах, которые можно использовать с параметром Filter , см. в разделе " Фильтруемые свойства" для параметра Filter.

Пример

В этом примере параметр Filter используется для возврата сведения о пользователях, должность которых содержит слово manager.

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

Настраиваемые фильтры, использующие параметр ContentFilter

Параметр ContentFilter позволяет выбрать определенное содержимое сообщения для экспорта при использовании командлета New-MailboxExportRequest. При обнаружении сообщения, соответствующего фильтру содержимого, оно экспортируется в PST-файл.

Пример параметра ContentFilter

В этом примере создается запрос на экспорт, который выполняет в почтовом ящике пользователя Ayla поиск сообщений, тело которых содержит фразу company prospectus. Если фраза найдена, то команда экспортирует все файлы с этой фразой в PST-файл.

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

Дополнительные сведения о фильтруемых свойствах, которые можно использовать с параметром ContentFilter , см. в разделе "Фильтруемые свойства" для параметра ContentFilter.

Дополнительные сведения о синтаксисе OPATH

При создании собственных настраиваемых фильтров OPath учитывайте следующие моменты:

  • Используйте следующий синтаксис, чтобы определить типы значений, которые вы ищете:

    • Текстовые значения: заключите текст в одинарные кавычки (например, 'Value' или 'Value with spaces'). Кроме того, текстовое значение можно заключить в двойные кавычки, но это ограничивает количество символов, которые можно использовать для заключения всего фильтра OPath.

    • Переменные: заключите переменные, которые необходимо развернуть в одинарные кавычки (например, '$User'). Если значение переменной содержит одинарные кавычки, необходимо определить (экранировать) одинарные кавычки, чтобы правильно развернуть переменную. Например, вместо '$User' используйте '$($User -Replace "'","''")'.

    • Целочисленные значения: не нужно заключать целые числа (например, 500). Целые числа часто можно заключать в одинарные кавычки или двойные кавычки, но это ограничивает символы, которые можно использовать для заключения всего фильтра OPath.

    • Системные значения: не заключайте системные значения (например, $trueили $false).$null Чтобы заключить весь фильтр OPath в двойные кавычки, необходимо экранировать системное значение входа в долларах (например, `$true).

  • Необходимо заключить весь фильтр OPath в двойные кавычки или "одинарные кавычки" ". Хотя любой объект фильтра OPath технически является строкой, а не блоком скрипта, вы по-прежнему можете использовать фигурные скобки { }, но только в том случае, если фильтр не содержит переменные, которые требуют расширения. Символы, которые можно использовать для заключения всего фильтра OPath, зависят от типов значений, которые вы ищете, и от символов, которые вы использовали (или не использовали) для заключения этих значений:

    • Текстовые значения: зависит от того, как вы заключали текст для поиска:

      • Текст, заключенный в одинарные кавычки: заключите весь фильтр OPath в двойные кавычки или фигурные скобки.
      • Текст, заключенный в двойные кавычки: заключите весь фильтр OPath в фигурные скобки.
    • Переменные: заключите весь фильтр OPath в двойные кавычки (например, "Name -eq '$User'").

    • Целочисленные значения: зависит от того, как вы заключали (или не заключали) целое число для поиска:

      • Целое число не заключено: заключите весь фильтр OPath в двойные кавычки, одинарные кавычки или фигурные скобки (например)."CountryCode -eq 840"
      • Целое число, заключенное в одинарные кавычки: заключите весь фильтр OPath в двойные кавычки или фигурные скобки "CountryCode -eq '840'".
      • Целое число, заключенное в двойные кавычки: заключите весь фильтр OPath в фигурные скобки (например).{CountryCode -eq "840"}
    • Системные значения: заключите весь фильтр OPath в одинарные кавычки или фигурные скобки (например).'HiddenFromAddressListsEnabled -eq $true' Если экранировать значение системы знака доллара, можно также заключить весь фильтр OPath в двойные кавычки (например, "HiddenFromAddressListsEnabled -eq `$true").

    Совместимость условий поиска и допустимых символов, которые можно использовать для заключения всего фильтра OPath, приведена в следующей таблице:



Значение поиска Фильтр OPath
заключено в
двойные кавычки
Фильтр OPath
заключено в
одинарные кавычки
Фильтр OPath, заключенный в
Брекеты
'Text' Флажок. Флажок.
"Text" Флажок.
'$Variable' Флажок.
500 Флажок. Флажок. Флажок.
'500' Флажок. Галочка
"500" Галочка
$true Галочка. Галочка
`$true Галочка. Галочка Галочка
  • Включите дефис перед всеми логическими операторами или операторами сравнения. Наиболее распространенные операторы:

    • -and
    • -or
    • -not
    • -eq (равно)
    • -ne (не равно)
    • -lt (меньше)
    • -gt (больше)
    • -like (сравнение строк)
    • -notlike (сравнение строк)
  • Многие фильтруемые свойства принимают подстановочные знаки. При использовании подстановочных знаков применяйте оператор -like вместо оператора -eq. Используйте оператор -like для поиска совпадений шаблонов в форматированных типах (например, строках). Используйте оператор -eq , чтобы найти точное совпадение.

    При использовании оператора -like в Exchange Online PowerShell подстановочный знак поддерживается только в виде суффикса. Например, разрешено "Department -like 'sales*'" ; "Department -like '*sales'" запрещено.

  • Дополнительные сведения об операторах, которые можно использовать, см. в следующих статьях:

Документация фильтра получателей

В следующей таблице приведены ссылки на статьи, которые помогут вам узнать больше о фильтруемых свойствах, которые можно использовать с командами получателей Exchange.

Статья Описание
Фильтруемые свойства для параметра RecipientFilter в командлетах Exchange Дополнительные сведения о фильтруемых свойствах, доступных для параметра RecipientFilter .
Фильтруемые свойства для параметра Filter в командлетах Exchange Дополнительные сведения о фильтруемых свойствах, доступных для параметра Filter .
Фильтры в Exchange Online PowerShell Сведения о рекомендациях по фильтрации в девяти эксклюзивных командлетах Get-EXO* в Exchange Online PowerShell.