В Exchange 2007/2010 некоторые свойства объектов являются многозначными. То есть, фактически представляют из себя массив. Самый простой пример – набор smtp-адресов почтового ящика.

[PS] C:Windowssystem32>Get-Mailbox Stas | fl Name,EmailAddresses

Name: Stas
EmailAddresses: {smtp:st@buldakov.ru, SMTP:stas@buldakov.ru}

Сегодня с Олегом Крыловым пытались вывести в csv-файл похожий объект. Изначально задача стояла такая – нужно вывести разрешения AD на коннектор получения в csv-файл. Для начала через Get-ReceiveConnector получаем сам объект-коннектор, затем смотрим права на него через Get-ADPermissions. Получается примерно следующее:

Столбец Rights – то что нам необходимо. Пытаемся его перенаправить прямо в Export-Csv. Получается следующий файл:

Немного не то, что мы ожидали. Вместо самого значения свойства в csv-файл ушёл его тип. Давайте попробуем посмотреть, почему так произошло. Для этого посмотрим что это за объекты:

Сразу видно, что нужные нам свойства (AccessRights и ExtendedRights) являются многозначными. Возникает вопрос – как их корректно вывести в csv-файл? Верный ответ удалось подсмотреть здесь. Итого команда получается следующая:

Get-ReceiveConnector "EVLAB-EXDefault EVLAB-EX" | Get-ADPermission |
Select User,
@{Name='AccessRights';Expression={[string]::join(";",($_.AccessRights))}},
@{Name='ExtendedRights';Expression={[string]::join(";",($_.ExtendedRights))}} |
Export-Csv c:exp.txt

На выходе имеем следующий файл:

Ура!

Ни разу не писал про процесс обновления Enterprise Vault. Исправляю это упущение, благо процесс этот пошагово в подробностях расписан в документе Upgrade_Instructions.chm, идущем в комплекте с каждым новым дистрибутивом.

Подготовка

Подготовка к обновлению:

  • Если необходимо, меняем модель восстановления всех баз EV на Simple
  • Делаем резервное копирование всех баз и хранилищ
  • Устанавливаем и запускаем Deplyment Scanner из нового дистрибутива
  • Если необходимо, меняем права доступа для служебной учётки EV (из под неё будет проходить обновление баз – необходимо будет назначить её владельцем)
  • Подготовка к изменениям в службе индексирования

Необходимо будет убедиться, что кэш для службы индексирования настроен. Делается это через свойства сервера EV. На закладке Cache находятся настройки кэша для службы индексирования. Continue Reading »

На днях официально вышел Exchange 2010 SP2. Автоматическое перенаправление OWA между сайтов – одна из интересных функций реализованных в его составе. Что из себя представляет? Если у нас имеется многосайтовая почтовая организация, то в случае, если сотрудник из одного сайта пытается полключаться к OWA через другой сайт, то возможны были 2 варианта – перенаправление и проксирование запроса. В случае с перенаправлением сотрудник получал ссылку на адрес нужного ему CAS-сервера, через который он должен был входить.

После установки SP2 такой запрос автоматически перенаправляется на нужный CAS-сервер, при этом сотрудник не должен второй раз вводить свои учётные данные – он будет автоматически перенаправлен в свой ящик. Фактически это поведение описывает SSO (Single Sign-On) в случае использования многосайтовой конфигурации.

Для настройки используется ключ -CrossSiteRedirectType командлета Set-OWAVirtualDirectory. По умолчанию этот параметр выставлен в Manual. Доступны следующие его значения:

  • Manual. Поведение по умолчанию, описанное выше. То есть пользователь получит ссылку на нужный ему CAS-сервер
  • Silent. Новое поведение, включающее механизм SSO. Если используется FBA – необходимо использовать SSL.

Полный список новшеств можно посмотреть здесь.

В Exchange 2007/2010 для работы с переговорными комнатами появился специальный тип объектов. По большому счёту, он является разновидностью обычного почтового ящика. После того как для всех переговорных комнат созданы эти объекты возникает вопрос каким образом пользователи могут просматривать занята переговорная комната или нет? Эту информацию выводит помощник по планированию, который не даст забронировать переговорку, если там уже что-то запланировано (это поведение можно изменить).

Помощник по планированию предоставляет информацию о занятости переговорной комнаты в не очень нагляном виде. Гораздо удобнее подключить календарь комнаты и посмотреть на какое время у переговорной комнаты назначены встречи. Но для этого необходимо будет в явном виде предоставить права доступа к календарю переговорной комнаты. Для этого можно использовать командлет Add-MailboxFolderPermission. Более того, для календаря специально можно задать группы разрешений – AvailabilityOnly и LimitedDetails. Первая группа прав позволяет в календаре просматривать только информацию о занятости комнаты, вторая – кроме этого позволяет видеть заголовки совещаний. Каждому календарю делать права доступа долго. Интереснее было бы попробовать права назначить сразу всем. С помощью Васи Гусева получился такой небольшой скрипт:

$MBX = Get-Mailbox -RecipientTypeDetails RoomMailbox
$MBX | ForEach {Add-MailboxFolderPermission -Identity ($_.Alias + ":Calendar")
-AccessRights LimitedDetails -User Default}

Илья Сазонов скинул ссылку на решение задачи в одну строку:

ForEach ($Mailbox in (Get-Mailbox -RecipientTypeDetails RoomMailbox))
{ Add-MailboxFolderPermission -Identity "$($Mailbox.Name):Calendar"
-AccessRights LimitedDetails -User Default }

Как-то так.