Розгортаємо lync 2018

Перш за все зазначу, що моя тестова середовище буде далека від тієї, де було проведено розгортання, але я сподіваюся, що основна суть не буде втрачена. Тестова середовище містить один ліс до складу якого входять два домена uc.loc і branch.uc.loc.

Розгортаємо lync 2013

Продуктивне середовище складалася приблизно з 20 доменів, які обслуговували близько 60 контролерів домену. Сервери Lync були розгорнуті в кореневому домені. Облікові записи користувачів Lync так само перебували в кореневому домені.

У підготовчі етап зазвичай входить:

1. Підготовка Служби Каталогів Active Directory

2. Підготовка інфраструктури DNS

3. Підготовка сертифікатів

Підготовка Служби Каталогів Active Directory

Спочатку необхідно переконатися, що поточна інфраструктура не була підготовлена ​​для інших версії Lync або OCS / LCS.

Для того, щоб визначити чи була служба каталогів підготовлена ​​раніше, необхідно подивитися в розділі схеми наявність об'єкта CN = ms-RTC-SIP-SchemaVersion, версія ПО визначається за допомогою значення атрибута rangeUpper:

Розгортаємо lync 2013

LcsCmd / forest / action: checkschemaprepstate /l:c:\logs\checkschema.html

LcsCmd / forest / action: checkforestprepstate /l:c:\logs\checkforest.html

Розгортаємо lync 2013

Перевірка домену uc.loc:

LcsCmd /domain:uc.loc / action: checkdomainprepstate /l:c:\logs\checkdomain.html

Розгортаємо lync 2013

Якщо uc.loc кореневої домен, а branch.uc.loc дочірній, команда виглядає наступним чином:

LcsCmd.exe /domain:uc.loc / action: CheckDomainAddState /refdomain:branch.uc.loc /l:c:\logs\checkdomainadd.html

Розгортаємо lync 2013

Розгортаємо lync 2013

У розділі Pools знаходяться розташовані сервери Standart або пули серверів Enterprise. У розділі Global Settings власне зберігаються глобальні настройки інфраструктури LCS.

1. Деактивация компонент

2. Видалення файлів LCS

3. Видалення підготовки домену та ліси.

Деактивация Standard Edition:

lcscmd.exe /Server:lcs.branch.uc.loc / Role: SE / Action: Deactivate / Force /refdomain:branch.uc.loc

Після того, як сервер деактивовано, контейнер RTC Service / Pools буде порожнім.

Далі має бути видалити дозволу, які були створені за допомогою DomainAdd для домену branch.uc.loc:

LcsCmd.exe /domain:uc.loc / action: DomainRemove /refdomain:branch.uc.loc /l:c:\logs\remove_domainadd.html

Розгортаємо lync 2013

Перевірка: LcsCmd.exe /domain:uc.loc / action: CheckDomainAddState /refdomain:branch.uc.loc /l:c:\logs\checkdomainaddremove.html

Після цього можна приступати до видалення підготовки доменів

Lcscmd /domain:branch.uc.loc / action: domainunprep /l:c:\logs\uc.loc_unprepdom.html

Lcscmd /domain:uc.loc / action: domainunprep /l:c:\logs\uc.loc_unprepdom.html

При цьому повинні піти групи RTC *, а так само записи ACE з цими групами на контейнерах в розділі домену

Розгортаємо lync 2013

Результати перевірки підготовленості домену uc.loc

Залишився останній крок, це видалення підготовленості лісу

Lcscmd / forest / action: forestunprep /l:c:\logs\forest_unprep.html

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

Розгортаємо lync 2013

Результати перевірки підготовленості лісу:

За допомогою ADSIEdit можна переконатися, що контейнер RTC Service видалений.

Після виконання команди forestunprep необхідно дочекатися реплікації глобальних каталогів в усьому лісі. Вручну упевнитися, що контейнер RTC Service видалений, можна за допомогою ADSIEdit, підключившись до TCP 3268 "dc = uc, dc = loc"

  • Підготовка схеми;
  • Підготовка лісу;
  • Підготовка домену.

