Echange 2010 SP2 вышел уже почти 2 месяца как. Со времени его выпуска наткнулись на один неприятный баг. Нашли как его обходить. Так что можно приступать и к обновлению.

Порядок обновления ролей в сайте следующий:

  1. CAS
  2. Hub Transport
  3. UM
  4. Mailbox

При обновлении используется setup.com /M:Upgrade /InstallWindowsComponents или графический режим. В процессе обновления предыдущая установка удаляется и заново ставится Exchahge 2010 SP2. Настройки подтягиваются из AD. Предварительно, при первом запуске процедуры обновления запускается мастер, обновляющий схему. Нужно помнить, что учётная запись, от имени которой происходит обновление схемы должна быть в группах Schema Admins и Enterprise Admins. Continue Reading »


Ранее я уже писал о том, что обещали в официальных пресс-релизах по поводу выхода Enterprise Vault 10.0. Сейчас дошли руки установить его и посмотреть. Начну смотреть настройки почти с самого верха, то есть с сайта.

Сайт

В связи с изменениями в службе индексирования немного изменились настройки в административной консоли. В частности, в свойствах сайта настройки индексирования с закладки Archive Settings убрали. Continue Reading »


После установки SP2 на Exchange 2010 на некоторых CAS-серверах в Event-Log начнёт с завидной периодичностью появляться предупреждение с ID 1309:

Event code: 3005
Event message: An unhandled exception has occurred.
Event ID: 16bd39e6a1304f19a0c9575b8a0899c4
Event sequence: 565
Event occurrence: 170
Event detail code: 0

Application information:
    Application domain: /LM/W3SVC/1/ROOT/EWS-1-129707580288317561
    Trust level: Full
    Application Virtual Path: /EWS
    Application Path: C:\Program Files\Microsoft\Exchange Server\V14\ClientAc...
    Machine name: EU-HUB2

Process information:
    Process ID: 8012
    Process name: w3wp.exe
    Account name: NT AUTHORITY\SYSTEM

Exception information:
    Exception type: IndexOutOfRangeException
    Exception message: Index was outside the bounds of the array.

Пользователям это грозит следующим: перестаёт запускаться помощник OOF (причём в OWA он работает), клиент Mail под MacOS перестаёт подключаться к почтовому серверу, ломается интеграция с клиентом Lync. Приятного мало. MS (здесь, здесь и здесь) в качестве временного решения проблемы предлагает следующее:

After you install Exchange 2010 SP2, 'MSExchangeServicesAppPool' may crash on
startup. The w3wp process will keep running but may fail to service any EWS
requests. This may result in the loss of OOF (Out of Office), Availability, Lync
State features, and EWS clients such as Mac Outlook may not work properly.

То есть остановка и, затем, ручной запуск пула MSExchangeServicesAppPool проблему решает. До следующей перезагрузки сервера. Так что рекомендовал бы подождать появления RU1 для Exchange 2010 SP2, прежде чем обновляться на Exchange SP2.

Update: кажется выяснили, что причиной такого поведения является наличие в названии базы данных, где находится почтовый ящик пользователя следующих символов: (, :, «, ). То есть временное решение проблемы выглядит следующим образом:

1. Удаляем из имени базы символы, указанные выше. Information Store при этом перезапускать не надо.
2. Через IIS Manager перезапускаем пул MSExchangeServicesAppPool.

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


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

[PS] C:\Windows\system32>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-EX\Default 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 }

Как-то так.


Как-то писал о назначении административных прав доступа для администраторов региональных офисов. В Lync Server, с одной стороны, эта операция выполняется значительно проще. С другой стороны, места для манёвра при назначении прав доступа сильно меньше.

Чтобы назначить необходимые для администрирования Lync Server права региональным администраторам и ограничить их границами только своей инфраструктуры делается следующее:

  • Создаём Security-группу (если в региональном офисе свой домен — то в этом домене)
  • Запускаем следующий командлет:
New-CsAdminRole -Identity "Local CSAdministrator" -Template CSAdministrator
-ConfigScopes "site:SiteId" -UserScopes "OU:OU=LocalStaff,DC=domain,DC=local"

Здесь «Local CSAdministrator» — группа безопасности, созданная на первом шаге. В неё входят администраторы регионального офиса. CSAdministrator — используем в качестве шаблона группу с полными правами доступа (можно использовать любой из стандартных шаблонов, список которых можно получить через командлет Get-CsAdminRole). В ключе ConfigScope указываем в качестве области действия идентификатор сайта, связанного с региональным офисом (список сайтов, а так же их идентификаторы можно получить через командлет Get-CsSite). В ключе UserScope можно указать организационную единицу, в рамках которой может применять свои права региональный администратор. Последние два ключа необязательны.


Lync/Communicator позволяет брать информацию из Out-of-Office почтового ящика пользователя и показывать его в свойствах учётной записи пользователя.

Столкнулся с забавной ситуацией. У одного сотрудника появился в Lync статус из Out-of-Office и не пропал. Даже после того как его отключили в Outlook. Первым делом был удалён локальный кэш Lync’а. Впрочем, это не помогло. Абсолютно случайно, при проверке настроек Lync увидел что была отключена интеграция с Outlook. Тут то всё и встало на свои места. По какой-то причине при включенном OOF пользователь отключил в Lync интеграцию с Outlook. В итоге Lync перестал обновлять информацию из Outlook и статус OOF в нём подвис.

В Lync/Communicator картинка такая:

А в настройках OOF в Outlook такая:


В Outlook есть замечательная возможность показывать напоминания по различным поводам (события из календаря, задачи, письма итд). Когда эта возможность по каким то причинам пропадает, то человек, привыкший к тому, что Outlook периодически предупреждает о предстоящих событиях, чувствует себя крайнее некомфортно.

Проблема — перестали показываться напоминания. Первым делом необходимо проверить повторяется ли эта проблема в OWA. Это позволит понять на стороне сервера или на стороне клиента возникает проблема. Оказалось что и в OWA и в мобильном клиенте, использующем ActiveSync, напоминания появляются. Что автоматически означает, что проблема на стороне клиента.

Вариантов два — либо проблема появилась в результате сбоя кэша или в результате сбоя профиля Outlook. Первый вариант проверяем отключением кэша. Если в онлайн-режиме напоминания не появляются — скорее всего проблема со сбоем в профиле Outlook. Исправляется это созданием дополнительного профиля и/или удалением старого. Не забываем при этом, что все архивные pst-файлы необходимо будет в новом профиле подключить заново.

Видел в интернете варианты попыток решения проблемы с использованием ключей /resetfolders и /cleanreminders:

outlook.exe /resetfolders
outlook.exe /cleanreminders

Нужно чётко понимать что эти ключи делают. Первый — просто восстанавливает потерянные папки. Полный список ключей с описанием можно посмотреть здесь. А вот второй может помочь — так как запускает процесс повторного создания напоминаний на клиенте. Ещё будет полезен ключ /cleanprofile, который удаляет неправильные ключи из реестра для дефолтного профиля и создаёт правильные.