Архив

Archive for Июль 2013

Развертывание и миграция Exchange 2010. Часть 3 Инсталляция ролей

Инсталляция ролей Clien Access и Hub Transport.

1. Пререквизиты для сервера с совмещенными ролями CAS и Hub для Windows 2008 R2

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,Web-Asp-Net,Web-Client-Auth,Web-Dir-Browsing,Web-Http-Errors,Web-Http-Logging,Web-Http-Redirect,Web-Http-Tracing,Web-ISAPI-Filter,Web-Request-Monitor,Web-Static-Content,Web-WMI,RPC-Over-HTTP-Proxy –Restart

2. После перезагрузки необходимо настроить автоматический запуск службы NetTcpPortSharing

Set-Service NetTcpPortSharing -StartupType Automatic

3. Установка Microsoft Office 2010 Filter Pack

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17062

4. Установка роли сервера CAS

.\Setup.com /mode:install /r:CA  /ExternalCASServerDomain:mailmig.com

ExternalCASServerDomain — параметр для автоматического заполнения External Url   OWA/ActiveSync/Web Services/OAB виртуальных директорий.

5. Установка роли сервера HUB

.\Setup.com /mode:install /r:HT 

Инсталляция роли Mailbox Server

1. Пререквизиты для роли Mailbox Server

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

2. Установка Microsoft Office 2010 Filter Pack

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17062

3. Установка роли сервера Mailbox

Создать папку для размещения баз данных c:\exchdb\db01\ и логов транзации c:\exchdb\db01\logs

.\setup.com /mode:install /r:m /mdbname:db01 /dbfilepath:”c:\exchdb\db01\db01.edb” /logfolderpath: ”c:\exchdb\db01\logs”

Инсталляция роли Edge

1. Установка пререквизитов для роли Edge

Import-Module ServerManager

Add-WindowsFeature NET-Framework,RSAT-ADDS,ADLDS -Restart

2. Настройка основного суффикса DNS. В качестве значения необходимо указать FQDN домена Active Directory.
Настройка DNS. В данном случае в качестве DNS сервера использовался внутренний DNS сервер. В случае если в качестве DNS используются внешние серверы, в файле HOSTS необходимо указать FQDN серверов HUB: srv-mx03.mailmig.com, srv-mx04.mailmig.com

3. Во внутреннем DNS указать FQDN Edge серверов srv-mx05.mailmig.com, srv-mx06.mailmig.com.

* В ходе инсталляции роли Mailbox произошла ошибка связанная с DiscoverySearchMailbox. Ошибка одна из популярных для Exchange 2010 SP3 и Exchange 2013.

Mailbox Role
Failed

Error:
The following error was generated when «$error.Clear();
$name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;
$dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;
$dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;
if( $dismbx -ne $null)
{
$srvname = $dismbx.ServerName;
if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like «$srvname.*» )
{
Write-ExchangeSetupLog -info «Setup DiscoverySearchMailbox Permission.»;
$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };
if( $mountedMdb -eq $null )
{
Write-ExchangeSetupLog -info «Mounting database before stamp DiscoverySearchMailbox Permission…»;
mount-database $dismbx.Database;
}

              $mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };
if( $mountedMdb -ne $null )
{
$dmRoleGroupGuid = [Microsoft.Exchange.Data.Directory.Management.RoleGroup]::DiscoveryManagementWkGuid;
$dmRoleGroup = Get-RoleGroup -Identity $dmRoleGroupGuid -DomainController $RoleDomainController -ErrorAction:SilentlyContinue;
if( $dmRoleGroup -ne $null )
{
Add-MailboxPermission $dismbx -User $dmRoleGroup.Identity -AccessRights FullAccess -DomainController $RoleDomainController -WarningAction SilentlyContinue;
}
}
}
}
» was run: «Couldn’t resolve the user or group «mailmig.com/Microsoft Exchange Security Groups/Discovery Management.» If the user or group is a foreign forest principal, you must have either a two-way trust or an outgoing trust.».

