Как обновить lync 2013 до skype for business
Now that Microsoft has released Skype for Business 2015 it’s time to have a look at the upgrade possibilities. I’m running Lync 2013 Standard Edition in my environment (Lync 2013 Front-End Server, Lync 2013 Edge server and Lync 2013 Mediation server), and lucky enough there is an in-place upgrade possibility. A downtime if required, but when scheduling off business hours this should not be a problem. In this blog post I’ll discuss a step-by-step upgrade from Lync 2013 Standard edition to Skype for Business 2015.
Requirements
Before the servers can be upgraded to Skype for Business 2015 a number of requirements need to be met, depending of the underlying Operating System:
- Microsoft Lync Server 2013 CU5 (February 2015 update) or above
- PowerShell RTM version (6.2.9200.0) or later
- SQL Server 2012 SP1 or later
- Kb2533623 Windows Server 2008 R2
- Kb2858668 Windows Server 2012
- KB2982006 Windows Server 2012 R2
You can patch the server by opening a Lync Management Shell window and entering the following commands:
All instances will be automatically upgraded:
Please note that this is a prerequisite for the upgrade, i.e. the platform need to be running this version. Skype for Business installs SQL Express 2014 during the setup process.
Upgrade Process
When the server is fully patched it’s time to start upgrading the server. The first step is to install the Administrative Tools. It is not possible to install these on the existing Lync 2013 server, so a (temporary) server needs to be used. It is important that this server does not contain any Lync 2013 binaries.
This will also install the Skype for Business 2015 Topology Builder, needed to convert the Lync 2013 Topology to a Skype for Business 2015 Topology. When the installation is finished click Finish and click Exit to stop the Deployment Wizard.
At this moment nothing will happen, but the topology as saved in the local file will be converted to a Skype for Business topology. As long as you don’t publish it, nothing will happen to your existing environment. In the warning message saying Are you sure to upgrade the selected pool to Skype for Business Server 2015 click Yes.
A new entry will appear in the Topology for Skype for Business Server 2015, containing the existing/upgraded configuration:
To store this configuration back in the CMS, right click the Skype for Business Server in the top left of the Topology Builder and select Publish Topology.
When you have a small Lync 2013 environment it will take a few seconds to publish the Topology but if you have a (very) large environment it can take a serious amount of time, up to hours according to the warning message that’s shown when you start the publishing process. When the Topology is successfully finished click the Finish button.
At this point you’re finished with preparing the Topology and you can continue upgrading the individual servers (Front-End, Mediation and Edge servers).
Upgrade the Lync 2013 servers
When the Skype for Business Topology is successfully published the individual servers can be upgraded. To do this we start with the Lync 2013 Front-End server. The Lync services will be stopped and disabled so a downtime is involved here.
To stop and disable the Lync 2013 services open the Lync Management Shell and enter the following commands:
When running the first command the entire server is disabled and all Lync related group membership is removed. This is also mentioned in the warning that’s shown, click Y to continue:
Start the Skype for Business 2015 setup application (D:\Setup\Amd64\Setup.exe). Accept the License Agreement and click OK.
When corrected you can click the Retry button and when all is well the setup application will automatically continue with upgrading the Front-End server to Skype for Business Server 2015.
At the end of the installation (my Front-End server took 75 minutes to complete) you should see something like the following figure, click OK to complete the installation.
A last message is shown indicating you have to start the Front-End pool using the Start-CsPool command an start the SfB services on other servers using the Start-CsWindowsService command:
To start the Front-End pool open the Skype for Business Management Shell and enter the following command:
After some time and lots of information on the console the front-end pool is up-and-running again.
The good thing is, at this point the only server that’s upgraded is the Front-End server, the Mediation server and the Edge server are still running Lync 2013 and all seems to be working correctly 🙂
When opening the Skype for Business Control Panel it certainly looks familiar, the look-and-feel is much like the Exchange Admin Console and the Microsoft Online Portal, combined with the ‘old’ Lync 2013 Control Panel. When Topology is selected (at this point) you can see that only the Front-End server is upgraded and the other servers are still running Lync 2013:
Edge Server
After upgrading the Front-End server it’s time to upgrade the Lync 2013 Edge server. The process is very similar to upgrading the Front-End server.
First upgrade the Edge Pool to Skype for Business 2015 by opening the Topology Builder on the Front-End server, download the Topology, right click the Edge Pool and select Upgrade to Skype for Business Server 2015:
After upgrading publish the Topology to the CMS by right clicking on the Skype for Business in the top left corner and select Publish Topology.
Once fixed the upgrade ran smoothly and finished after 45 minutes.
When you click OK a reminder is shown you have to start the SfB services using the Start-CsWindowsService cmdlet, the same reminder that was shown when the Front-End upgrade finished.
After running the Start-CsWindowsService cmdlet all Skype for Business services are running as you can see in the MMC services snap-in.
Personally I’d like to reboot my servers after an upgrade, so after a couple of minutes I got my Edge server up-and-running again and was able to sign in remotely and use federation again.
Mediation Server
Summary
Skype for Business Server 2015 is the successor of Lync Server 2013 and is broadly available now. The good thing is that both the Standard Edition and the Enterprise Edition can be upgraded in-place. There’s a downtime involved but if you can schedule this off-hours this should not be a problem.
The question is if this is a good idea. In my case it did work out very well and for all three servers it took less than 3 hours to complete. But imaging the upgrade doesn’t work out well and you end up in a twilight zone where Lync 2013 is destroyed, and Skype for Business doesn’t want to install…. This is one reason we do not recommend this for customers, although it is possible.
You better use a ‘swing server’ method where new servers are installed and services are moved from Lync to Skype for Business gradually. This risk here is much lower, so you have to come up with a decent strategy about how to upgrade from Lync 2013 to Skype for Business 2015.
Достаточно подробно план миграции расписан на Технете и в куче блоггерских статей. Поэтому повторюсь и опишу свои впечатления.
1) Поддерживаемый порядок обновления: все FE-сервера, затем Edge, затем CMS. Это важно!
4) Поддерживается апгрейд Lync Server 2010 -> Skype 2015 или Lync Server 2013 -> Skype 2015. Если у вас инфраструктура, содержащая смешанные версии Lync, сначала обновите Lync до 2013.
5) Чтобы начать апгрейд, необходимо поставить на сторонний сервер административные утилиты SkypeFB и обновить с этого же сервера топологию с каким-нибудь FE-сервером.
6) Обновление сервера Lync 2013 Server Standard Edition выглядит так:
Stop-CsWindowsService
.\SQLEXPR_x64_ENU.exe /ACTION=Patch /allinstances /IAcceptSQLServerLicenseTerms
После установки апдейта не забудьте обновить базы Lync
Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn <SE.FQDN> -Verbose
Несколько раз перезагружаетесь и в результате все хорошо.
Не забываем поставить актуальный апдейт на SkypeFB (на момент написания статьи это June 2015).
7) После окончания обновления не забудьте запустить с любого сервера развертывание отчетов SkypeFB. Тогда ваши отчеты будут мягкие и шелковистые.
8) В процессе обновления были найдены следующие грабли:
8.2. Параллельно с процессом обновления я настраивал Exchange UM. В один прекрасный момент Lync-сервера сругались на косячную топологию (возможно, на наличие дублирующей записи для Exchange MBX в топологии) и отказались запускать службу RTCSRV (основная служба Lync). Все разом. Было. Круто.
Лекарством почему-то оказалось выпиливание дублирующих записей из топологии и назначение конкретного адреса в топологии на Lync-сервера.
После этого RTCSRV на Lync 2013 Server смог запуститься.
Также перестал работать Lync Edge (служба Access Edge). Вероятно, отвалилась привязка сертификата к службам. Помогло повторное назначение сертификата на службы.
8.3. После установки SkypeFB на оставшиеся Lync-сервера, вылеченные в 8.2, в журнале Lync стали регистрироваться повторяющиеся ошибки.
One or more Health Agent Probes encountered an unexpected error. The component(s)/Service(s) intended to be monitored by the Probe may be functioning correctly.
No connectivity with the Skype for Business Web App. Affected Web browser clients cannot use Web Conferencing modality.
No connectivity with any of Skype for Business Web App locations. The Web browser clients cannot use Web Conferencing modality.
Cause: Service may be unavailable or Network connectivity may have been compromised.
Resolution:
Verify all Skype for Business Web App services in the topology are running, and network connectivity is available.
Поиски в гугле подсказали, что надо вернуть назад настройку ip-адреса сервера Lync, измененную в пункте 8.2.
После изменения этой настройки и синхронизации топологии необходимо активировать IIS.
Error: The buffer supplied to a function was too smal (CryptographicException).
Соответственно, публичные сертификаты надо было перевыпускать или воспользоваться лайфхаком, который я опишу в другой раз.
The MSI InstallCsDatabase.exe returned error code 1.
Соответственно, для решения проблемы я почитал лог-файлы и подложил файлы базы данных в тот каталог, где инсталлятор их искал.
8.6. Последняя на сегодня проблема была связана с нормализацией внутренних (не E.164) телефонов в адресной книге Lync. В Lync Server 2010/2013 за нормализацию телефонов отвечает текстовый файл Company_Phone_Number_Normalization_Rules.txt.
В SkypeFB за нормализацию отвечает набор командлетов Get-CsAddressBookNormalizationRule/Get-CsAddressBookNormalizationConfiguration , а текстовый файл игнорируется. Импорт правил из текущего файла производится с помощью командлета
Вроде как должна была пройти автоматическая конвертация, но у меня ее не произошло.
Обновление Lync Server 2013 до Skype for Business 2015: 9 комментариев
Добрый день! Большое спасибо за полезную статью!
Дмитрий, а вы запускаете построитель топологии на стороннем сервере?
Смотрите пункт№5: установите административные компоненты SkypeFb на сторонний сервер (т.е. не на FrontEnd).
A.Vakhitov, большое спасибо за ответ.
То есть сейчас у вас остался один сервер Lync 2013, по совместительству держащий на себе роль CMS?
В построителе топологии опции по его апгрейду до 2015 нет?
Похоже, что я неправильно понял роль CMS, запутался сам и запутал Вас.
И есть центральное хранилище (SQL сервер), которое судя по всему, тоже должно мигрировать. В построителе топологии опции по его апгрейду до 2015 нет, или я просто не могу ее найти. При открытии дистрибутива SFB на этом сервере начинается проверка обновления, которая стопорится на первом пункте. Вопрос в том, как его заставить мигрировать. Полный текст и скриншот ниже:
Весной 2014-го года в нашей компании родилась идея создать корпоративный мессенджер на основе Lync (теперь уже Skype for Business). Вернее, сначала речь о мессенджере не шла, мы просто дорабатывали Lync под себя для более эффективной работы. По сути, мы использовали Lync-клиент в «штатном режиме», а наше приложение было просто дополнением для него, которое управляло контактами. Оно позволяло удобно разместить свои избранные контакты по всей ширине экрана, что было удобно для работы на десктопах, предполагало быстрый доступ к контактам и упорядочивало их по группам. Приложение назвали EasyLy (от «Easy Lync») и распространили среди «своих».
Рисунок 1. Первая версия программы
Постепенно в приложение добавлялись новые функции. Например, переписываться можно было как из Lync, так и из EasyLy, причем в последнем сохранялась история переписки. И в один эпохальный день было принято решение отказаться от интерфейса Lync и реализовать весь его функционал самим, чтобы след Lync остался только в диспетчере задач. То есть мы решили сделать свой собственный, более удобный мессенджер для десктопов на базе Lync. И вроде бы всё начиналось хорошо.
Что мы хотели получить в итоге?
В начале одно из основных неудобств Lync для нас состояло в отсутствии более или менее адекватного механизма сохранения и просмотра истории бесед. Lync, конечно, сохраняет (по истечении определённого времени) свою историю в Outlook, но этим крайне неудобно пользоваться. Помимо этого, история может вообще не сохраниться, если, например, закрыть окно с беседой до того, как произойдёт сохранение.
Что касается usability, мы проповедовали концепцию «One click» для экономии времени пользователя и повышения эффективности его работы и пытались создать приложение максимально простое, понятное и удобное для офисного работника. Целевая группа, которую мы выделили для себя, – это не модные «мобильные сотрудники», бегающие со смартфоном по «полям», а настоящие офисные трудяги, работающие по 8 часов за большим монитором, где всё должно быть эргономично.
Рисунок 2. Так выглядит EasyLy сейчас
Разработка
Первое, что было сделано – вкладка “Favorites”, где пользователь мог расположить все свои контакты, да еще и отсортировать их по группам.
Рисунок 3. Иконка контакта при наведении
Это было достаточно просто. Воодушевленные успехом мы начали двигаться дальше и полностью отказались от Lync UI (перевели Lync-клиент в UI Suppression mode). Это дало нам возможность отказаться от стандартных окон бесед, звонков (да и вообще всех окон) и реализовать весь базовый функционал приложения самим.
Не буду рассказывать про авторизацию пользователя, описание можно найти здесь. Расскажу про нашу вторую и самую главную вкладку «Dialogs», которую мы реализовывали почти год.
Рисунок 4. Вкладка диалогов с включенным режимом мультичата
Потом мы добавили поддержку аудио-, видеозвонков, шаринга экрана и приложений. Добавление в беседу поддержки Application Sharing пришлось реализовывать достаточно долго. В обычном режиме Lync показ экрана происходит в самой беседе, а в UI Suppression mode нужно все возможности шаринга реализовывать самому с помощью «линковского» контрола ApplicationSharingView, служащего для отображения расшариваемого ресурса, которому для работы нужен handle родительского окна.
Вот краткий список того, что мы сделали для поддержки шаринга:
• Создали окно для просмотра шаринга, реализовали перерисовывание картинки при изменении размеров родительского окна.
• Сделали вывод списка ресурсов (экран, приложения), которые можно шарить.
• Сделали обводку рамками расшариваемых ресурсов.
• Реализовали дополнительные возможности: например, передачу управления участнику конференции (чтобы он мог водить мышкой и кликать по экрану «шарящего» пользователя).
Шаринг в Lync (в UI Suppression mode) – капризная вещь: любит часто отваливаться по неизвестным причинам, а при переходе на Skype for Business 2016 начал делать это почти постоянно. При просмотре шаринга часто появляется черный экран, и с этим ничего не сделать, так как воспроизведением занимается контрол ApplicationSharingView, про который написано выше. Также на удачный запуск шаринга сильно влияет скорость соединения.
Далее мы перешли к созданию последней вкладки – «Groups», которая бы грузила списки групп из Lync и предоставляла пользователю возможность их полностью редактировать и сортировать в нужном порядке. Данная вкладка должна была перерасти в корпоративную вкладку, в которой бы размещались уже предварительно созданные в Active Directory группы для сотрудников (в Lync они именуются Distribution Groups): например, «Заказать пропуск», «Написать заявление» и т.д. Участниками данных групп являются сотрудники, занимающиеся определёнными вопросами в компании. При нажатии на данную группу открывается чат или аудио звонок с первым участником группы со статусом «онлайн». Редактированием этих групп должен заниматься администратор Lync-сервера.
Конечно, в процессе реализации всех задуманных планов у нас возникали проблемы, которые мы периодически решали. Но была особая группа проблем, связанная с некорректной работой библиотеки Lync SDK в Lync Suppression mode. Мы отправляли их описание в Microsoft и думали, что сможем получить поддержку и найти способ решения.
Проблемы
Как неожиданно выяснилось, в UI Suppression mode пропадает интеграция с Outlook:
• пропадают статусы контактов;
• отсутствует возможность создать беседу из карточки контакта;
• «отвалилась» кнопка «Создать собрание Skype».
Также заработали статусы контактов. Теперь Outlook их получает не от Lync, а от нашего приложения, но обновляет он их каким-то магическим образом, и они постоянно «отваливаются» и перестают синхронизироваться. То есть реально человек уже появился онлайн и «зелёный», а в Outlook – всё ещё в жёлтом статусе «Отошёл». Мы писали в поддержку Microsoft, на что они нам прислали ссылку на эту же статью. Писали также в Yammer Microsoft, на форумах MSDN, Reddit и других площадках… К сожалению, эта проблема так и не решена.
Нашлись баги и в самом Lync SDK. Самый критичный: в видеобеседе p2p при добавлении 3-го участника падает сам Lync-клиент, стабильно. Майкрософт сам этот баг подтверждает, но сроков устранения не называет. Были попытки убивать беседу p2p и создавать сразу видеоконференцию на троих, но если 3-го участника добавляет клиент SFB, мы не можем этому помешать. Остановка и возобновление видеоканала тоже ни к чему не привели.
Также проявилась проблема невозможности расшарить экран некоторым пользователям (тем, у кого установлена другая версия Lync-клиента). Проявляется данная проблема следующим образом.
Первый клиент работает в нашем приложении (версия Lync – 2013), второй – в SFB 2016, и у него при открытии беседы с первым кнопка расшаривания экрана недоступна. Если первый клиент заходит в обычный Lync 2013 (не Suppression mode), то у второго кнопка шаринга становится активной. Если у второго установлен также Lync 2013 или наше приложение, шаринг доступен с обеих сторон.
Часто возникает “ItemNotFoundException” при получении фото контактов, следовательно, приходится отображать наше стандартное изображение контакта. Эмпирическим путем мы нашли сколько раз (примерно 3) надо вызвать код получения фото, чтобы Lync его всё-таки вернул. Однако у некоторых контактов этот способ всё равно не срабатывает. Дополнительно мы ввели кэширование фото, чтобы при старте не сыпалась куча эксепшенов, если у пользователя добавлено много контактов.
Есть проблема и с группами пользователя, в частности с «Favorites group». Проблема заключается в том, что у некоторых пользователей при вызове CanInvoke(DeleteGroup) Lync возвращает true, хотя эта стандартная группа Lync, и её нельзя удалить. Тип у этой группы такой же, как и у группы, созданной пользователем (CustomGroup), поэтому скрывание пункта «Удалить группу» из меню приходится делать еще и по дополнительной проверке на имя группы, что является жёстким костылём.
Обнаружились ограничения Lync SDK 2013
Заключение
В процессе разработки мы поняли, что полностью реализовать полноценный аналог Lync, основываясь на Lync SDK + UCMA, не получится. Даже если не брать в расчёт ограничения данных технологий, обидно, что мы не смогли получить поддержку от Microsoft по исправлению ошибок Lync SDK.
На сегодня мы вынуждены отказаться от UI Suppression mode, т.к. в нём невозможно реализовать весь нужный функционал, и ищем варианты обхода проявившихся проблем.
Надеюсь, данная статья поможет начинающим разработчикам приложений на основе Lync/Skype for Business. И, возможно, кто-то из дочитавших до этого места захочет поделиться своими идеями. Пишите!
Возвращаться в прошлое, конечно же, не хотелось. Пришлось обновлять сервер Lync Server 2013.
Для версии Standard процесс обновления оказался не слишком сложным, хотя и сложнее, чем хотелось бы. Однако, на фоне нереально мучительной первоначальной установки сервера Lync Server 2013, обновление уже не выглядело страшным.
2. Проверяем готовность к обновлению. Запускаем командную консоль Lync Server с повышенными привилегиями и выполняем в ней команду:
3. Смотрим значение поля “State”. Для возможности обновления оно должно быть = “Ready”.
Если там “InSufficientActiveFrontEnds”, то останавливаем сервисы командой
и снова выполняем
нажимаем кнопку “Install Updates”. У меня процесс занял меньше 10 минут. По окончании обновления видим такое окно:
5. Перезагружаем сервер с Lync Server 2013. Забавно, что в окне графической панели управления версия НЕ изменилась, как была 5.0.8308.556, так и осталась.
Но после этого обновленный клиент “Skype для бизнеса” сразу же подключился к серверу.
1 Comment
Не вводите людей в заблуждение, Вы просто обновили ваш сервер до CU, причем не выполнили необходимые пост-установочные шаги, например не обновили Local Configuration Store, Central Configuration Store, не выполнили enable-cstopology.
Обновление до S4B выглядит совсем другим образом и после него вы сразу увидите новую панель управления.
Читайте также: