В домене 2 контроллера. Один на базе Windows 2003, второй – Windows 2008 R2. Перед установкой второго контроллера лес и домен подготавливались в том числе и под установку RODC, как это описано здесь. На момент установки RODC роль PDC Emulator находилась на контроллере домена с Windows 2008 R2.

Пытаемся поставить RODC. Роль ADDS ставится без проблем. При запуске dcpromo получаем ошибку о том, что нет прав на репликацию раздела Configuration AD. На контроллере домена с ролью PDC Emulator при этом в логи падает ошибка 1699:

Log Name:      Directory Service
Source:        ActiveDirectory_DomainService
Event ID:      1699
Task Category: Replication
Level:         Error
Description:
This directory service failed to retrieve the changes requested for the following directory partition. 
As a result, it was unable to send change requests to the directory service at the following 
network address.

Directory partition: CN=Configuration,DC=domain,DC=com
Network address: xxx._msdcs.domain.com
Extended request code: 0

Additional Data
Error value: 8453 Replication access was denied.

На будущем RODC в лог dcpromo.log попадает следующее:

[INFO] Error - Active Directory Domain Services could not replicate the directory partition
CN=Configuration,DC=domain,DC=com from the remote Active Directory Domain Controller dc.domain.com.
(8453)
[INFO] EVENTLOG (Error): NTDS General / Internal Processing : 1699
Internal error: An Active Directory Domain Services error has occurred.

Additional Data

Error value (decimal): -1073741790

Error value (hex): c0000022

Internal ID: 30014c7

Ошибка с0000022 указывает на отсутствие прав доступа:

D:Err>err c0000022
# for hex 0xc0000022 / decimal -1073741790 :
  STATUS_ACCESS_DENIED                                          ntstatus.h
# {Access Denied}
# A process has requested access to an object, but has not
# been granted those access rights.

Пробуем разобраться. В процессе работы adprep /rodcprep создаются ряд записей на права доступа к различным объектам. В частности, создаются права Replicate Directory Changes для группы Enterprise Read-Only Domain Controllers на корень домена, в который помещаем RODC, и на раздел конфигурации.

Следует помнить, что, группа Enterprise Read-Only Domain Controllers создается в следующих случаях:

  • Первое перемещение роли PDC Emulator на контроллер домена на базе Windows 2008/2008 R2 в корневом домене леса.
  • При попытке установки первого RODC.

Отсутствие прав на репликацию для группы Enterprise Read-Only Domain Controllers как раз и приводит к ошибке описанной выше. Проще всего удостовериться в этом используя утилиту ADSIEdit. Подключаемся к тому разделу AD, который не реплицируется на будущий RODC, на контроллер домена, который является PDC Emulator. Если нужных прав нет – добавляем их:

Статья, которая натолкнула на верное решение находится здесь.

Столкнулся со странным поведением Communicator for Mac при подключении его к серверу Lync. Снаружи автоконфигурация отрабатывает без проблем. Внутри локальной сети не хочет. При этом, если вручную указывать внутренний/внешний сервера в настройках – подключение происходит.

Автоконфигурация начинает работать если в копии внешней зоны в записях _sipinternal._tcp.domain.com и _sipinternaltls._tcp.domain.com указывать не имя FE-сервера Lync, а алиас sip.domain.com, который ссылается на FE-сервер Lync.

Задача: скопировать членов одной группы AD в другую. С ходу 2 решения:

  • Используем квестовские командлеты для работы с AD:
Get-QADGroupMember Group1 | % {Add-QADGroupMember Group2 -Member $_}
  • Используем Powershell 2.0 и модуль ActiveDirectory:
Import-Module ActiveDirectory
Get-ADGroupMember Group1 | % {Add-ADGroupMember Group2 -Members $_}

По завершении действий описанных в предыдущем топике можно приступать к удалению старых серверов OCS. Удаление происходит в 2 шага – сначала деактивируем все роли в определённом порядке на сервере, затем удаляем их компоненты, тоже в определённом порядке. На первом шаге происходят изменения в AD (удаляются объекты, специфические для каждой роли), на втором шаге происходит удаление компонентов ролей с самих серверов.

Деактивация

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

  • Edge
  • Mediation
  • Archiving
  • Monitoring
  • Conferencing Attendant
  • Conferencing Announcement Service
  • Response Group Service
  • Outside Voice Control
  • Application Host
  • Application Sharing Server
  • A/V Conferencing Server
  • Web Conferencing Server
  • Web Components Server
  • Front End Server

Для деактивации сервера Edge подключаемся к нему, дальше – Computer Management → Services and Applications → правой кнопкой мышки на Office Communications Server 2007 R2 → Deactivate → Edge Server

Аналогично делается деактивация остальных ролей. При деактивации роли Mediation следует помнить, что если на FE-сервере OCS остались маршруты через старый Mediation-сервер, то даективация завершится с ошибкой. В свойствах таких маршрутов надо будет выбрать новый Mediation-сервер на базе Lync и повторить операцию деактивации.

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

Удаление компонентов

Порядок удаления компонентов ролей Edge, Mediation, Archiving и Monitoring следующий:

  • Microsoft Office Communications Server 2007 R2, Edge Server
  • Microsoft Office Communications Server 2007 R2, Mediation Server
  • Microsoft Office Communications Server 2007 R2, Archiving Server
  • Microsoft Office Communications Server 2007 R2, Monitoring Server
  • Microsoft Office Communications Server 2007 R2, Core Components
  • Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redistribution package