Couldn’t resolve the user or group «mailmig.com/Microsoft Exchange Security Groups/Discovery Management.» If the user or group is a foreign forest principal, you must have either a two-way trust or an outgoing trust.

The trust relationship between the primary domain and the trusted domain failed.

Elapsed Time: 00:03:46

Finalizing Setup
Cancelled

Вариантов решения два:

Вариант 1.

1.Отключить почтовый ящик Disable-Mailbox “DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}”

2.Закончить инсталляцию Exchange

3.Включить почтовый ящик Enable-Mailbox “DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}” -Arbitration

4.Add-MailboxPermission -Identity:”mailmig.com/Users/DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}” -User:”Discovery Management” -AccessRights:”FullAccess”

mailmig.com — FQDN домена

Вариант 2. (Я использовал текущий вариант)

1. Удалить учетную запись DiscoverySearchMailbox

2. Запустить подготовку леса setup /PrepareAD

3. Продолжить инсталляцию Exchange

4. Восстановить п-я DiscoverySearchMailbox

Процедура пересоздания системных почтовых ящиков:

Удалить следующие учетные записи:

  • SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • SystemMailbox{1f05a927-af78-475a-aba4-fc281398eb54}
  • FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
  • DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}

Провести обновление леса

 /PrepareAD

Включить почтовые ящики для новых, созданных учетных записей.

Enable-Mailbox -Arbitration -Identity «FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042»

Enable-Mailbox -Arbitration -Identity «SystemMailbox{1f05a927-8668-4003-adad-9b80758e86db}»

Enable-Mailbox -Arbitration -Identity «SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}»

Enable-Mailbox -Discovery «DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}»

Редактировать Display Name для п-я

Для SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}

Set-Mailbox -Arbitration -Identity «SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}» -DisplayName «Microsoft Exchange»

Для FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042

Set-Mailbox -Arbitration -Identity «FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042» -ProhibitSendQuota 1MB

Проверка 

Get-Mailbox -Arbitration

Name Alias ServerName ProhibitSend
Quota
SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} Srv-mx01 Unlimited
FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 Srv-mx01 Unlimited
SystemMailbox{1f05a927-af78-475a-aba4-fc281398eb54} SystemMailbox{1f05a927-af78-475a-aba4-fc281398eb54} Srv-mx01 1 MB
(1,048,576 bytes)

Get-Mailbox -Identity DiscoverySearchMaibox*

Name Alias ServerName ProhibitSendQuota
DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852} DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852} Srv-mx01 50 GB (53,687,091,200 bytes)
Рубрики:Exchange

Развертывание и миграция Exchange 2010. Часть 2 Подготовка Службы Каталогов AD.

Одной из первых задач, которые стоят на этапе внедрения является подготовка Службы Каталогов Active Directory. Технически процедура подготовки AD не сложная, но максимально ответственная так как затрагивает множество зависимых от AD сервисов. Чтобы процедура прошла максимально безопасно необходимо создать тестовый стенд продуктивной среды. В последнее время это сделать не сложно создав клон одного из виртуальных контроллеров домена. В моих последних проектах(не только по Exchange) тестовый стенд это обязательный шаг. Мнение AD Team по обновлению схемы: Best Practices for Implementing Schema Updates or : How I Learned to Stop Worrying and Love the Forest Recovery , тестирование схемы на предмет конфликтов Validating your AD Schema Prior to Upgrade (a Followup).

Статья Technet Prepare Active Directory and Domains описывает процесс подготовки Службы Каталогов Active Directory, там же приведены все команды, которые нужно будет запустить.

Основные шаги подготовки это:

  • подготовка схемы
  • подготовка леса
  • подготовка доменов

Убедиться в том, что партиции обновлены, можно проверив значения атрибутов, которые приведены в таблице 1. Для каждой версии Exchange сервера, значения могут отличаться.

Таблица 1. Значения атрибутов для разных версий Exchange.

Exchange Version Forest rangeUpper attribute of ms-Exch-Schema-Version-Pt  Forest objectVersion attribute of Organization container Domain objectVersion attribute on Microsoft Exchange System Objects
Exchange 2000 RTM 4397 4406
Exchange 2000 SP3 4406 4406
Exchange 2003 RTM 6870 6903 6936
Exchange 2003 SP1 6870 6903 6936
Exchange 2003 SP2 6870 6903 6936
Exchange 2007 RTM 10637 10666 10628
Exchange 2007 SP1 11116 11221 11221
Exchange 2007 SP2 14622 11222 11221
Exchange 2007 SP3 14625 11222 11221
Exchange 2010 RTM 14622 12640 12639
Exchange 2010 SP1 14726 13214 13040
Exchange 2010 SP2 14732 14247 13040
Exchange 2010 SP3 14734 14322 13040
Exchange 2013 RTM 15137 15449 13236
Exchange 2013 CU1 15254 15614 13236
Exchange 2013 CU2 15281 15688 13236

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

Перед обновлением роль мастера схемы была вынесена на выделенный контроллер и на этом контроллере на время обновления всех партиций была отключена исходящая репликация, а так же отключен сетевой интерфейс.

Пошаговая процедура обновления Службы Каталогов Active Directory приведена в файле Подготовка AD 0.1

Действие Команды/инстурмент Ожидаемые результаты
Проверка текущих версий объектов Exchange ADSIEdit.msc, скрипты
  • Схема 14622
  • Лес 11222
  • Домен 11221
Проверка репликации Repadmin /replsumRepadmin/ showrepl Ошибок реплик от входящих партнеров не должно быть.
Проверка уровня лесаПеределать скрипт не под R2 Get-ADDomainController -filter * | foreach { $_.Name; Get-ADForest medsigroup.ru -Server $_.Name | ft ForestMode} Для каждого контроллера отображается статус уровня леса Windows 2000.
Регистрация оснастки схемы regsvr32 schmmgmt.dll
Смена мастера схемы на SRV-DC02 Оснастка AD Schema Мастер схемы SRV-DC02
Переключение уровня леса в Windows 2003 Оснастка AD Domains and Trusts->Raise domain functional level и выбрать Windows 2003
Запуск репликации всех разделов в пределах леса Repadmin /syncall /AeS
Проверка репликации Repadmin /replsumRepadmin/ showrepl
Проверка уровня леса на всех контроллерах домена Get-ADDomainController -filter * | foreach { $_.Name; Get-ADForest medsigroup.ru -Server $_.Name | ft ForestMode} Для каждого контроллера отображается статус уровня леса Windows 2003.
Копирование дистрибутива Exchange 2010 SP3 на SRV-DC02 C:\Install
Отключение исходящей репликации на SRV-DC02
и отключение сетевого адаптера
repadmin /options SRV-DC02 +DISABLE_OUTBOUND_REPL Исходящая репликация отключена.
IS_GC DISABLE_OUTBOUND_REPL
Отключение сетевого адаптера от сети, Оснастка SCVMM Переключить в fake сеть
Запуск подготовки контекста именования схемы Setup.com /ps /dc:srv-dc02 ExchangeSetup отобразил статус COMPLETE, логи в C:\ExchnageSetup не показали критичных ошибок.
Проверка подготовки схемы ADSIEidt.msc, скрипты.
  • В разделе схемы атрибут rangeUpper объекта  msExchSchemaVersionPt значение 14734
  • Проверка логов C:\ExchnageSetup
Запуск подготовки контекста именования конфигурации Setup.com  /PrepareAD /OrganizationName:“First Organization” /dc:srv-dc02 ExchangeSetup отобразил статус COMPLETE, логи в C:\ExchnageSetup не показали критичных ошибок.
Проверка подготовки конфигурации ADSIEidt.msc, скрипты, ADUC.
  • В разделе конфигурации объекта-контейнера Organization атрибут objectVersion значение 14322
  • Создан контейнер Microsoft Exchange Security Groups в котором размещены группы.
