В Exchange 2007 изменился способ формирования фильтров по которым строятся/применяются адресные политики и адресные списки. В связи с этим необходимо обновить все адресные политики и списки адресов для того, чтобы Exchange 2007 мог с ними работать. В противном случае при попытке получить доступ к этим объектам через EMC мы увидим следующую картинку:
По умолчанию, в организации Exchange создаются следующие объекты, которые мы должны обновить: Default Policy, All Users, All Groups, All Contacts, Public Folders и Default Global Address List. Первый объект является адресной политикой, остальные – адресными списками. Фильтры используемые для их построения являются стандартными и проблем при их обновлении возникнуть не должно. Обновление выполняется следующим набором команд:
Set-EmailAddressPolicy "Default Policy" -IncludedRecipients AllRecipients Set-AddressList "All Users" -IncludedRecipients MailboxUsers Set-AddressList "All Groups" -IncludedRecipients MailGroups Set-AddressList "All Contacts" -IncludedRecipients MailContacts Set-AddressList "Public Folders" -RecipientFilter { RecipientType -eq 'PublicFolder' } Set-GlobalAddressList "Default Global Address List" -RecipientFilter {(Alias -ne $null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'contact' -or ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -or ObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder'))}
Далее, необходимо обновить нестандарные адресные политики и списки, которые создавались вручную и могут использовать произвольно составленные фильтры. Теоретически, можно попробовать вручную конвертировать фильтры используемые в Exchange 2003 (LDAP) в фильтры Exrchangw 2007 (OLAP). Более подробно процесс описан в блоге одного из членов продуктовой команды Exchange. Но есть более простой способ – использование утилиты конвертации LDAP в OLAP фильтры. Саму утилиту можно взять здесь. Утилита представляет из себя обычный PoSh-скрипт. С его помощью обновление произвольного списка адресов выглядит следующим образом:
Set-AddressList "My Address List" -RecipientFilter ( .ConvertFrom-LdapFilter (Get-AddressList "My Address List").LdapRecipientFilter )
где My Address List – имя адресного списка, который мы обновляем, а ConvertFrom-LdapFiletr.ps1 – имя скрипта, доступного по ссылке выше. По аналогии делается обновление произвольной адресной политики:
Set-EmailAddressPolicy "Custom Policy" -RecipientFilter ( .ConvertFrom-LdapFilter (Get-EmailAddressPolicy "Custom Policy").LdapRecipientFilter )
Так же следует иметь ввиду, что после подобного преобразования все изменённые объекты будут недоступны для редактирования из консоли управления Exchange 2003. Впрочем, в случае миграции почтовой организации на Exchange 2007 это становится маловажным.