Перевірка поточної версії Powershell:

get-host | Select-Object version

Після установки Powershell, номер версії повинен бути 3.0

Add-WindowsFeature Web-Dyn-Compression, desktop-experience, RSAT-ADDS, Web-Server, Web-Scripting-Tools, Web-Windows-Auth, Web-Asp-Net, Web-Log-Libraries, Web-Http-Tracing , Web-Stat-Compression, Web-Default-Doc, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Errors, Web-Http-Logging, Web-Net-Ext, Web-Client-Auth, Web -Filtering, Web-Mgmt-Console, Msmq-Server, Msmq-Directory

  • Установка виправлення KB 2646886
  • Установка Silverlight (необов'язково)

Інсталяція Microsoft Visual C ++ Minimum Runtime

Розгортаємо lync 2013

Розгортаємо lync 2013

Для підготовки схеми необхідно:

  • Переконатися, що на контролері з роллю «схема майстер» дозволений віддалений доступ до реєстру:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurePipeServers \ winreg
Description: REG_SZ
Value: Registry Server
Перевірити ACL winreg на предмет того, якого рівня доступу і якої групи дозволений доступ.

Підготовку схеми можна перевірити вручну, за допомогою перевірки атрибута rangeUpper. см. вище таблицю з значеннями, а так само за допомогою команди:

Get-CsAdServerSchema -Report c: \ logs \ verify_schema.html

(Розглянути в моніторі як працює цей цмдлет)

Я вважаю, що переходити до підготовки лісу не переконавшись, що реплікація змін схеми між усіма доступними контролерами пройшла - не зовсім коректно. Принаймні при цьому зберігається контроль над процесом оновлення Active Directory, і в разі якихось проблем адміністратор вирішує проблеми послідовно і переходить до наступного етапу оновлення. Можливо, що такий підхід не економить час, але однозначно економить нерви :). На оновлення 20 доменів (60 контролерів) було витрачено близько трьох годин.

З урахуванням вищесказаного був написаний невеликий скрипт, який відповідно до списку контролерів перевіряв версію атрибута rangeUpper.

Скрипт відповідно до списком контролерів (DomainControllers.txt) відображає назву контролера, значення rangeUpper, значення rangeLower. Файл DomainControllers.txt формується вручну.

Set objFSO = CreateObject ( «Scripting.FileSystemObject»)
If (objFSO.FileExists (strFileName)) Then