Подготовка контекста именования домена Setup.com /pd:medsigroup.ru /dc:srv-dc02 ExchangeSetup отобразил статус COMPLETE, логи в C:\ExchnageSetup не показали критичных ошибок.
Проверка подготовки домена ADSIEidt.msc, скрипты. В разделе домена атрибут objectVersion объекта Microsoft Exchange System Objects значение 13040
Включение сетевого адаптера в продуктовую сеть Оснастка SCVMM Доступны другие контроллеры домена.
Включение исходящей репликации repadmin /options SRV-DC02 -DISABLE_OUTBOUND_REPL Исходящая репликация включена IS_GC
Запуск репликации в пределах всего леса medsigroup.ru Repadmin /syncall /AeSСо стороны партеров запустить репликацию с SRV-DC02
Проверка репликации Repadmin /replsumRepadmin/ showrepl
Проверка подготовки схемы, конфигурации, домена на всех контроллерах.
Вернуть мастера схемы обратно на сервер

Операция отката

  1. Отключить сервер от продуктовой сети из SCVMM консоли
  2. Отобрать роль мастера схемы для SRV-DC1 с помощью утилиты ntdsutil
  3. Выполнить metadata cleanup сервера с помощью утилиты ntdsutil.
  4. Удалить записи в DNS
Рубрики:ActiveDirectory, Exchange

Развертывание и миграция Exchange 2010. часть 1 Intro.

Бывают такие ситуации, когда на старте проекта самые последние версии ПО, на этапе непосредственного внедрения оказываются уже не новыми — это как раз тот случай. На мою долю вначале Июня 2013 года выпало внедрение Exchange 2010 SP3.

Прежде всего хотел оговориться, что цель заметок не Step By Step Guide, а описание проекта и некоторых решений.

Цель проекта

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

Описание текущей инфраструктуры

Exchange2007

Общее описание инфраструктуры:

  • Один сервер  Exchange 2007 SP2;
  • 3000 почтовых пользователей (Outlook, OWA, Anywhere, Мобильные устройства);
  • Публикация сервисов Exchange с помощью ISA 2006;
  • Один лес Windows 2000, один домен Windows 2008, множество сайтов.
  • Внешнее и внутреннее пространство имен  mailmig.com

Конфигурация DNS для Exchange 2007

FQDN IP Внешняя зона mailmig.com Внутренняя зона mailmig.com Описание
Mail01-srv.mailmig.com IP1 да FQDN почтового сервера в Active Directory
Proxy01-srv.mailmig.com IP2 да FQDN проксирующего сервера в Active Directory
mail.mailmig.com IP3 да да FQDN почтового сервера

Конфигурация сертификатов

Для почтовой системы был создан один сертификат, который размещался на Mail01-srv.mailmig.com и на Proxy01-srv.mailmig.com. В сертификате были указаны следующие имена:

Subject:

  • mail.mailmig.com

DNS Alternative:

  • mail.mailmig.com
  • Mail01-srv.mailmig.com
  • Mail01-srv
  • *.mailmig.com

Общее описание внедряемой архитектуры

Общая архитектура состоит из следующих серверов

  • Два сервера Edge Transport;
  • Два сервера с ролью Client Access совмещенных с ролями Hub Transport;
  • Два сервера с ролью Mailbox

Exchange2010

Конфигурация DNS для Exchange 2010

FQDN IP Внешняя зона Внутренняя зона Описание
Srv-mx01.mailmig.com IP4 да FQDN Mailbox 2010
Srv-mx02.mailmig.com IP5 да FQDN Mailbox 2010
Srv-mx03.mailmig.com IP6 да FQDN CAS&Hub 2010
Srv-mx04.mailmig.com IP7 да FQDN CAS&Hub 2010
Srv-mx05.mailmig.com IP8 да FQDN Edge
Srv-mx06.mailmig.com IP9 да FQDN Edge
Outlook.mailmig.com IP10 да VIP NLB, Outlook MAPI Point, для подключений клиентов MAPI RPC.
Edge1.mailmig.ru IP11 да Внешнее имя, для подключений SMTP
Edge2.mailmig.ru IP12 да Внешнее имя, для подключений SMTP

