При миграции после обновления схемы домена и его подготовки следующим шагом будет установка сервера с ролью клиентского доступа. Не стоит забывать, что можно её совместить с ролью транспортного сервера. Кроме этого, следует помнить, что теперь через сервер клиентского доступа идут все подключения клиентов (за исключением подключения к общим папкам), следовательно имеет смысл эти подключения балансировать либо используя службу Windows NLB или используя аппаратные балансировщики.

Необходимо сначала установить требуемые компоненты системы (ставим на Windows 2008 R2 SP1). Используем для этого 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,Telnet-Client,NLB -Restart

После перезапуска системы настроим сервис Net.Tcp Port Sharing на автоматическую настройку:

Set-Service NetTcpPortSharing -StartupType Automatic

Затем можно приступать к установке Exchange 2010. Для этого запускаем setup.exe с расширенными привилегиями (Rus As Administrator). Далее начинается стандартная процедура установки. Нужно будет отказаться от стандартной установки, выбрать роли Client Access и Hub Transport, затем необходимо будет указать интернет адрес, по которому будет доступен наш балансировщик нагрузки для серверов клиентского доступа.

После завершения установки перегружаем сервер. Затем необходимо будет зарегистрировать фильтры IFilter вручную, либо через скрипт:

# Copyright (c) 2009 Microsoft Corporation. All rights reserved.
# THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.
# This is a filter registration script to configure Exchange Server 2010 to index Office 2007 file formats.
$DLLPath = $env:CommonProgramFiles + "Microsoft SharedFilters"
$CLSIDKey = "HKLM:SOFTWAREMicrosoftExchangeServerV14MSSearchCLSID"
$FiltersKey = "HKLM:SOFTWAREMicrosoftExchangeServerv14MSSearchFilters"

# Filter DLL Locations
$officeFilterLocation = $DLLPath + "offfiltx.dll"
$onenoteFilterLocation = $DLLPath + "ONIFilter.dll"
$visioFilterLocation = $DLLPath + "VISFilt.DLL"

# Filter GUIDs
$docxGuid    ="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
$pptxGuid    ="{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}"
$xlsxGuid    ="{F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}"
$zipGuid     ="{20E823C2-62F3-4638-96BD-90F4F6784EBC}"
$xlsbGuid    ="{312AB530-ECC9-496E-AE0E-C9E6C5392499}"
$onenoteGuid ="{B8D12492-CE0F-40AD-83EA-099A03D493F1}"
$vsdGuid     ="{FAEA5B46-761B-400E-B53E-E805A97A543E}"

# Create CLSIDs
Write-Host "Creating CLSIDs..."

New-Item -Path $CLSIDKey -Name $docxGuid -Value $officeFilterLocation -Type String
New-Item -Path $CLSIDKey -Name $pptxGuid  -Value $officeFilterLocation -Type String
New-Item -Path $CLSIDKey -Name $xlsxGuid  -Value $officeFilterLocation -Type String
New-Item -Path $CLSIDKey -Name $zipGuid  -Value $officeFilterLocation -Type String
New-Item -Path $CLSIDKey -Name $xlsbGuid -Value $officeFilterLocation -Type String
New-Item -Path $CLSIDKey -Name $onenoteGuid -Value $onenoteFilterLocation -Type String
New-Item -Path $CLSIDKey -Name $vsdGuid  -Value $visioFilterLocation -Type String

# Set Threading model
Write-Host "Setting threading model..."

New-ItemProperty -Path "$CLSIDKey$docxGuid" -Name "ThreadingModel" -Value "Both" -Type String
New-ItemProperty -Path "$CLSIDKey$pptxGuid" -Name "ThreadingModel" -Value "Both" -Type String
New-ItemProperty -Path "$CLSIDKey$xlsxGuid" -Name "ThreadingModel" -Value "Both" -Type String
New-ItemProperty -Path "$CLSIDKey$zipGuid" -Name "ThreadingModel" -Value "Both" -Type String
New-ItemProperty -Path "$CLSIDKey$xlsbGuid" -Name "ThreadingModel" -Value "Both" -Type String
New-ItemProperty -Path "$CLSIDKey$onenoteGuid" -Name "ThreadingModel" -Value "Both" -Type String
New-ItemProperty -Path "$CLSIDKey$vsdGuid" -Name "ThreadingModel" -Value "Both" -Type String

# Create Filter Entries
Write-Host "Creating Filter Entries..."

# Uncomment these if you wish to index these uncommonly exchanged formats
#New-Item -Path $FiltersKey -Name ".docm" -Value $docxGuid -Type String
#New-Item -Path $FiltersKey -Name ".pptm" -Value $pptxGuid -Type String
#New-Item -Path $FiltersKey -Name ".xlsm" -Value $xlsxGuid -Type String
#New-Item -Path $FiltersKey -Name ".vss" -Value $vsdGuid   -Type String
#New-Item -Path $FiltersKey -Name ".vst" -Value $vsdGuid   -Type String
#New-Item -Path $FiltersKey -Name ".vsx" -Value $vsdGuid   -Type String
#New-Item -Path $FiltersKey -Name ".vtx" -Value $vsdGuid   -Type String

