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

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

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

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

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

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

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

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

  • Включенныеrecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1 to ConditionalCustomAttribute15.

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

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

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

  • Из какого подразделения вы хотите включить получателей (параметр RecipientContainer )?

    Примечание.

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

  • Какие типы получателей необходимо включить (параметр IncludeRecipients )?

  • Какие дополнительные условия необходимо включить в фильтр (параметры 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. Синтаксис этого примера подобен, но не идентичен синтаксису, используемому для создания политики адресов электронной почты и обычного или глобального списка адресов.

В этом примере используются настраиваемые фильтры для создания динамической группы рассылки со следующими свойствами:

  • Имя: AllContosoNorth.
  • Типы получателей: почтовые ящики пользователей.
  • Расположение получателя: подразделение с именем Contoso.com/Users.
  • Фильтры Включите только получателей, у которых атрибут Company определен как Contoso, и атрибут Office , определенный как North Building.
New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientTypeDetails -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, в котором текст содержит фразу "перспектива компании". Если эта фраза найдена, команда экспортирует все сообщения с этой фразой в 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 Online PowerShell, мы не рекомендуем использовать его из-за проблем с низкой производительностью.

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

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

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

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