Порядок удаления компонентов ролей Standart Edition сервера или узлов Enterprise pool следующий:

  • Microsoft Office Communications Server 2007 R2, Conferencing Attendant
  • Microsoft Office Communications Server 2007 R2, Conferencing Announcement Service
  • Microsoft Office Communications Server 2007 R2, Response Group Service
  • Microsoft Office Communications Server 2007 R2, Outside Voice Control
  • Microsoft Office Communications Server 2007 R2, Application Host
  • Microsoft Office Communications Server 2007 R2, Application Sharing Server
  • Microsoft Office Communications Server 2007 R2, Audio/Video Conferencing Server
  • Microsoft Office Communications Server 2007 R2, Web Conferencing Server
  • Microsoft Office Communications Server 2007 R2, Web Components Server
  • Microsoft Office Communications Server 2007 R2, Front End Server/Microsoft Office Communications Server 2007 R2, Standard Edition server
  • Microsoft Office Communications Server 2007 R2, Core Components
  • Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redistribution package
  • Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Speech Redistribution package
  • Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Windows Workflow Activities Redistribution package

Удаление происходит через Add or Remove Programs.

Удаление BackCompatSite

После удаления последнего сервера OCS возвращаемся в Topology Builder и запускаем мастер объединения топологий.

Удаляем старый Edge-сервер в окне Specify Edge Setup. Запускаем процесс объединения топологий. По его завершении проверяем, что в BackCompatSite не осталось серверов и удаляем его.

Затем публикуем новую топологию, в которой отсутствуют удалённые старые сервера OCS 2007 R2.

После переноса всех пользователей на новый сервер Lync необходимо выполнить ряд задач, только после этого можно приступить к удалению старых серверов OCS.

Перенос телефонных номеров дозвона в аудио-конференции.

Для начала, определяем параметр SIP URI для этих номеров. Для этого подключаемся к серверу OCS, в консоли OCS в свойствах леса выбираем Conferencing Attendant Properties. На закладке Access Phone Numbers заходим в свойства каждого такого номера и смотрим там SIP URI.

Далее, на новом сервере Lync в Lync Server Management Shell запускаем следующую команду:

Move-CsApplicationEndpoint -Identity "SIP URI" -Target lync.domain.local

Затем возвращаемся в Conferencing Attendant Properties и проверяем, что номер из списка пропал.

Повторяем до тех пор, пока не перенесём все номера дозвона.

Перенос правил нормализации

Находим на сервере OCS, выполнявшем роль FE файл Company_Phone_Number_Normalization_Rules.txt, копируем его в lync-feLyncShare1-WebServices-1ABFiles”>lync-feLyncShare1-WebServices-1ABFiles, исправляем при необходимости. Подробнее можно посмотреть здесь.

Перенос роли Mediation

Для начала через Topology Builder создаём PSTN gateway.

Для этого нажимаем правой кнопкой мышки на PSTN gateways, выбираем New IP/PSTN Gateway, вводим ip-адрес или имя pstn-гейтвея, при необходимости меняем порт (по умолчанию порт 5066).

В свойствах Standard Edition Server в Mediation Server указываем прослушиваемые ролью порты и добавляем новый гейтвей в список используемых этой ролью.

Публикуем топологию.

Теперь необходимо все голосовые маршруты провести через новый сервер с ролью Mediation. Для этого в административной консоли в Voice Routing идём в Route и создаём новый маршрут (кнопка New). Указываем имя маршрута, указываем только что созданный pstn-gateway, в PSTN Usage добавляем все используемые записи и нажимаем OK. Новый маршрут поднимаем в самый верх списка и публикуем изменения (кнопка Commit).

Для массового переноса пользователей проще всего использовать PowerShell и идущие в комплекте с Lync командлеты для управления пользователями. Для переноса используеются 2 командлета – Get-CsUser для получения объектов пользователей OCS, которые затем по конвейеру передаются в Move-CsLegacyUser.

Следует помнить, что для получения списка пользователей сервера OCS 2007/2007 R2 обязательно используется ключ -OnOfficeCommunicationServer, кроме этого доступны ключи -OU (удобно использовать для переноса пользователей отдельного домена) и -Filter (для переноса пользователей со специфическими аттрибутами, например – сотрудников одного департамента или одной компании).

Преположим, что у нас несколько доменов в лесу, в каждом домене объекты пользователей находятся в организационной единице Staff. Перенос всех пользователей одного домена на новый Lync-сервер будет выглядеть следующим образом:

Get-CsUser -OnOfficeCommunicationServer -OU "ou=Staff,dc=domain,dc=local" | 
Move-CsLegacyUser -Target "lync.domain.local"

В случае с переносом сотрудников одного отдела команда будет выглядеть следующим образом:

Get-CsUser -OnOfficeCommunicationServer -Filter {Department -eq "IT"} | 
Move-CsLegacyUser -Target "lync.domain.local"

1 апреля (на полном серъёзе!) вышел второй сервис пак для EV 9.0.

Из нового:

  • новые отчёты в утилите EVSVR
  • дополнительная политика для использования/неизпользования клиентом настроек прокси-мервера из IE (раньше по умолчанию всегда использовались настройки прокси-сервера)
  • дополнительные ключи -recall и -norecurse в утилите EVSPShortcutManager
  • документация по EV доступна в разделе “How to” на симантековском портале поддержки (непонятно, правда, какое отношение это имеет к sp2 =))

Из старого:

  • исправили ошибку, о которой я писал раньше
  • исправили некоторое количество других ошибок

Готовят почву для следующей версии EV под номером 10. В частности, стало известно, что ставится она будет на Windows 2008R2 или более старшую версию. Заранее и документ подготовили по миграции на 64-битную операционку.