# These are the entries for commonly exchange formats
New-Item -Path $FiltersKey -Name ".docx" -Value $docxGuid -Type String
New-Item -Path $FiltersKey -Name ".pptx" -Value $pptxGuid -Type String
New-Item -Path $FiltersKey -Name ".xlsx" -Value $xlsxGuid -Type String
New-Item -Path $FiltersKey -Name ".xlsb" -Value $xlsbGuid -Type String
New-Item -Path $FiltersKey -Name ".zip" -Value $zipGuid  -Type String
New-Item -Path $FiltersKey -Name ".one" -Value $onenoteGuid -Type String
New-Item -Path $FiltersKey -Name ".vsd" -Value $vsdGuid   -Type String

Write-Host "Registry subkeys created."
Write-Host "Please restart Microsoft Search  (Exchange) service from the Services console, or by running Stop-service msftesql-Exchange -Force ; start-service MSExchangeSearch "
#

Следующим шагом станет дополнительная настройка параметров сервера и настройка первого узла балансировщика Windows NLB.

Если у нас имеется удалённый офис, все аспекты администрирования Lync которого будут переданы локальному ИТ-отделу, то имеет смысл под такой офис создавать отдельный центральный сайт. Главным его отличием от сайта удалённого офиса является наличие серверов переднего плана (которые либо находятся в пуле, либо сервер с этой ролью всего один). Следует помнить, что в топологии Lync может быть всего один сервер, хранящий Central Management Store. В новом центральном сайте локальное хранилище будет репликой CMS, находящейся в центральном сайте головного офиса. Поэтому устанавливать CMS на него не надо будет.

Для начала новый центральный сайт необходимо будет создать через Topology Builder. Запускаем его. Из контекстного меню Lync Server 2010 выбираем New Central Site.

В открывшемся мастере указываем имя сайта, информацию о его расположении и по завершении запускаем мастер создания сервера переднего плана.

Далее, необходимо будет создать в топологии сервер переднего плана и опубликовать новую топологию.

Затем на новом сервере запускаем установку Lync Server. Подробнее в шагах процесс описан в статье Миграция на Lync Server 2010: установка первого сервера в разделе Установка первого сервера Lync. Главное не забывать, что установку нового хранилища CMS производить не надо (эта установка является частью процесса подготовки установки первого сервера Lync, которую запускать не надо).

Мигрируем с Exchange 2007 на Exchange 2010. Все шаги, описанные ниже, так же выполняются при запуске графической утилиты установки Exchange 2010. При наличии необходимых разрешений завершаются успешно. Я же предлагаю запускать их по отдельности. Пригодится тем из администраторов почтовых систем, кто не обладает правами доменного администратора.

1. Подготовка схемы. Запускается командой «setup /ps» (полный вариант – «setup /PrepareSchema»). Учётка под которой запускается команда должна быть в группах Schema Admins и Enterprise Admins. Запускаться должна на компьютере с 64-разрядной операционной системой, который находится в одном сайте с мастером схемы. Прежде чем приступить к следующему шагу необходимо подождать, пока изменения реплицируются на остальные контроллеры домена леса. Для проверки подключаемся через adsiedit.msc к разделу схемы и смотрим свойства объекта ms-Exch-Schema-Version-Pt. Нас интересует атрибут rangeUpper. Для Exchange 2010 SP1 он должен иметь значение 14726.

2. Подготовка AD. Запускается командой «setup /p» (полный вариант – «setup /PrepareAD»). Учётка под которой запускается команда должна быть в группе Enterprise Admins. Запускаться должна на компьютере, который находится в одном домене и сайте с мастером схемы. Кроме этого этот компьютер должен иметь связь по 389 порту с контроллерами домена всего леса. Прежде чем приступить к следующему шагу необходимо подождать, пока изменения реплицируются на остальные контроллеры домена леса. Для проверки подключаемся через adsiedit.msc к разделу конфигурации и смотрим свойства объекта “CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=domain,DC=local”. Нас интересует атрибут objectVersion. Для Exchange 2010 SP1 он должен иметь значение 13214.

Кроме этого, в организационной единице корневого домена Microsoft Exchange Security Groups появятся следующие группы:

  • Organization Management
  • Recipient Management
  • Server Management
  • View-Only Organization Management
  • Public Folder Management
  • UM Management
  • Hygiene Management
  • Records Management
  • Discovery Management
  • Delegated Setup

Кроме этого, подготовливается корневой домен.

3. Подготовка доменов. Запускается командой «setup /pad» (полный вариант – «setup /PrepareAllDomains»). Учётка под которой запускается команда должна быть в группе Enterprise Admins. При этом подготавливаются все домены, где есть сервера Exchange и все домены, где есть пользователи Exchange. Для проверки подключаемся через adsiedit.msc к разделу контекста именования по умолчанию и смотрим свойства объекта “CN=Microsoft Exchange System Objects,DC=domain,DC=local”. Нас интересует атрибут objectVersion. Для Exchange 2010 SP1 он должен иметь значение 13040.

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