VLAN ID 1 не стоит путать с нативным VLAN, это просто наглядное отображение того, в каких виртуальных сетях находятся серверы.

Отказоусточивость и балансировка нагрузки решения

Edge

Отказоусточивость и балансировка входящего трафика серверов Edge Transport осуществляется за счет инсталляции нескольких серверов Edge и создания записей MX с одинаковой стоимостью.

MX=mailmig.com

edge1.mailmig.com = cost 10

edge2.mailmig.com = cost 10

Отказоустойчивость исходящего трафика обеспечивается за счет встроенного функционала Edge серверов.

Hub

Mailbox —>Hub — встроенные средства балансировки

Hub —>Edge -несколько отправляющих соединителей

Клиентский доступ (SMTP 587): Network Load Balancing

CAS

Отказоусточивость обеспечивается за счет инсталляции нескольких серверов и объединения серверов в WNLB.

Преимущества WNLB:

  • Входит в состав Windows Server
  • Простая настройка

Недостатки WNLB:

  • Генерация широковещательного трафика, что приводит к нагрузке на сетевое оборудование;
  • Не может определить работоспособность на уровне сервиса, только на уровне IP;
  • Балансировка только за счет Client source IP;
  • WNLB не может быть использован при совмещении CAS и Mailbox.

Mailbox

Пользовательские ящики  -> средства кластеризации(DAG)

Общие папки ->Репликация общих папок

Порядок миграции и сосуществование

Между Exchange 2007 и Exchange 2010 поддерживается сосуществование и миграция. Для этого Exchange 2007 минимально должен быть обновлен до SP2. В данном проекте были использованы следующие версии:

  • Exchange 2007 SP2
  • Exchange 2010 SP3

Порядок миграции следующий:

  1. Client Access
  2. HUB Transport
  3. Mailbox
  4. Edge Transport

Требования для Exchange 2010 SP3

Подробно с требованиями можно ознакомиться на странице Exchange 2010 System Requirements, я оговорюсь, что в текущей инфраструктуре требования для леса были не выполнены(минимальный требуемый уровень Windows 2003), что нужно учесть при подготовке Службы Каталогов.

Рубрики:Exchange

Установка клиентов Lync

Тема очень простая и избитая — установка софта на клиентские машины. Для массовых развертываний ПО существуют инструменты, такие как SMS, SCCM.  Если такого богатства нет — групповые политики.

Я не силен в скриптах, поэтому сляпал как смог, надо было придумать что-то за короткое время.

Для установки сделал общую папку на сервере server1 в которую положил два дистрибутива x86 и x64 и два файла cmd, пример одного файла cmd ниже:

———————————————————-

IF EXIST «C:Program Files (x86)Microsoft Lynccommunicator.exe» GOTO End

server1Lync_installru_lync_2010_x64_615697.exe /install /Silent

IF %ERRORLEVEL%==0 (

echo Lync Installed on %computername% >> «server1Lync_installINSTALLEDx64!_%COMPUTERNAME%.txt»

) ELSE (

echo lync Failed on %computername%=%ERRORLEVEL% >> «server1Lync_installFAILEDx64!_%COMPUTERNAME%.txt»

)

:End

—————————————————————-

Скрипт проверяет наличие установленного клиента по установочному пути(можно сделать по какому то разделу в реестре) и если клиент установлен завершает работу. Далее производится установка и создается файл — при успешной установке INSTALLEDx64!_%COMPUTERNAME%.txt и при ошибке FAILEDx64!_%COMPUTERNAME%.txt по этим файлам я отслеживал на каком количестве АРМ установлен клиент.

С клиентами x86 аналогично, меняется только название дистрибутива.

Ну и последним шагом остается создать две политик, раскидать по политикам два CMD и назначить политикам WMI фильтры.

32bit 64bit

В случае если в продуктиве и Lync 2010 и Lync 2013 и разные ОС, можно так же добавлять другие WMI фильтры, а можно вставить рядок проверок в скрипты.

Рубрики:Lync