• FIX: Не закрывается консоль Exchange MC после установки IE9

    imageПосле установки Internet Explorer 9, при закрытии консоли Exchange Management Console может появляться ошибка с сообщением "You must close all dialog boxes before you can close Exchange Management Console".

    В моей ситуации эта ошибка воспроизводится только в том случае, если в процессе использования консоли открывается узел Organization Configuration > Mailbox > закладка Database Management

    image

    Недавно в базе знаний Microsoft появилась статья KB2624899 - FIX: You cannot close the EMC window on a computer that has Internet Explorer 9 installed в которой описывается данная проблема и есть ссылка на скачивание пакета исправления для решения этой проблемы. Дополнительную информацию об этой проблеме можно найти в блоге команды разработчиков Exchange в заметке A fix for the interoperability issues between Exchange 2007 and 2010 EMC and IE9 is now available

    В данный момент прямые ссылки на скачивание обновления KB2624899 можно заказать по ссылке http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2624899

    Предварительными требованием для установки обновления являются:

    • Наличие Internet Explorer 9, установленного на одну из ОС:
      - Windows Vista Service Pack 2 (SP2)
      - Windows Server 2008 Service Pack 2 (SP2)
      - Windows 7
      - Windows 7 Service Pack 1 (SP1)
      - Windows Server 2008 R2
      - Windows Server 2008 R2 Service Pack 1 (SP1)
    • Наличие установленного Октябрьского кумулятивного обновления для IE9
      MS11-081- Cumulative Security Update for Internet Explorer- October 11, 2011
      Это обновление доступно через WSUS.
      Обратите внимание на то, что в блоге команды разработчиков есть рекомендация дождаться следующего кумулятивного обновления для IE9 и обещают, что данное обновление будет включено туда.
  • Запрос авторизации Outlook при переключении БД Exchange или перезагрузке ноды NLB

    imageБыло замечено, что при выполнении процедуры переключения активной копии БД Exchange Server 2010 в группе DAG с одного сервера на другой (Database Switchover), а так же при проверке механизма аварийного переключения (Database Failover) на клиентах Outlook 2007/2010 происходит кратковременный разрыв соединения с сервером Exchange, сопровождаемый появлением окна авторизации для ввода имени пользователя и пароля. При этом, если без ввода учетных данных просто перезапустить Outlook, - соединение успешно восстанавливается. После проведения изыскательных мероприятий выяснилось то, что клиент Outlook в момент кратковременной потери MAPI (RPC) соединения c активным экземпляром БД Exchange пытается использовать альтернативный метод доступа – RPC over HTTP, то есть пытается использовать встроенный механизм мобильного клиента Outlook Anywhere. И в нашем случае это происходит из-за того, что на стороне серверов клиентского доступа компонента Outlook Anywhere настроена на использование Basic Authentication.

    Одним из методов решения данной проблемы может быть отключение использования встроенного механизма Outlook Anywhere в клиентах Outlook, включённого по умолчанию. Для этого в Outlook откроем свойства учетной записи > «Другие настройки» > перейдём на закладку «Подключение» и отключим флажок «Подключение к Microsoft Exchange по протоколу HTTP»:

    image

    Если стоит задача отключить данный механизм массово на всех клиентах, то можно это выполнить, например, с помощью доменных групповых политик – GPO. При попытке использовать ADMX шаблоны групповых политик в домене Windows Server 2008/2008 R2 имеющихся в комплекте с MS Office 2007/2010 вы можете убедиться в том, что они не имеют параметров для настройки мобильного клиента Outlook.
    В базе знаний Microsoft можно найти две статьи описывающие проблему невозможности настройки параметров мобильного клиента Outlook c помощью стандартных шаблонов GPO:

    В этих статьях нам доступны для загрузки шаблоны GPO в уже устаревшем формате – *.adm. Мы можем воспользоваться средством ADMX Migrator для того чтобы сконвертировать полученные ADM файлы в формат ADMX.

    После конвертации из каждого файла *.adm мы получим по два файла – *.admx (шаблон GPO) и *.adml (файл языкового описания для шаблона GPO).
    Зададим полученным файлам соответствующие имена:

    • Для Outlook 2007: outlk12_961112.admx и outlk12_961112.adml
    • Для Outlook 2010: outlk14_2426686.admx и outlk14_2426686.adml

    Для того чтобы в консоли управления групповыми политиками наши новые шаблоны смотрелись более наглядно, чем в том виде в котором они представлены по умолчанию, внесём некоторые корректировки в языковые файлы:

    В файле outlk12_961112.adml строку, описывающую отображаемое имя раздела GPO:

    <string id="L_MicrosoftOfficeOutlook12-Article961112">Article 961112 Policy Settings</string>

    заменим на строку:

    <string id="L_MicrosoftOfficeOutlook12-Article961112">Microsoft Office Outlook 2007 KB961112</string>

    В файле outlk14_2426686.adml строку, описывающую отображаемое имя раздела GPO:

    <string id="L_MicrosoftOfficeOutlook">Microsoft Outlook 2010</string>

    заменим на строку:

    <string id="L_MicrosoftOfficeOutlook">Microsoft Outlook 2010 KB2426686</string>

    Скопируем полученные в результате шаблоны outlk12_961112.admx и outlk14_2426686.admx в каталог центрального доменного хранилища шаблонов GPO - \domain.com\SYSVOL\domain.com\Policies\PolicyDefinitions
    Языковые файлы outlk12_961112.adml и outlk14_2426686.adml скопируем в это же размещение в подкаталог en-us.

    После этого, при работе с оснасткой редактирования доменных групповых политик Group Policy Management Editor (gpmc.msc) у нас появится возможность задавать соответствующие параметры:

    image

    Для того чтобы полностью отключить попытки Outlook использовать протокол HTTP, параметр RPC/HTTP Connection Flags должен быть включён и его значение должно быть установлено в No Flags:

    image

    После вступления в силу данного параметра GPO, для всех клиентских профилей будет добавлено соответствующее значение в куст реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Outlook\RPC (для Outlook 2007) или HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Outlook\RPC (для Outlook 2010):

    image

    …а в свойствах учетной записи Outlook параметры настройки мобильного клиента Outlook станут недоступны для изменений:

    image

    В развитие темы запросов авторизации Outlook можно также отметить то, что из практики замечено то, что в некоторых случаях перезагрузка одной из нод NLB кластера, обслуживающего массив Client Access Array, так же может порождать подобную проблему. Поэтому в случае если в рабочее время нам потребуется выполнить обслуживание серверов Client Access входящих в NLB кластер с необходимостью их перезагрузки, - перед выполнением перезагрузки в оснастке Network Load Balancing Manager соответствующий сервер желательно перевести в режим DRAINSTOP

    image

    При этом после перезагрузки нода NLB будет автоматически включаться в работу кластера если в оснастке NLB Manager в свойствах этого хоста значение параметра Default state установлено в Starded:

    image

    Дополнительная информация:

    Обновление 20.02.2018

    По просьбам трудящихся, у которых не получается самостоятельно сконвертировать ADM шаблоны, добавляю ссылку на готовые файлы: KB961112 & KB2426686 ADMX

  • DPM 2010 - Резервное копирование БД Exchange Server 2010 в группе DAG

    imageРассмотрим использование DPM 2010 в качестве системы резервного копирования баз данных роли Mailbox Exchange Server 2010 на конкретном примере. В качестве исходных данных будем считать, что мы имеем два сервера Exchange Server 2010 с ролью Mailbox объединённых в группу Database Availability Group (DAG), на которых расположено шесть баз данных почтовых ящиков. Параллельно поставим перед собой задачу распределить нагрузку по двум серверам Mailbox. Читать далее...

  • Outlook 2007 – процедура автонастройки профилей возвращает userPrincipalName вместо mail

    image

    Не так давно было замечено, что клиенты MS Outlook 2007 в процессе создания нового профиля подключения к серверу Exchange на этапе автодискаверинга вместо адреса электронной почты (атрибут mail) пользователя возвращают значение атрибута userPrincipalName (UPN) этого пользователя:

    image

    с такими параметрами процедура авто-настройки профиля завершается с ошибкой. После разбора полётов выяснилось, что виновником такого поведения Outlook 2007 стало недавно выпущенное и развернутое через WSUS обновление KB2412171

    image

    О других “косяках” этого обновления можно почитать в “чистосердечном признании” в официальном блоге - The Microsoft Office Blog - Issues with the recent update for Outlook 2007

    Если произвести удаление этого обновления с клиентского ПК, то процедура авто-настройки начинает работать штатно:

    image

    Соответственно, для решения данной проблемы можно пойти двумя путями:

    1) Произвести удаление данного обновления с пользовательских ПК;

    2) Дожидаться выхода нового обновления Office, устраняющего эту проблему, а пока оно не вышло, в случае необходимости подключения нового профиля Outlook в поле “Адрес электронной почты” заменять автоматически подставленное значение UPN на mail и оставлять появившиеся поля для ввода учетных данных пустыми (в таком случае процедура авто-настройки будет завершаться без ошибки).

  • Exchange Server 2010 How-to: Включение Integrated Windows authentication для Outlook Web App

    После установки роли Client Access в Exchange Server 2010 доступ к Outlook Web App по умолчанию не настроен на прохождение встроенной аутентификации Windows. Если сервера Client Access используются для доступа к OWA внутри локальной сети, то для пользователей будет более удобно использовать SSO вход в свой почтовый ящик через OWA. Что бы штатно включить механизм встроенной проверки аутентификации Windows в консоли Exchange Management Console перейдём в раздел Server Configuration > Client Access, выбираем сервер и в открывшейся закладке Outlook Web App откроем настройки OWA:

    image

    На закладке Authentication выберем соответствующий метод аутентификации – Integrated Windows authentication:

    image

    При сохранении изменённых настроек мы получим логичное предупреждение о том, что нам так же необходимо изменить способ аутентификации на аналогичный и в настройках Exchange Control Panel (ECP)

    image

    Это связано с тем, что при использовании ссылки «Параметры» в веб-интерфейсе OWA присутствуют ссылки на виртуальный каталог ECP. Поэтому в настройках ECP нам нужно выбрать тот же метод аутентификации, что и для OWA – Integrated Windows authentication:

    image

    Для того чтобы изменения вступили в силу, необходимо будет выполнить перезапуск IIS командой:

    iisreset /noforce

    В некоторых случаях попытка перезапуска IIS на сервере Client Access может приводить к ошибке:

    image

    В данном случае проблема может заключаться в том, что службе не хватает времени, отведённого системой на ответ от службы о том, что она выполнила остановку или запуск (по умолчанию это значение составляет 30 секунд). Для решения этой проблемы предлагается увеличить значение, установленное по умолчанию как минимум вдвое:

    В системном реестре находим ветку HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl, создаем в ней параметр DWORD с именем ServicesPipeTimeout и значением 60000 (Десятичное значение)

    image

    Обратите внимание на то, что значение параметра указывается в миллисекундах и влияет на запуск всех служб в ОС. Дополнительную информацию по этому вопросу можно найти в статье KB824344 How to debug Windows services

    После внесения изменений в реестр для вступления параметра в силу потребуется перезагрузка ОС.

    Если Client Access сервер входит в массив Client Access Array, то соответствующие изменения потребуется выполнить для всех остальных серверов, являющихся членами этого же массива.

    Дополнительная информация:
    Exchange Server TechCenter - Configure Integrated Windows Authentication

  • Exchange Server 2010 How-to: Создание Database Availability Group (DAG) на Mailbox серверах на Windows Server 2008 R2

    В прошлой заметке мы на конкретном примере рассмотрели создание и настройку NLB кластера для ролей Client Access и Hub Transport и теперь, отталкиваясь от ранее описанной конфигурации с работающим массивом Client Access Array, рассмотрим пошагово процедуру создания и первоначальной настройки отказоустойчивого кластера с группой DAG в Exchange Server 2010 SP1.

    С точки зрения сетевого взаимодействия, схема отказоустойчивого кластера DAG из двух серверов Exchange Server 2010 с ролями Mailbox в нашем случае будет выглядеть так:

    image


    Среда исполнения

    В качестве серверов, на которые будет произведена установка Exchange Server 2010 SP1, будет использоваться два физических сервера HP ProLiant DL 380 G5. Каждый сервер имеет следующую конфигурацию:

    • ОС Windows Server 2008 R2 Enterprise EN;
    • Объем выделенной ОЗУ - 10 Gb PC2-5300 ECC;
    • 2 процессора Xeon 5160 (число логических процессоров – 4);
    • Два сетевых адаптера;
    • 8 HDD SAS 10K, из них 2 HDD по 73Gb в зеркале RAID1 под ОС и исполняемые файлы Exchange и 6 HDD по 136 Gb в non-RAID конфигурации (каждый диск отдельно). В итоге на каждом сервере по доступному дисковому пространству мы получим такую картинку:

    image


    Условимся, что каждый свободный диск по 136 Gb (D - I) будет использоваться под отдельную базу данных (файлы БД и логи на одном диске).

    Сервера будут иметь имена KOM-AD01-CM01 и KOM-AD01-CM02. Создаваемый в процессе описания кластерный экземпляр Exchange DAG будет иметь имя KOM-AD01-DAG1.

    В процессе создания DAG в двух-узловой конфигурации нам потребуется сервер-свидетель (Witness server). Для этой роли мы выберем установленный ранее HT сервер Exchange с именем KOM-AD01-HT01.


    Настройка сетевых параметров

    Итак, на каждом сервере мы имеем по два сетевых интерфейса. Назовём их NIC1 - Public и NIC2 – Cluster и условимся, что согласно нашей схемы, NIC1 будет отвечать за управление самим сервером (будет зарегистрирован в DNS на FQDN имя сервера) а NIC2 будет отвечать за работу сервера в кластере Windows Failover Cluster. При этом мы должны обеспечить прямое физическое соединение интерфейсов NIC2 между двумя серверами.

    image

    Откроем окно настройки сетевых подключений и в меню Advanced > Advanced Settings и проверим порядок использования подключений (Connections). NIC1 должен иметь приоритет над NIC2, так как будет являться для сервера основным маршрутизируемым интерфейсом.

    image

    Так же в свойствах кластерного интерфейса NIC2 можно отключить все компоненты, за исключением TCP/IP (HP Network Configuration Utility в нашем случае это неотключаемая часть вендорного ПО для поддержки расширенных функций сетевого адаптера):

    image

    В свойствах компонента TCP/IP зададим только выделенный IP адрес и маску подсети и по кнопке Advanced откроем окно дополнительных настроек

    image

    В окне дополнительных настроек TCP/IP на закладке DNS отключаем опцию регистрации этого подключения в DNS - Register this connection's addresses in DNS

    image


    Подготовка ОС к установка Exchange Server 2010 SP1

    Предварительные требования к ОС для установки Exchange Server 2010 можно найти по ссылке - TechNet Library - Exchange 2010 Prerequisites. Перед развертыванием Exchange Server 2010 в AD должны быть проведены процедуры расширения схемы, подготовки леса и домена. Порядок проведения этих процедур описан в статье Exchange Server TechCenter - Prepare Active Directory and Domains.

    Так как мы планируем развертывание роли Mailbox, нам нужно предварительно скачать и установить 64-битную версию пакета Microsoft Office 2010 Filter Packs. Фильтры IFilter, входящие в этот пакет, используются в подсистеме поиска Exchange для индексирования текстового содержимого в форматах файлов Microsoft Office 2007/2010.

    В Exchange Server 2010 SP1 программа установки Exchange должна сама зарегистрировать фильтры IFilter из пакета фильтров Office 2010 Filter Pack в службе поиска Exchange, в отличие от RTM версии, где регистрацию нужно проводить в ручную, поэтому всё, что нам предварительно нужно сделать, это скачать 64-битную версию пакета и установить её…

    image

    Далее все необходимые системные компоненты для роли Mailbox устанавливаем с помощью PowerShell:

    Import-Module ServerManager

    Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server –Restart

    После окончания установки компонент, сервер выполнит перезагрузку. И так как набор используемых в ОС компонент расширился, сразу после перезагрузки выполним запрос к серверу WSUS и установим все доступные обновления.

    Также перед установкой Exchange Server 2010 SP1 нам необходимо учесть требования раздела «Install the Exchange 2010 SP1 Hotfixes for Windows Server 2008 R2» онлайн документации и вручную скачать и установить обновления (которые не распространяются через WSUS), необходимые для исправления проблем в SP1:

    Скачаем по ссылкам указанным в KB пакеты исправления соответствующие нашей платформе – x64 и произведём их установку. После установки этих обновлений потребуется перезагрузка системы.

    image

    Без предварительной установки этих обновлений инсталлятор Exchange Server 2010 SP1 не даст нам установить роль Mailbox.


    Установка Exchange Server 2010 SP1

    Запускаем Setup.exe в режиме Run as Administrator.

    Выбираем пункт 3 - Choose Exchange language option и указываем то что для установки используем только языковые пакеты, входящие в состав дистрибутива

    image

    Затем выбираем пункт 4 - Install Microsoft Exchange

    Проходим шаги Introduction, License Agreement, Error Reporting и на шаге Installation Type выбираем Custom Exchange Server Installation, а так же на всякий случай отмечаем галку автоматической установки недостающих системных компонент (случаи бывают разные :)):

    image

    На шаге выбора ролей отмечаем роль Mailbox Role

    image

    Затем инсталлятор проверит наличие в системе всех необходимых условий для возможности установки выбранной роли

    image

    Если проблемы не выявлены, можно запускать непосредственный процесс установки.

    image

    После окончания успешной установки необходимо будет произвести перезагрузку сервера.


    Установка последнего Rollup для Exchange Server 2010 SP1

    Информацию о текущих версиях Exchange Server можно найти по адресу - TechNet Wiki - Exchange Server and Update Rollups Builds Numbers

    На момент написания этой заметки, последним пакетом исправлений является - Update Rollup 2 for Exchange Server 2010 SP1 - 14.1.270.1 (12/9/2010) KB2425179

    Порядок установки последнего накопительного пакета обновлений описан в статье - TechNet Library - Install the Latest Update Rollup for Exchange 2010. Следуя его рекомендациям, для ускорения процесса установки, на время установки можно отключить проверку списков отзывов сертификатов в свойствах Internet Explorer (Открываем Internet Explorer и в меню Tools > Internet Options > Advanced > Security отключаем флажок Check for publisher’s certificate revocation).

    image

    Дополнительные сведения см. в статье 974445 базы знаний Майкрософт Создание образов NGEN занимает слишком много времени

    Для установки Rollup открываем командную строку в режиме Run as Administrator и запускаем из неё программу установки обновления, в нашем случае это файл Exchange2010-KB2425179-x64-en.msp, дожидаемся окончания установки и снова перезагружаем сервер, чтобы удостовериться в том, что все необходимые службы Exchange Server стартуют в штатном режиме.

    Помимо такого варианта установки Rollup можно попробовать воспользоваться и другим – разместить дистрибутив пакета исправлений в подкаталоге UPDATES дистрибутива Exchange Server 2010 SP1 перед процедурой первоначальной установки самого Exchange Server.


    Создание Database Availability Group (DAG)

    Если сервер, который планируется использовать в качестве сервера-свидетеля (Witness server), не является сервером Exchange, то перед тем как создавать DAG, на этом сервере необходимо включить доменную группу «Exchange Trusted Subsystem» в локальную группу администраторов (Administrators). В нашем случае в качестве сервера-свидетеля выбран сервер Exchange уже несущий роль Hub Transport и Client Access и поэтому в его локальной группе Администраторов уже присутствует данная группа безопасности и поэтому мы не будем испытывать проблем при попытке удалённого управления каталогом-свидетелем со стороны учетных записей серверов входящих в DAG.

    В интернете можно так же найти информацию о том, как в качестве сервера-свидетеля использовать контроллеры домена - для этого нужно включить группу “Exchange Trusted Subsystem” в доменную группу “Administrators”. Но как мы все понимаем, это далеко не «Best practice», ибо после таких действий полномочия учетных записей серверов Exchange в домене становятся слишком большие, что само по себе серьёзно понижает уровень безопасности в домене в целом.

    Итак, открываем Exchange Management Console (EMC) переходим в раздел Organization Configuration > Mailbox на закладку Database Availability Groups и в меню Action либо в контекстном меню выбираем пункт New Database Availability Group

    image

    В открывшемся мастере создания новой группы DAG указываем имя группы (будет использовано в дальнейшем для создания учетной записи кластера в домене), имя сервера свидетеля и каталог (по желанию). Если указать только имя сервера-свидетеля, а значение Witness directory оставить пустым, то будет создан каталог в виде %SystemDrive%DAGFileShareWitnesses<DAGFQDN> и на основе этого каталога будет создан сетевой каталог с именем <DAGFQDN>

    image

    Примечание: В дальнейшем, в случае необходимости, например при аппаратном или программном сбое сервера-свидетеля, изменить для DAG сведения о сервере-свидетеле и его каталоге в случае необходимости можно будет с помощью командлета Set-DatabaseAvailabilityGroup

    Создаем группу…

    image

    После этого в службе каталогов Active Directory будет создан объект класса msExchMDBAvailabilityGroup (его можно увидеть через оснастку ADSIEdit.msc)

    image


    Следующим этапом нам нужно задать статический IP адрес, который будет использоваться для предоставления доступа к кластерным ресурсам. Для этого откроем в консоли Exchange Management Console (EMC) свойства только что созданной группы DAG и на закладке IP Addresses добавим IP адрес:

    image

    Задачу назначения IP адреса группе DAG можно выполнить так же и через Exchange Management Shell командлетом Set-DatabaseAvailabilityGroup:

    Set-DatabaseAvailabilityGroup -DatabaseAvailabilityGroupIpAddresses '10.160.0.31' -Identity 'KOM-AD01-DAG1'

    Вообще стоит отметить, что и создание новой группы DAG более оперативно можно сделать через EMS командлетом New-DatabaseAvailabilityGroup:

    New-DatabaseAvailabilityGroup -Name 'KOM-AD01-DAG1' -WitnessServer 'KOM-AD01-HT01' -DatabaseAvailabilityGroupIpAddresses '10.160.0.31'

    Добавление первого сервера в DAG

    В консоли Exchange Management Console открываем Organization Configuration > Mailbox > Database Availability Group > выбираем нашу группу DAG и в меню Action выбираем пункт Manage Database availability Group Membership

    image

    В открывшемся мастере управления серверами-членами DAG с помощью Add добавляем первый сервер:

    image

    Итак, первый сервер в DAG добавлен…

    image

    Как мы видим, добавление сервера в DAG мы могли выполнить через Exchange Management Shell командлетом Add-DatabaseAvailabilityGroupServer:

    Add-DatabaseAvailabilityGroupServer -MailboxServer 'KOM-AD01-CM01' -Identity 'KOM-AD01-DAG1'

    В процессе добавления первого сервера в DAG произойдёт следующая последовательность действий:

    1) На сервер будут установлены компоненты Windows Failover Clustering, и будет создан новый кластер в режиме Node Majority с именем, соответствующим имени группы DAG. Переключение кластера в режим Node and File Share Majority, и как следствие использование сервера-свидетеля, произойдёт только после добавления в DAG второго сервера.

    image


    2) При создании кластера в доменном контейнере Computers будет соответствующая учетная запись объекта Cluster network object (CNO)

    image


    3) В DNS должна появиться A-запись с именем и IP адресом группы DAG

    image


    4) В свойства объекта DAG в Active Directory будет внесена информация о добавленном сервере

    image

     

    Добавление второго сервера в DAG

    Для добавления второго сервера в группу DAG можно воспользоваться мастером «Manage Database availability Group Membership» также как и при добавлении первого сервера, но мы для наглядности воспользуемся Exchange Management Shell:

    Add-DatabaseAvailabilityGroupServer -MailboxServer 'KOM-AD01-CM02' -Identity 'KOM-AD01-DAG1'

    image

    Результатом успешного выполнения этой команды будет:

    1) Добавление второго сервера в качестве второй ноды в Windows Failover Cluster с изменением режима работы кластера на Node and File Share Majority с сервером свидетелем.

    image


    2) Добавление информации о втором сервере в свойства объекта DAG в Active Directory


    3) Начинает использоваться служебный сетевой каталог, созданный на транспортном сервере – свидетеле (KOM-AD01-HT01) с появлением в нём информации о состоянии кластерного кворума


    Создание реплицируемых БД

    После того как DAG настроена, мы можем создать необходимое нам количество БД и настроить репликацию. Для создания новой БД на первом сервере Mailbox воспользуемся Exchange Management Console (Organization Configuration > Mailbox > Database Management > выбираем в меню Action пункт New Mailbox Database)

    В открывшемся мастере вводим имя новой базы данных и имя сервера на котором она будет использоваться как активный экземпляр:

    image

    Задаём расположение файла БД и подкаталога для логов…

    image

    Дожидаемся успешного окончания процесса создания и монтирования новой БД…

    image

    После того как база создана на первом сервере, сделаем её реплицируемой на второй сервер. Для этого в Exchange Management Console в разделе Organization Configuration > Mailbox > Database Management > выбираем нужную базу данных и в меню Action пункт Add Mailbox Database Copy

    image

    В открывшемся мастере выбираем второй сервер Mailbox входящий в группу DAG, на котором будет размещена копия БД:

    image

    Дожидаемся окончания процесса …

    image

    После того как процесс успешно окончен, проверяем наличие только что созданных каталогов на втором сервере. И так как в нашем случае на серверах используется идентичная дисковая конфигурация, на втором сервере файлы копии БД и логов были успешно созданы в той же точке монтирования файловой системы и каталоге, которые используются на первом сервере.

    Теперь в консоли Exchange Management Console можно проверить статус состояния активного экземпляра БД и её копии.

    image


    Проверка механизма Switchover

    После того как создано необходимое количество реплицируемых БД, мы можем проверить механизм переключения активных копий с одного сервера в группе DAG на другой (switchover). В нашем случае все активные копии БД в текущий момент находятся на сервере KOM-AD01-CM01. Выполним переключение активных копий на сервер KOM-AD01-CM02. Для этого в консоли Exchange Management Console в разделе Server Configuration > Mailbox выберем сервер с активными копиями и в меню Action выберем Switchover Server:

    image

    В открывшемся окне выбираем сервер, на который мы хотим переместить активные экземпляры всех БД. Если в группе DAG всего два сервера, то вполне можно выбрать вариант Automatically choose a target server.

    image

    После этого, сделав Refresh в консоли, мы увидим, что статус активности баз изменился, и теперь все активные экземпляры БД находятся на сервере KOM-AD01-CM02. Процедуру «переезда» активных копий обратно (с сервера KOM-AD01-CM02 на сервер KOM-AD01-CM01) можно выполнить так же и через Exchange Management Shell с помощью командлета Move-ActiveMailboxDatabase:

    Move-ActiveMailboxDatabase -Server "KOM-AD01-CM02"

    image


    Далее, перед вводом группы DAG в промышленную эксплуатацию так же не помешает выполнить и тестирование процедуры Failover-переключения активных копий БД между серверами участниками DAG, сымитировав отказ сервера являющегося носителем активных копий БД.

    Дополнительная информация:

  • Exchange Server 2010 How-to: Установка ролей Client Access и Hub Transport в NLB кластере на Windows Server 2008 R2

    imageС учетом нововведений в Exchange Server 2010, которые приближают роль Client Access к действительно оправдывающей своё название компоненте, перед нами возникает задача обеспечения максимально возможной отказоустойчивости этой роли в продуктивной среде. На сегодняшний день существуют лучшие методики и рекомендации Microsoft, которые обеспечение отказоустойчивости Exchange посредствам WNLB уже не признают как рекомендуемые, а вместо этого предлагают использовать аппаратные решения обеспечения балансировки нагрузки и отказоустойчивости. Однако в реальной практике, по тем или иным причинам, не все себе могут позволить придерживаться таких рекомендаций, и поэтому использование NLB на платформе Windows Server в такой ситуации будет вполне приемлемым вариантом. Я пошагово опишу на практическом примере процедуру установки ролей Exchange Server 2010 SP1 - Client Access (CA) и Hub Transport (HT) на два сервера, включённых в NLB кластер на Windows Server 2008 R2 в среде виртуализации Hyper-V Server 2008 R2.

    С точки зрения сетевого взаимодействия, схема отказоустойчивого NLB кластера из двух серверов Exchange 2010 с ролями Client Access и Hub Transport в нашем случае будет выглядеть так:

    clip_image002

    Среда исполнения

    В качестве серверов, на которые будет произведена установка Exchange Server 2001 SP1, будет использоваться два виртуальных сервера на базе хостов виртуализации на ОС Hyper-V Server 2008 R2. Каждый виртуальный сервер имеет следующую конфигурацию:

    • ОС Windows Server 2008 R2 Standard EN;
    • Объем выделенной ОЗУ - 4 Gb;
    • Число логических процессоров – 4;
    • Жёсткий диск – VHD фиксированного размера в 60 Gb;
    • Два синтетических сетевых адаптера

    При создании второго сетевого адаптера, который будет использоваться для построения NLB в свойствах виртуальной машины Hyper-V необходимо разрешить спуфинг МАС адресов (Enable spoofing of MAC addresses)

    image

    На Microsoft есть статья, описывающая возможные проблемы, связанные с построением NLB кластеров в окружении Hyper-V -KB953828 - Windows Server 2008 Hyper-V virtual machines generate a Stop error when NLB is configured or when the NLB cluster does not converge as expected


    Подготовка ОС к созданию кластера NLB

    После того как виртуальные машины сконфигурированы, на них установлена ОС и установлены все последние обновления с Windows Update, приступаем к настройке ОС для подготовки к созданию NLB кластера.

    Первым делом через Server Manager установим компоненту (фичу) Network Load Balancing

    image

    Так же компоненту NLB можно установить с помощью команды:

    dism /online /enable-feature /featurename:NetworkLoadBalancingFullServer

    clip_image007

    Дополнительную информацию об альтернативных способах установки NLB можно найти в статье MSDN Blogs - Clustering and High-Availability - Installing Network Load Balancing (NLB) on Windows Server 2008 R2

    Как обозначилось ранее, на каждом виртуальном сервере мы имеем по два сетевых интерфейса. Назовём их NIC1 и NIC2 и условимся что, согласно нашей схемы, NIC1 будет отвечать за управление самим сервером (будет зарегистрирован в DNS на FQDN имя сервера) а NIC2 (для которого включён спуфинг MAC адресов) будет участником NLB кластера.

    clip_image008

    Откроем окно настройки сетевых подключений и в меню Advanced > Advanced Settings и проверим порядок использования подключений (Connections). NIC1 должен иметь приоритет над NIC2.

    clip_image009

    Так же в свойствах сетевого подключения, которое будет использоваться для подключения к NLB кластеру (в нашем случае - NIC2) можно отключить все компоненты, за исключением TCP/IP:

    clip_image010

    В свойствах компонента TCP/IP зададим только выделенный IP адрес и маску подсети и по кнопке Advanced откроем окно дополнительных настроек

    clip_image011

    Обратите внимание на то, что в системах Windows Server 2008/2008R2 IP форвардинг пакетов между локальными интерфейсами внутри системы по умолчанию выключен, и для того чтобы наш NLB интерфейс стал доступен, нам нужно включить IP форвардинг на сетевом подключении входящем в NLB кластер командой:

    netsh interface ipv4 set interface “NIC2 – NLB” forwarding=enabled

    В окне дополнительных настроек TCP/IP на закладке DNS отключим механизм регистрации в DNS

    clip_image012

    После этого в локальной доменной зоне прямого просмотра DNS нам необходимо создать статическую А-запись для будущего NLB кластера.

    clip_image013


    Создание кластера NLB

    На первом виртуальном сервере (KOM-AD01-HT01) открываем консоль Network Load Balancing Manager. (меню Пуск > Administrative Tools). Выбираем пункт меню Cluster > New Cluster

    clip_image014

    Вводим имя первого узла, который хотим добавить в NLB, кнопкой Connect подключаемся к нему, и получив с него набор доступных интерфейсов, выбираем нужный:

    clip_image015

    На странице параметров хоста (Host Parameters) оставляем настройки по умолчанию:

    clip_image016

    В следующем окне мастера создания кластера добавляем IP адрес NLB кластера, на который мы ранее в DNS зарегистрировали А-запись.

    clip_image017

    Далее указываем FQDN кластера NLB (по той самой A-записи), а также режим его работы. Если серверы Exchange 2010 CAS установлены на VMware ESX или имеют другие требования к выбору многоадресного режима нужно выбрать режим Multicast , в нашем же случае нужно выбрать опцию одноадресного режима - Unicast.

    clip_image018

    На странице правил портов (Port rules) удаляем имеющееся по умолчанию правило и добавляем необходимые нам правила. При добавлении правила портов убираем флажок All и указываем конкретный интерфейс NLB и диапазон портов, который хотим добавить в кластер NLB.

    clip_image019

    В общей сложности, в нашем примере балансировке в NLB кластере мы будем подвергать следующие порты:

    • TCP 25 – Отправка почты по SMTP (для Legacy приложений);
    • TCP 80 – Перенаправление HTTP > HTTPS в IIS;
    • TCP 110 – Получение почты по POP3 (для Legacy приложений);
    • TCP 143 – Подключение по IMAP4;
    • TCP 443 - Outlook Anywhere, Exchange ActiveSync и Outlook Web App;
    • TCP 135 – MAPI RPC для подключения клиентов;
    • TCP 1024-65535 – MAPI RPC (Динамический диапазон RPC) для подключения клиентов;
    • TCP 993 – Secure IMAP (в Filtering mode Affinity установить в значение None);
    • TCP 995 – Secure POP (в Filtering mode Affinity установить в значение None);

    Диапазон динамических портов RPC при желании можно изменить до использования конкретного статического порта. Пример того как это можно сделать описан в статье Новая служба RPC Client Access Service в Exchange 2010 (обратите внимание на то, что в статье упор делается на RTM Exchange Server 2010, а с выходом SP1 процедура настройки статических портов RPC несколько изменилась).

    clip_image020

    Все необходимые параметры кластера заданы, создаем его по нажатию кнопки Finish и после первоначальной инициализации, если в конфигурации не допущены ошибки, NLB кластер запуститься в конфигурации с одним узлом

    image

    Далее, переходим на имя NLB кластера и пунктом меню Add Host to Cluster вызываем мастер добавления второго хоста в кластер.

    clip_image022

    Указываем имя нашего второго виртуального сервера (KOM-AD01-HT02), выполняем к нему подключение(Connect) и выбираем соответствующее сетевое подключение на этом удалённом сервере:

    clip_image023

    Значения на странице параметров хоста (Host Parameters) оставляем по умолчанию (приоритет хоста в кластере NLB будет выбран автоматически и при желании его можно изменить в много-хостовых конфигурациях)

    clip_image024

    Далее получаем список настроенных ранее портов, и если нет необходимости его изменять, завершаем процедуру и получаем уже полноценный Windows NLB кластер из двух хостов

    clip_image025


    Подготовка ОС к установке Exchange Server 2010 SP1

    Предварительные требования к ОС для установки Exchange Server 2010 можно найти по ссылке - TechNet Library - Exchange 2010 Prerequisites. Перед развёртыванием Exchange Server 2010 в AD должны быть проведены процедуры расширения схемы, подготовки леса и домена. Порядок проведения этих процедур описан в статье Exchange Server TechCenter - Prepare Active Directory and Domains.

    Так как на наших виртуальных серверах мы планируем включение роли Hub Transport, нам желательно предварительно скачать и установить Microsoft Office 2010 Filter Packs. Фильтры IFilter, входящие в пакет Microsoft Office 2010 Filter Pack используются в подсистеме поиска Exchange для индексирования текстового содержимого в форматах файлов Microsoft Office 2007/2010.

    В Exchange Server 2010 SP1 программа установки Exchange должна сама зарегистрировать фильтры IFilter из пакета фильтров Office 2010 Filter Pack в службе поиска Exchange, в отличие от RTM версии, где регистрацию нужно проводить в ручную, поэтому всё, что нам предварительно нужно сделать, это скачать 64-битную версию пакета и установить её…

    clip_image026

    Далее все необходимые системные компоненты для ролей Client Access и Hub Transport можно быстро установить с помощью PowerShell:

    Import-Module ServerManager

    Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart

    После окончания установки компонент, сервер выполнит перезагрузку. И так как набор используемых в ОС компонент расширился, сразу после перезагрузки выполним запрос к серверу WSUS и установим все доступные обновления.

    Мы планируем наши сервера для роли Client Access и поэтому необходимо изменить тип запуска службы Net.Tcp Port Sharing Service на Автоматический. Сделать это можно также командой PowerShell:

    Set-Service NetTcpPortSharing -StartupType Automatic

    Дополнительно, перед установкой роли Client Access, нам необходимо учесть требования раздела «Install the Exchange 2010 SP1 Hotfixes for Windows Server 2008 R2» онлайн документации и вручную скачать и установить обновления (которые не распространяются через WSUS), необходимые для корректного сосуществования с Exchange Server 2010 SP1:

    · KB982867 - WCF services that are hosted by computers together with a NLB fail in .NET Framework 3.5 SP1
    · KB979744 - A .NET Framework 2.0-based Multi-AppDomain application stops responding when you run the application
    ·
    KB983440 - An ASP.NET 2.0 hotfix rollup package is available for Windows 7 and for Windows Server 2008 R2
    ·
    KB977020 - FIX: An application that is based on the Microsoft .NET Framework 2.0 Service Pack 2 and that invokes a Web service call asynchronously throws an exception on a computer that is running Windows 7

    Скачаем по ссылкам указанным в KB пакеты исправления соответствующие нашей платформе – x64 и произведём их установку. После установки этих обновлений потребуется перезагрузка системы.

    clip_image027

    Без предварительной установки этих обновлений инсталлятор Exchange Server 2010 SP1 попросту не даст установить роль Client Access.


    Установка Exchange Server 2010 SP1

    Распаковываем ISO дистрибутив Exchange Server 2010 с интегрированным SP1 и запускаем Setup.exe в режиме Run as Administrator.

    Выбираем пункт 3 - Choose Exchange language option и указываем то, что для установки используем только языковые пакеты, входящие в состав дистрибутива

    image

    Затем выбираем пункт 4 - Install Microsoft Exchange

    Проходим шаги Introduction, License Agreement, Error Reporting и на шаге Installation Type выбираем Custom Exchange Server Installation, а так же на всякий случай отмечаем галку автоматической установки недостающих системных компонент:

    image

    На шаге выбора ролей отмечаем роли Client Access Role и Hub Transport Role

    image

    На следующем шаге нам будет предложено ввести FQDN имя нашего CA сервера (массива) опубликованное в Интернет. В моём случае точка публикации находится на другом сервере и поэтому я оставлю это значение пустым.

    image

    Затем инсталлятор проверит наличие в системе всех необходимых компонент для возможности установки выбранных ролей

    image

    Если проблемы не выявлены, можно запускать непосредственный процесс установки.

    image

    После окончания успешной установки необходимо будет произвести перезагрузку сервера.


    Установка последнего Rollup для Exchange Server 2010 SP1

    Информацию о текущих версиях Exchange Server можно найти по адресу - TechNet Wiki - Exchange Server and Update Rollups Builds Numbers

    На момент написания этой заметки, последним пакетом исправлений является - Update Rollup 2 for Exchange Server 2010 SP1 - 14.1.270.1 (12/9/2010) KB2425179

    Порядок установки последнего накопительного пакета обновлений описан в статье - TechNet Library - Install the Latest Update Rollup for Exchange 2010. Следуя его рекомендациям, для ускорения процесса установки, на время установки можно отключить проверку списков отзывов сертификатов в свойствах Internet Explorer (Открываем Internet Explorer и в меню Tools > Internet Options > Advanced > Security отключаем флажок Check for publisher’s certificate revocation).

    clip_image040

    Дополнительные сведения см. в статье 974445 базы знаний Майкрософт Создание образов NGEN занимает слишком много времени

    Для установки Rollup открываем командную строку в режиме Run as Administrator и запускаем из неё программу установки обновления, в нашем случае это файл Exchange2010-KB2425179-x64-en.msp, дожидаемся окончания установки и снова перезагружаем сервер, чтобы удостовериться в том, что все необходимые службы Exchange Server стартуют в штатном режиме.

    clip_image041


    Подготовка и привязка SAN сертификата

    Для корректной работы защищённого доступа к службам массива Client Access необходимо создать новый сертификат, так как FQDN, используемый для доступа в серверы Client Access в NLB кластере, не соответствует FQDN, заданному в поле общих имён или в поле альтернативных имён в SSL сертификате, который автоматически устанавливается на каждом сервере Client Access во время установки Exchange Server 2010. То есть нужно создать сертификат, в котором присутствуют несколько FQDN (сертификат с альтернативными именами объекта – SAN - Subject Alternative Name) – FQDN Client Access Array, FQDN каждого узла кластера NLB и служебные имена (такие как Autodiscover)

    Для создания запроса для нового SAN сертификата можно использовать Exchange Management Shell (командлет New-ExchangeCertificate):

    $RequestData = New-ExchangeCertificate -GenerateRequest -SubjectName "E = V.Pupkin@holding.com,CN = KOM-AD01-CA01.Holding.com,OU = KOMI,O = Holding Ltd.,L = Syktyvkar,S = Komi republic,C = RU" -DomainName kom-ad01-ca01.holding.com, kom-ad01-ht01.holding.com, kom-ad01-ht02.holding.com, autodiscover.holding.com, kom-ad01-ca01, kom-ad01-ht01, kom-ad01-ht02 -KeySize 1024 -PrivateKeyExportable $true

    Set-Content -path "C:TempCAS_SAN_Cert.req" -Value $RequestData

    Далее, на основании полученного файла запроса в локальном центре сертификации (если он настроен на поддержку сертификатов с Subject Alternative Name) можно получить сертификат.

    В нашем случае для отправки запроса и получения сертификата будет использоваться веб-узел локального центра сертификации Active Directory Certificate Services.

    На странице Advanced Certificate Request перейдём по ссылке “Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file.” и скопируем содержимое сгенерированного ранее запроса

    clip_image042

    После того как размещённый запрос на сертификат обработан администратором центра сертификации, мы можем с этого же веб-узла локального центра сертификации Active Directory Certificate Services загрузить сертификат в формате «Base 64 encoded» по ссылке « View the status of a pending certificate request » а затем «Download certificate chain».

    image

    Теперь импортируем полученный сертификат, используя Exchange Management Shell с помощью командлета Import-ExchangeCertificate:

    Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path С:Temp CAS_SAN_Cert.p7b -Encoding byte -ReadCount 0))

    После импорта сертификата командлет вернёт нам Thumbprint, по которому можно будет проверить текущее состояние сертификата с точки зрения Exchange и его привязки к сервисам командлетом Get-ExchangeCertificate:

    Get-ExchangeCertificate -Thumbprint <thumbprint> | FL

    clip_image045

    В данный момент мы видим, что сертификат используется только службами IMAP и POP и нам нужно включить сертификат для остальных клиентских служб и SMTP. Для этого воспользуемся командлетом Enable-ExchangeCertificate:

    Enable-ExchangeCertificate –Thumbprint <thumbprint> -Services "IMAP, POP, IIS, SMTP"

    Теперь наш новый сертификат необходимо установить на втором узле NLB кластера (на сервере KOM-AD01-HT02). Для этого нужно произвести на сервере KOM-AD01-HT01 экспорт этого сертификата с закрытым ключом из хранилища Certificates /Local Computer/Personal. Сделать это можно через оснастку управления сертификатами.

    clip_image046

    в Certificate Export Wizard на странице Export Private Key выберите опцию Yes, export the private key

    image

    На странице Export File Format выберите Personal Information Exchange – PKCS #12 (.PFX) и поставьте отметку напротив Include all certificates in the certificates path if possible.

    image

    Затем введите пароль для защиты закрытого ключа, который мы в дальнейшем будем использовать для импорта сертификата на сервер KOM-AD01-HT02

    image

    Далее указываем имя файла и завершаем мастер экспорта сертификата. Полученный файл в формате PFX копируем на наш второй сервер (KOM-AD01-HT02) и, открыв на нём Exchange Management Shell, выполняем импорт сертификата с помощью командлета Import-ExchangeCertificate:

    clip_image053

    При этом появиться запрос на ввод учетных данных. В поле User name можно ввести любой текст, а в поле Password нужно ввести пароль, который мы ранее задали при экспорте сертификата в формате PFX. После того как сертификат успешно импортирован, как описывали ранее, выполняем привязку этого сертификата к службам Exchange на этом сервере:

    Enable-ExchangeCertificate –Thumbprint <thumbprint> -Services "IMAP, POP, IIS, SMTP"


    Создание массива Client Access Array (CAA)

    Теперь собираем сам массив Client Access Array. Для этой цели воспользуемся командлетом New-ClientAccessArray:

    New-ClientAccessArray -Fqdn KOM-AD01-CA01.holding.com -Site "MyMainSite" -Name "KOM-AD01-CA01.holding.com"

    Посмотреть свойства и проверить текущее состояние массива можно с помощью командлета Get-ClientAccessArray

    clip_image054


    Настройка Client Access URLs в массиве CAA

    Теперь для каждого сервера CAS в массиве CAA должны быть установлены URL обеспечивающие доступ к службам Exchange через NLB. То есть мы должны проверить следующие URL:

    · Autodiscover. Виртуальный каталог - /Autodiscover
    · Outlook Web Apps. Виртуальный каталог - /OWA
    · Exchange Control Panel. Виртуальный каталог - /ECP
    · Exchange Active Sync. Виртуальный каталог - /Microsoft-Server-ActiveSync
    · Offline Address Book. Виртуальный каталог - /OAB
    · Exchange Web Services. Виртуальный каталог - /EWS

    Итак, на каждом CAS сервере, входящем в ферму NLB (Массив CAA):


    1) Параметр AutoDiscoverServiceInternalUri должен быть установлен в значение CAA FQDN. Проверить это можно следующим скриптоблоком:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where-Object {$_.Name -eq $CASArrayName}

    $CAAHosts = $CAAObj.Members

    Foreach ($CASHost in $CAAHosts)

    {

    Get-ClientAccessServer -Identity $CASHost.Name | FL Identity,AutoDiscoverServiceInternalUri

    }

    Результат должен быть примерно таким:

    clip_image055


    2) Для каждой веб-службы значение параметра InternalNLBBypassURL должно быть установлено в значение Server FQDN. Проверить это можно следующим скриптоблоком:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where-Object {$_.Name -eq $CASArrayName}

    $CAAHosts = $CAAObj.Members | Select-Object Name

    Foreach ($CASHost in $CAAHosts)

    {

    Get-WebServicesVirtualDirectory -Server $CASHost.Name  | FL Identity, InternalNLBBypassUrl

    }

    Результат должен быть примерно таким:

    clip_image056


    3) Параметры InternalURL и ExternalURL для каждой веб-службы должны быть заданы в соответствии с таблицей:

    Виртуальный каталог

    InternalURL

    ExternalURL
    (AD Сайт с подключением к Интернету)

    ExternalURL
    (AD сайт без подключения к Интернету)

    /OWA

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /ECP

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /Microsoft-Server-ActiveSync

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /OAB

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /EWS

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    Для быстрого получения информации о том, какие в текущий момент значения InternalURL и ExternalURL установлены на всех серверах массива CAA можно использовать скриптоблок:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where {$_.Name -eq $CASArrayName}

    $CAAHosts = $CAAObj.Members | Select Name

    Foreach ($CASHost in $CAAHosts)

    {

    Write-Host $CASHost.Name "Client Access URLs:" -ForegroundColor Cyan

    Write-Host ""

    $UrlOWA = Get-OwaVirtualDirectory -Server $CASHost.Name

    Write-Host "OWA Internal:" $UrlOWA.InternalUrl

    Write-Host "OWA External:" $UrlOWA.ExternalUrl

    $UrlECP = Get-EcpVirtualDirectory -Server $CASHost.Name

    Write-Host "ECP Internal:" $UrlECP.InternalUrl

    Write-Host "ECP External:" $UrlECP.ExternalUrl

    $UrlASc = Get-ActiveSyncVirtualDirectory -Server $CASHost.Name

    Write-Host "ASc Internal:" $UrlASc.InternalUrl

    Write-Host "ASc External:" $UrlASc.ExternalUrl

    $UrlOAB = Get-OabVirtualDirectory -Server $CASHost.Name

    Write-Host "OAB Internal:" $UrlOAB.InternalUrl

    Write-Host "OAB External:" $UrlOAB.ExternalUrl

    $UrlWeb = Get-WebServicesVirtualDirectory -Server $CASHost.Name

    Write-Host "EWS Internal:" $UrlWeb.InternalUrl

    Write-Host "EWS External:" $UrlWeb.ExternalUrl

    Write-Host ""

    }

    Для того чтобы быстро установить все значения InternalURL в FQDN CAA воспользуемся скриптоблоком:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where {$_.Name -eq $CASArrayName}

    $CAAFQDN = $CAAObj.Fqdn

    $CAAHosts = $CAAObj.Members | Select Name

    Foreach ($CASHost in $CAAHosts)

    {

    $OWADirObj = Get-OwaVirtualDirectory -Server $CASHost.Name

    Set-OwaVirtualDirectory -Identity $OWADirObj.Identity -InternalUrl "https://$CAAFQDN/owa"

    $ECPDirObj = Get-EcpVirtualDirectory -Server $CASHost.Name

    Set-EcpVirtualDirectory -Identity $ECPDirObj.Identity -InternalUrl "https://$CAAFQDN/ecp"

    $AScDirObj = Get-ActiveSyncVirtualDirectory -Server $CASHost.Name

    Set-ActiveSyncVirtualDirectory -Identity $AScDirObj.Identity -InternalUrl "https://$CAAFQDN/Microsoft-Server-ActiveSync"

    $OABDirObj = Get-OabVirtualDirectory -Server $CASHost.Name

    Set-OabVirtualDirectory -Identity $OABDirObj.Identity -InternalUrl "http://$CAAFQDN/OAB"

    $WebDirObj = Get-WebServicesVirtualDirectory -Server $CASHost.Name

    Set-WebServicesVirtualDirectory -Identity $WebDirObj.Identity -InternalUrl https://$CAAFQDN/EWS/Exchange.asmx

    }


    Подключение баз данных Exchange к CAA

    Если базы данных на серверах с ролью Mailbox создаются после создания массива CAA, то значение атрибута RpcClientAccessServer каждой БД должно быть задано как FQDN массива CAA. Проверить это можно с помощью команды:

    Get-MailboxDatabase | Format-List Name,RpcClientAccessserver

    clip_image057

    Если базы данных были созданы до настройки CAA, то значение атрибута RpcClientAccessServer будет иметь FQDN конкретного сервера с ролью Client Access. Переопределить это значение, указав FQDN массива CAA можно командой:

    Set-MailboxDatabase "MyDB" -RpcClientAccessServer "KOM-AD01-CA01.holding.com"


    Проверяем работоспособность Client Access Array

    Проверить работоспособность CAA можно, например, с помощью MS Outlook 2007/2010, служба Autodiscover должна разрешить имя сервера как FQDN массива. Откроем мастер добавления новой учетной записи в Outlook, утвердительно ответим на вопрос о настройке учетной записи электронной почты..

    clip_image058

    Дождёмся окончания процесса автоконфигурации..

    clip_image059

    После окончания работы мастера откроем в Outlook свойства созданного профиля учетной записи и проверим то, что подключение настроено на FQDN массива CAA

    image

    Обратите внимание на то, что при использовании клиентов Outlook 2003 может возникнуть проблема при подключении, если на серверах Exchange в службе RPC Client Access включено требование шифрования. Проверить текущее состояние этой настройки можно командой:

    Get-RpcClientAccess | Format-List Server,EncryptionRequired

    Дальше можно проверить возможность подключения к OWA с указанием всех вариантов имени CA/CAA в URL используемых при создании SAN сертификата и поочерёдно сымитировать отказ одного из серверов в NLB кластере, чтобы удостовериться в том, что сервисы клиентского доступа Exchange Server при этом остаются доступными.

    Дополнительная информация:

    TechNet Library - Exchange Server 2010 Library.
    Exchange Server TechCenter - White Paper: Understanding the Relative Costs of Client Access Server Workloads in Exchange Server 2010
    MSExchange.ru - Новая служба RPC Client Access Service в Exchange 2010
    Yannick Varloud Blog - Exchange Server 2010 : How to setup a Client Access Array

  • Exchange Server 2007 – Включение почтовых ящиков для списка пользователей из файла

    Для массового включения почтовых ящиков для уже существующих в домене пользователей приготовим *.CSV файл с разделителем – запятая. В первой строке файла будут описаны заголовки значений, в последующих строках – сами значения.

    В нашем примере в качестве используемых значений будут имя пользователя в домене в формате DOMAINUser и алиас для создаваемого почтового ящика к этому имени пользователя. В обычном текстовом редакторе файл будет выглядеть так:

    DomainUser,mailAlias
    MYDOMivanov-ip,I.Ivanov
    MYDOMpetrov-sa,S.Petrov
    MYDOMsidorov-dg,D.Sidorov

    Чтобы убедиться в том, что PowerShell  действительно может разобрать наш файл по значениям выполним команду:

    Import-CSV C:Users.csv

    Результат вывода должен быть таким:

    image

    Непосредственно для импорта содержимого файла и включения на основе этих данных почтовых ящиков выполним:

    $DBId =  'MailboxServerStorageGroupDataBase'

    Import-CSV C:Users.csv | ForEach-Object { Enable-Mailbox -Identity $_.DomainUser -Alias $_.mailAlias –Database $DBId } | Get-Mailbox | Select Alias,WindowsEmailAddress

     

  • Exchange Server 2007 – Просмотр статистики БД почтовых ящиков

    Для получения статистики об использовании почтовых ящиков пользователями организации в Exchange Server 2007 можно воспользоваться Exchange Management Shell и командлетами Get-MailboxDatabase и Get-MailboxStatistics.

    Для того чтобы получить сводную информацию о количестве почтовых ящиков в каждой базе данных и общему размеру каждой базы данных на определенном сервере в Exchange Management Shell выполним скрипт:

    $MailBoxServer = "MyMailBoxServer"

    Get-MailboxDatabase | Where-Object {$_.ServerName -eq $MailBoxServer} | Select @{Label="SG Name";Expression={$_.StorageGroupName}}, @{Label="DB Name";Expression={$_.Name}}, @{Label="Mailboxes";Expression={(Get-Mailbox -Database $_.Identity | Measure-Object).Count}} , @{Label="DB Size";Expression={"{0:N2}" -f ((get-mailboxstatistics -database $_.Identity | Measure-Object -Property TotalItemSize,TotalDeletedItemSize -Sum | Select-Object Sum | Measure-Object -Property Sum -Sum).Sum.ToString() /1024KB)}} | Sort -Property "DB Name" | Format-Table –AutoSize

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

    $FullDBIdentity = "MyMailBoxServerMyStorageGroupMyDataBase"

    Get-MailboxDatabase -Identity $FullDBIdentity | Get-MailboxStatistics | Sort -Property TotalItemSize | Select DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount,StorageLimitStatus | Format-Table -AutoSize

     

    Если же нас интересует информация только о почтовых ящиках, у которых превышен лимит хранения почты, выполним скрипт:

    $FullDBIdentity = "MyMailBoxServerMyStorageGroupMyDataBase"

    Get-MailboxDatabase -Identity $FullDBIdentity | Get-MailboxStatistics | Where-Object {$_.StorageLimitStatus -ne "BelowLimit"} | Sort -Property TotalItemSize | Select DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount,StorageLimitStatus | Format-Table –AutoSize

     

    Дополнительные источники информации:

    Exchange Server TechCenter - Get-MailboxDatabase: Exchange 2007
    Neil Hobson - Getting Mailbox Statistics in Exchange 2007
    Exchange Server Share Blog - Exchange 2007: Database Statistics in Powershell

    PowerShellCommunity Forums - Exchange Mailbox Database size

  • Exchange Server 2007 How-to: Настройка анонимной ретрансляции почты

    image Иногда для некоторых «не очень продвинутых» приложений типа всякого рода АРМ и т.п. требуется возможность анонимной отправки почты наружу с использованием протокола SMTP.

    По умолчанию такого рода ретрансляция почты в Exchange 2007 не работает. Можно включить анонимную ретрансляцию почты в Exchange 2007 для определенного хоста следующим образом:

    • Создать Receive Connector с типом использования Custom;
    • Добавить группы разрешений «Анонимные» для созданного Receive Connector;
    • Назначить разрешения на ретрансляцию участнику безопасности «Анонимный вход» для созданного Receive Connector

    Открываем консоль Exchange Management Console:

    Переходим в Server Configuration > Hub Transport > Выбираем сервер HT > Receive Connectors
    Выбираем пункт меню ActionsNew Receive Connector

    image

    В открывшемся мастере создания нового коннектора указываем его имя и выбираем тип Custom

    image

    Далее указываем FQDN имя нашего HT-Сервера для которого мы создаем этот коннектор и номер порта. По умолчанию используется 25 порт, но мы при желании можем задать другой номер порта, при этом не стоит забывать, что если мы используем для SMTP подключений NLB кластер, то в нём должна быть включена поддержка соответствующего порта.

    image

    Далее мы указываем IP адрес хоста (или нескольких хостов) для которого мы хотим разрешить анонимную ретрансляцию почты. Значение по умолчанию 0.0.0.0-255.255.255.255 нужно удалить.

    image

    Далее, когда уже коннектор создан, открываем его свойства и если у нас нет необходимости (или нет возможности) в использовании TLS – на закладке Authentication отключаем его.

    image

    На закладке Permission Groups включаем опцию для анонимных пользователей.

    image

    Затем открываем Exchange Management Shell и выполняем командлет на нашем HT-сервере:

    Get-ReceiveConnector "ARM Anonymous Mail Relay" | Add-ADPermission -User "NT AUTHORITYANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

    image

    Опять же, если мы используем NLB кластер и хотим чтобы созданный коннектор работал на всех нодах кластера - нам необходимо проделать данную процедуру на каждом HT-сервере, который является членом NLB кластера.

    Источник
    Exchange Server TechCenter - How to Allow Anonymous Relay on a Receive Connector