Как я уже писал ранее, Exchange 2007 для фильтрации использует OPATH-синтаксис. Это нововведение значительно упростило процесс создания критериев для наполнения адресных списков. Для работы с существующими адресными списками Exchange предлагает 3 командлета – Get-AddressList, Set-AddressList и Update-AddressList. Первый выводит информацию о существующем/существующих адресных списках, второй – обновляет критерии создания адресных списков, третий – обновляет сами адресные списки.
Рассмотрим простейший случай. Отредактируем адресный список TempAL так, чтобы в нём были только пользователи с почтовыми ящиками, у которых в поле Company стоит MyCompany. Выглядеть это будет следующим образом:
Set-AddressList "TempAL" -IncludedRecipients MailboxUsers -ConditionalCompany "MyCompany" Update-AddressList "TempAL"
Командлет Set-AddressList позволяет фильтровать таким образом по следующим полям: Company, Department, State и Province. Что делать если нам нужно фильтровать по другим полям и/или выбрать несколько типов получателей? В таком случае используется ключ -RecipientFilter, а не -IncludedRecipient. Например, если нам нужно создать адресный список из пользователей с почтовыми ящиками и контактов, у которых в поле Office стоит MainOffice или в поле Company стоит MyCompany, то команда для формирования такого списка будет выглядеть следующим образом:
Set-AddressList "TempAL" -RecipientFilter { ((Company -eq 'MyCompany') -or (Office -eq 'MainOffice')) -and ((RecipientType -eq 'UserMailbox') -or (RecipientType -eq 'MailContact')) } Update-AddressList
Таким образом, мы можем создавать достаточно сложные фильтры для применения в адресных списках. При этом логика создания такого фильтра достаточно ясна и выглядит проще чем при создании LDAP-фильтра. Более подробно о свойствах для ключа -RecipientFilter можно посмотреть здесь.