Тони Редмонд (exchguru@windowsitpro.com) — редактор журнала Windows IT Pro, старший технический редактор Exchange & Outlook Administrator, вице-президент и главный технолог HP Services
Если вы просмотрите статью Microsoft, посвященную новым возможностям системы Microsoft Exchange Server 2010 SP2 («What's New in Exchange 2010 SP2», technet.microsoft.com/en-us/library/hh529924.aspx), то наверняка обратите внимание на информацию о пяти новых многозначных настраиваемых атрибутах.
Первоначально изготовитель предполагал, что настраиваемые атрибуты будут применяться при работе с хранилищем Exchange Directory Store (DS), поскольку потребители не имели возможности модифицировать это хранилище. Дело в том, что разные организации предъявляли к данному каталогу различные требования, и включение в комплект поставки набора настраиваемых атрибутов представлялось вполне обоснованным решением. Кроме того, в то время, когда Microsoft готовила к выпуску Exchange, необходимо было, чтобы новый продукт обладал теми же функциональными возможностями, что и конкурирующие продукты, такие, как разработанная специалистами Digital Equipment система ALL-IN-1 Office — кстати, первый почтовый сервер, позволявший работать с настраиваемыми атрибутами в своем каталоге.
С появлением службы Active Directory (AD) проблема утратила остроту: в новой службе был реализован механизм, с помощью которого потребители могли расширять схему AD, дополняя ее объектами и атрибутами. Однако на практике компаний, которые пошли на расширение AD, оказалось немного. Предприниматели не хотят рисковать, опасаясь, что вследствие тех или иных изменений, которые могут быть внесены в продукт изготовителем, их расширения окажутся непригодными для использования в будущих версиях Windows. Таким образом, настраиваемые атрибуты сегодня так же полезны, как и 16 лет назад, — несмотря на то, что технологическая среда за это время претерпела радикальные изменения.
Давным-давно…
На экране 1 представлена первая версия настраиваемых атрибутов, реализованная в продукте Exchange Server 4.0. Разумеется, 16 лет назад служба AD была еще только смутной идеей в головах разработчиков, а система Exchange уже комплектовалась собственным хранилищем DS. Это хранилище было построено в соответствии с международным стандартом X.500. В дальнейшем оно использовалось в качестве основы для реализации AD в системе Windows 2000.
Экран 1. Настраиваемые атрибуты, реализованные в?версии Exchange Server 4.0 |
Как вы можете убедиться, согласно первоначальному замыслу разработчиков Exchange, администраторы могли применять до 10 настраиваемых атрибутов в расчете на один почтовый ящик. Это ограничение, введенное в версии Exchange 4.0, просуществовало до выхода версии Exchange 5.5. Когда же в системе Exchange Server 2000 была реализована служба AD, максимально возможное число настраиваемых атрибутов было увеличено до 15. Чтобы эта служба могла функционировать в среде Exchange, в схему AD требовалось внести ряд обновлений, в том числе добавить необходимые настраиваемые атрибуты. Последние представляют собой простые текстовые поля, каждое из которых может содержать до 1024 знаков. Все версии Exchange, начиная с Exchange 2000 (к ним относится и версия Exchange Online в том виде, в каком она включена в состав бизнес-платформы Microsoft Office 365), дают возможность задействовать единый набор из 15 атрибутов для почтовых ящиков, групп рассылки (Distribution Group, DG, в том числе динамических DG), учетных записей пользователей с включенной поддержкой почты, а также контактов. Текущая версия Exchange Online из комплекта Office 365 также обеспечивает возможность использования новых многозначных атрибутов.
Множество случаев применения
За прошедшие годы администраторы предложили большое число достойных внимания методов использования настраиваемых атрибутов. В частности, к ним относятся следующие.
-Хранение информации о пользователях, характерной для той или иной организации, скажем, номера пропусков или коды местонахождения.
-Хранение других важных сведений, имеющих отношение к пользователям. Номера социального страхования и иные данные, применяемые для идентификации человека в системе государственного налогообложения, мало подходят для этой цели: данные такого рода следует защищать надлежащим образом и не предоставлять в распоряжение администраторов Exchange. В некоторых компаниях эти атрибуты используются для классификации служащих, которые могут входить в категорию менеджеров или в иные категории сотрудников, тогда как в других организациях эти атрибуты применяются для хранения сведений о профессиональной подготовке персонала.
-Хранение информации, используемой для подключения Exchange и прочих приложений. Номера пропусков, как и другие идентификаторы служащих, часто применяются для установления связи между Exchange и другими приложениями (скажем, с системами для работы с персоналом) и вводятся в процессе настройки почтового ящика для нового сотрудника.
Все эти данные в сущности относятся к категории однозначных; как правило, они обновляются посредством записи нового значения поверх предыдущего.
Обращение к настраиваемым атрибутам
До тех пор, когда в системе Exchange Server 2007 не была реализована оболочка PowerShell, администраторы чаще всего обращались к настраиваемым атрибутам с помощью консоли Exchange Management Console (EMC) или ее предшественницы. Кроме того, самые отчаянные храбрецы из числа администраторов могли манипулировать настраиваемыми атрибутами так же, как и любыми другими данными AD, — с помощью ориентированных на работу с каталогами утилит, таких как LDP или ADSIEdit (экран 2).
Экран 2. Настраиваемые атрибуты, отображаемые в?оснастке ADSIEdit |
С появлением на рынке систем Exchange 2010 или Exchange 2007 EMC мы можем задействовать другой механизм просмотра настраиваемых атрибутов объектов, предполагающий выбор того или иного объекта, просмотр его свойств и, наконец, отображение на мониторе после нажатия кнопки Custom Attributes (экран 3).
Экран 3. Просмотр настраиваемых атрибутов с помощью консоли управления Exchange Server 2010 EMC |
Возможности настраиваемых атрибутов расширяются при использовании командной консоли Exchange Management Shell (EMS), которая упрощает процедуры группирования и фильтрации объектов с помощью упомянутых атрибутов. Кроме того, EMS — единственный механизм, посредством которого администраторы Office 365 могут обращаться к настраиваемым атрибутам, поскольку панель управления Exchange Control Panel (ECP) на сегодня не дает возможности просматривать или модифицировать настраиваемые атрибуты.
Когда для обращения к почтовым ящикам, группам и контактам используется консоль EMS, настраиваемые атрибуты отображаются как CustomAttribute1 и далее до CustomAttribute15. Поэтому чтобы получить информацию о значении всех настраиваемых атрибутов для моего почтового ящика, я могу запустить следующую команду:
Get-Mailbox -Identity «Tony Redmond» | Format-List CustomAttribute*
Рассмотрим более содержательный пример. Допустим, нам требуется получить данные обо всех служащих, имеющих квалификацию MCSE. Условимся, что аккредитации Microsoft будут храниться в атрибуте CustomAttribute15 и что после успешной сдачи экзаменов обладателями сертификатов кто-то из служащих надлежащим образом обновил почтовые ящики с данными по сертификации Microsoft Certified Systems Engineer (MCSE). Чтобы найти все такие ящики, мы можем запустить следующую команду:
Get-Mailbox -Filter {CustomAttribute15 -eq «MCSE"}
Разумеется, возможность выделять группу объектов с помощью одной команды заметно облегчает дело, поскольку обеспечивает предпосылки для дальнейшей обработки этой группы как единого целого — например, для создания отчета об этих объектах. Так, располагая набором объектов "почтовый ящик», у которых в атрибуте CustomAttribute15 хранятся данные о сертификатах MCSE, я могу создать отчет с перечнем всех имен сотрудников организации, имеющих квалификацию MCSE.
Что нового в системе Exchange Server 2010 SP2
Во многих ситуациях настраиваемые атрибуты оказывают администраторам поистине неоценимые услуги. Но каждый из атрибутов может принимать лишь одно значение, и это обстоятельство сужает круг его возможностей. К примеру, сказав, что сотрудник обладает сертификатом MCSE, мы не даем достаточного представления о его квалификации: ведь человек может быть сертифицированным специалистом по многим технологиям Microsoft. Наверное, есть смысл сохранять такие значения, как «Exchange», «SQL», «Windows» и т.д. И эта возможность была реализована в текущих настраиваемых атрибутах, но добавление нового значения к существующему списку программным путем было связано с определенными сложностями: пользователь должен был взять имеющийся список, добавить в него новое значение, а затем ввести новый список в настраиваемый атрибут.
Специалисты Microsoft предложили другое решение — набор из пяти новых атрибутов, способных принимать по несколько значений. Эти атрибуты включены в расширение схемы AD, которое необходимо установить до начала развертывания системы Exchange 2010 SP2. Пользовательский интерфейс консоли EMC не обновлялся и потому не может отображать новые атрибуты, так что обратиться к ним можно лишь одним способом — через командную консоль EMS. На экране 4 показано, каким образом отображаются новые атрибуты, включенные в список EMS наряду с другими атрибутами почтовых ящиков.
Экран 4. Список новых настраиваемых атрибутов для почтового ящика |
Как вы можете убедиться, новые атрибуты именуются ExtensionCustomAttribute1 и далее до ExtensionCustomAttribute5. Каждый атрибут содержит до 1300 значений с разделителями в виде запятых и может использоваться в почтовых ящиках, группах и контактах. Манипуляции со значениями осуществляются с помощью синтаксических конструкций, используемых со времени выпуска версии Exchange 2010 SP1. Более подробную информацию можно найти в блоге Дэвида Строума по адресу blogs.technet.com/b/dstrome/archive/2011/05/29/multivalued-properties-in-exchange-2010.aspx.
Как функционируют новые атрибуты? Рассмотрим этот вопрос на нескольких примерах. Один и тот же код можно использовать как в системе Exchange 2010 SP2, так и в Exchange Online. Кстати говоря, версия Exchange Online обеспечивала поддержку многозначных настраиваемых атрибутов задолго до появления версии Exchange 2010 SP2. Это нововведение было реализовано в рамках проводившейся корпорацией Microsoft кампании по регулярной рассылке инкрементных обновлений для продуктов платформы Office 365.
Первым делом введем в почтовый ящик информацию о наборе технических навыков, коими обладает физическое лицо:
Set-Mailbox -Identity «Tony Redmond» -ExtensionCustom Attribute1 @(«Exchange», «SQL», «Windows 2008», «Windows 7»)
Ах да, я забыл, что данный пользователь является также экспертом по продукту Microsoft IIS. Внесем и это значение:
Set-Mailbox -Identity «Tony Redmond» -ExtensionCustomAttribute1 @{add="IIS"}
*Быстрая проверка показывает, что внесенные нами изменения отображают все ожидаемые значения, как видно из экрана 5.
Экран 5. Заполнение данными многозначных атрибутов |
С другой стороны, если мы решим, что в конечном итоге наш сотрудник не такой уж большой специалист по IIS, то сможем удалить из списка соответствующее значение:
Set-Mailbox -Identity «Tony Redmond» -ExtensionCustomAttribute1 @{Remove="IIS"}
Обратите внимание: мы не обязаны ни указывать положение данного значения в списке, ни извлекать список полностью с последующим его переписыванием. Все проблемы за нас решает PowerShell. Если вам нужно удалить несколько значений, представьте их в виде списка с разделителями-запятыми. Система Exchange не позволяет ни обновлять данные, занимающие в списке определенное место, ни вводить новое значение в указанное место списка, так что если некое значение воспринимается в зависимости от места, которое оно занимает в списке, вам следует писать код в соответствии со старой схемой: сначала извлекается предшествующий список, затем формируется список с новыми данными, помещенными в указанных местах, и, наконец, атрибут обновляется посредством включения в него нового списка значений.
В приведенном выше примере я использовал квалификации MCSE; однако пользователи из сферы бизнеса могут подобным образом применять новые многозначные настраиваемые атрибуты для хранения списков самых различных элементов. К примеру, вы можете задействовать один из атрибутов для хранения номеров заявок, направляемых пользователями, которые хотят известить администрацию о возникновении той или иной проблемы. С этой целью могут применяться такие значения, как Outlook/05-Jan-2012/15154. В данном случае номер заявки — 15154, соответствующая проблема была зарегистрирована с помощью программы Outlook 5 января 2012 года. Разумеется, поставщиками разработано специальное программное обеспечение для отслеживания заявок, так что вам, по всей вероятности, не придется использовать рассматриваемые атрибуты для решения данной проблемы, — я привел этот пример лишь для того, чтобы проиллюстрировать открывающиеся перед вами возможности.
Практическое применение многозначных атрибутов
Вводить данные — это одно дело. А вот организовать их рациональное использование — совсем другое (и гораздо более интересное).
Динамические группы рассылки представляют собой замечательное средство Exchange. Достаточно создать такую группу, а потом уже на ее обслуживание вам, по идее, придется затрачивать гораздо меньше усилий, чем на обслуживание стандартной DG — если, конечно, базовые данные будут сохраняться в каталоге AD. Как следует из названия (динамическая группа рассылки), всякий раз при поступлении в адрес группы того или иного сообщения Exchange динамически разрешает набор получателей, обращаясь к AD. Задача решается с помощью адресованного AD запроса на формирование набора получателей, соответствующих критериям, которые указаны в фильтре получателей. Если содержащиеся в каталоге AD данные точны, динамические группы рассылки функционируют просто превосходно, что позволяет администраторам экономить массу времени. Как правило, добавлять почтовые ящики к спискам получателей групп рассылки необходимости нет.
В следующем примере создается динамическая группа рассылки Exchange Gurus и формируется фильтр получателей, который система Exchange применяет при создании набора получателей:
New-DynamicDistributionGroup -Name «Exchange Gurus» -RecipientFilter {(RecipientType -eq «UserMailbox») -and (ExtensionCustomAttribute1 -like «Exchange»)}
Используемый в данном примере фильтр получателей довольно прост. В сущности этот фильтр представляет собой инструкцию: «Обнаружить почтовые ящики всех пользователей, у которых в атрибуте ExtensionCustom Attribute1 содержится значение Exchange». Фильтры получателей формулируются в формате OPATH и могут быть намного сложнее, чем запрос, использовавшийся в данном примере. Более подробные сведения о том, как формируются используемые в системе Exchange запросы OPATH, можно найти в статье Microsoft «Creating Filters in Recipient Commands» по адресу technet.microsoft.com/en-us/library/bb124268.aspx.
Важно отметить, что Exchange автоматически индексирует данные, содержащиеся в настраиваемых атрибутах, так что запросы к этим атрибутам отличаются весьма высокой эффективностью. Здесь я использую оператор «-like», чтобы запрос улавливал такие значения, как «Exchange» и «exchange». Можете применять оператор «-eq» (он чуть более эффективен, чем «-like»), если вы убеждены, что в процессе внесения данных в AD все администраторы будут использовать то же значение.
Иногда бывает необходимо просмотреть фильтр получателей для динамической группы рассылки, применяемый системой Exchange для поиска в каталоге AD, во всей его полноте. В этом случае мы можем воспользоваться такой командой:
(Get-DynamicDistributionGroup «Exchange Gurus»). RecipientFilter
Недостаток фильтров получателей состоит в том, что администратор никогда не может с полной уверенностью сказать, какой именно набор получателей будет разрешен после того, как Exchange направит запрос каталогу AD. К счастью, организовать проверку относительно просто. Сначала нужно поместить фильтр получателей в переменную и далее передать его в составную команду Get-Recipient. Это даст возможность увидеть, какие данные возвратит Exchange, как показывает следующая команда:
$Set = Get-DynamicDistributionGroup -Identity «Exchange Gurus» Get-Recipient -RecipientPreviewFilter $Set. RecipientFilter
На экране 6 представлен результат выполнения этой команды. Как видите, мы обнаружили двух хорошо известных специалистов по Exchange, которые охотно причисляют себя к категории гуру.
Экран 6. Проверка фильтра получателей для?динамической группы рассылки |
Динамическая рассылка для экономии времени
С тех пор, как настраиваемые атрибуты были включены в состав системы Exchange, прошло очень много времени. Благодаря изменениям, реализованным в версии Exchange 2010 SP2, управлять настраиваемыми атрибутами стало несколько легче, и они превратились в более эффективные репозитории данных, которые необходимо ассоциировать с почтовыми ящиками. Но еще важнее другое обстоятельство: используя новые настраиваемые атрибуты в качестве основы для создания динамических групп рассылки, администраторы могут получить выигрыш во времени.