Set f = objFSO.OpenTextFile (strFileName, 1, False)
Do While (f.AtEndOfStream <> true)
strDCName = f.Readline
set Obj = GetObject ( «LDAP: //» strDCName «/ CN = ms-RTC-SIP-SchemaVersion, CN = Schema, CN = Configuration, DC = mbrd, DC = ru»)

WScript.Echo now «,» strDCName «,» obj.rangeUpper «,» obj.rangeLower

Set Obj = nothing

Після того, як реплікація між контролерами пройшла успішно, приступаємо до підготовки лісу. Для того, щоб підготувати ліс, необхідно, щоб комп'ютер з якого виконується команда Enable-CsAdForest був включений до кореневого домену лісу, інакше відобразиться наступна помилка:

Розгортаємо lync 2013

Команда для підготовки лісу:

Enable-CsAdForest -GroupDomain uc.loc -GlobalCatalog dc01.uc.loc -Verbose -Report c: \ logs \ EnableForest.html

Експериментально було помічено, що якщо команда Enable-CsAdForest не містить атрибути GroupDomain і GlobalCatalog підготовка лісу закінчувалася з помилкою:

Після того, як ліс підготовлений в конфигурационной партіціі з'явиться контейнер «RTC Services»

Розгортаємо lync 2013

А так же в оснащенні ADUC в контейнері Users з'являться нові групи CS * і RTC *.

Для перевірки поновлення лісу на контролерах так само був зроблений маленький скрипт:

import-csv. \ DomainControllers.txt | foreach-object <
$ DC = $ _. DC

$ Result = get-csAdForest -GlobalSettingsDomainController $ DC

write-host «$ result $ dc»

Нижче представлений результат виконання сценарію. У ньому видно, що dc01.uc.loc підготовлений, а до dc02.branch.uc.loc оновлення ще не дійшла.

Залишилася тільки підготовка домену. Для того, щоб підготувати домен uc.loc необхідно скористатися командою:

Enable-csaddomain -domain uc.loc -report c: \ logs \ prepdomain.html

Тут так само існує невеликий нюанс - ім'я домену має бути FQDN, інакше відображається помилка:

Розгортаємо lync 2013

Перевірити підготовку домену можна за допомогою команди

Get-csaddomain -domain uc.loc -report c: \ logs \ prepdomain.html

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

Розгортаємо lync 2013

У моєму випадку в домені було тільки два контролера в одному сайті, тому скрипт перевірки я робити не став, але в інфраструктурі, де один домен обслуговують понад 10 контролерів в різних сайтах, автоматизація перевірки полегшить життя.

На цьому підготовку Служби Каталогів можна вважати завершеною.

Вітаю!
Зіткнувся з проблемою. При спробі підготувати ліс видає наступну помилку:

що це значить, не підкажете?

Напишіть будь ласка рівень лісу, в яких групах користувач з під якого виконуєте процедуру поновлення, пройшло чи оновлення схеми успішно і пройшла репліка між усіма контролерами. Відразу можу порадити - якщо зіткнулися з проблемою відновлення робіть клон ВМ контролера і в тестовій середовищі продовжуйте експериментувати, взагалі перевірка поновлення на тестовій середовищі продуктивної служби каталогів це обов'язкова процедура.
А взагалі проблема скоріше за все зважитися так:
запустіть підготовку лісу з наступними ключами:
Enable-CsAdForest -GroupDomain domain.local -GroupDomainController dc01.domain.local -GlobalCatalog dc01.domain.local

Наскільки я розумію, якщо в продуктивний ніколи не було LCS / OCS, тоді Lync зберігає конфігурації в конфигурационной партіціі, в розділі RTC Service, при цьому точно такого контейнера немає. А ось якщо був LCS або інші старі версії, тоді конфігурація зберігалася в доменній партіціі і Lync за замовчуванням створить там контейнери, якраз в Microsoft. Тому якщо у вас були старі версії треба було спочатку їх видалити, якщо розгортання Lync проходить вперше в середовищі, то такий контейнер не потрібен. Якщо не складно можете показати CN цього контейнера? Напевно він знаходиться в доменній партіціі ...

Доброго вам дня.

Виник ось яке питання.

Завершено з попередженнями

Дозволи на обробку для об'єкта «CN = RTCUniversalGlobalReadOnlyGroup, CN = Users, DC = (Моє ім'я домену), DC = local»

Попередження: ACE (Моє ім'я домену) \ RTCUniversalGlobalReadOnlyGroup; Allow; ReadProperty; None; None

Попередження: Одна або кілька групових записів управління доступом (ACE) не готові.

попередження
Перевірити Дозволи для CN = RTC
Service, CN = Services, CN = Configuration, DC = (Моє ім'я домену), DC = local

Перевірити Дозволи для ConfigurationContainer

Перевірити Дозволи для RootDomainSystemContainer

Відразу хочу сказати що справа не в сервері тому спробував прикрутити його і до іншого сервера
і просто видалити з топології сервер довірених додатків і відновити попередню топологію без
цього сервера, тепер завжди видається таке повідомлення.
У чому може бути проблема і критична чи?
Не підкажете …
З повагою В'ячеслав.

Віктор, поправте імена доменів в другому абзаці - у Вас замість них імена контролерів написані