Upgrade Lync 2013 to Skype for Business 2015 Step-by-Step

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

I’m running Windows Server 2012 R2 on all my servers, so the only updates I have to apply is the Cumulative Update for Lync (to be safe, the May 2015 Cumulative Update (https://support.microsoft.com/en-us/kb/3051949) and the SQL Server 2012 SP1 update.

The Updates for Lync Server 2013 article (https://support.microsoft.com/en-us/kb/2809243) describes how to update your Lync servers to the latest CU level.

The latest available Service Pack for SQL 2012 is SP2 which can be downloaded here: http://www.microsoft.com/en-gb/download/details.aspx?id=43351

You can patch the server by opening a Lync Management Shell window and entering the following commands:

Stop-CsWindowsService
.\SQLEXPR_x64_ENU.exe /ACTION=Patch /allinstances /IAcceptSQLServerLicenseTerms

All instances will be automatically upgraded:

image

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.

Start the Skype for Business 2015 setup application (D:\Setup\AMs64\setup.exe), accept the license agreement and let the application install the necessary binaries for the Core Components. When the Deployment Wizard is installed select the Install Administrative Tools options as shown in the following figure:

image

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.

image

The next step is to open the Topology Builder, select Download Topology from existing deployment and store the topology file on the local hard disk. In the Topology Builder, right click the existing Lync 2013 Topology and select the Upgrade to Skype for Business Server 2015 as shown in the following figure:

image

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.

image

A new entry will appear in the Topology for Skype for Business Server 2015, containing the existing/upgraded configuration:

image

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.

image

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.

image

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:

Disable-CsComputer –Scorch
Stop-CsWindowsService

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:

image

Start the Skype for Business 2015 setup application (D:\Setup\Amd64\Setup.exe). Accept the License Agreement and click OK.

In the unfortunate event you forgot to install one or two updates a warning will be shown so you can update with the correct hotfix, as shown in the following figure:

image

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.

image

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.

image

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:

image

To start the Front-End pool open the Skype for Business Management Shell and enter the following command:

Start-CsPool PoolFQDN

After some time and lots of information on the console the front-end pool is up-and-running again.

image

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:

image

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:

image

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.

When the Topology is upgraded the Edge Server can be upgraded. Stop the services using the Stop-CsWindowsService command, start the setup application from D:\Setup\Amd64, accept the license agreement and follow the wizard. Obviously my original Edge server didn’t have the .NET Framework 3.5 installed:

image

After installing the .NET Framework 3.5 and patching the server the upgrade process continued but ran into another issue. It seems that replication didn’t take place, so the Lync 2013 Edge server was not aware that the Topology was upgraded to Skype for Business 2015. After forcing replication using the Invoke-CsManagementStoreReplication cmdlet it worked out fine. Another option is to export the configuration on the Front-End server using the Export-CsConfiguration cmdlet, copy the ZIP file to the Edge server and import it there using the Import-CsConfiguration cmdlet.

Once fixed the upgrade ran smoothly and finished after 45 minutes.

image

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.

image

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

Upgrading the Lync 2013 Mediation Server is similar. First upgrade the Mediation Pool to Skype for Business in the Topology Builder, then publish the Topology to the CMS and upgrade the Mediation server itself. Please note that .NET Framework 3.5 is needed on the Mediation server. It took approx. 45 minutes to finish the upgrade to Skype for Business 2015.

image

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.

35 thoughts on “Upgrade Lync 2013 to Skype for Business 2015 Step-by-Step”

  1. Hello Jaap, you make a comment of “Lync 2013 Enterprise does not support in-place upgrades”. In my reading-up so far I have not found a reason why this should not work… Could you share any articles on why this is not supported?

    Liked by 1 person

      1. Hi Jaap. Thanks for an informative article on the upgrade, especially for clearing up my question about needing a separate server for TB.

        The paragraph about the Enterprise version not supporting in-place upgrade is still wrong btw.

        Brgds,
        Rune

        Like

      2. Hi Rune,

        I made some changes to the article. Both Standard Edition and Enterprise Edition can be upgraded in-place. However, we do not recommend this for customers since there’s a serious risk involved. I was lucky and this worked out fine immediately, but I’ve seen too many customers running into issues I’m afraid.

        Thanks, Jaap

        Like

  2. Hello Jaap ! Thank you for your tutorial.. But I’ve got a problem while upgrading to Skype. Here is what I see on the setup window :

    “Uninstalling role … Failed”

    L’opération a été arrêtée, car une erreur s’est produite. Consultez le journal pour déterminer comment corriger la défaillance, puis réexécutez le programme de démarrage.Exception : The given key was not present in the dictionary.
    at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
    at Microsoft.Rtc.Internal.Tools.Bootstrapper.BootstrapperTask.RemoveUnusedFeatures(Boolean scorch)
    at Microsoft.Rtc.Management.Internal.Utilities.LogWriter.InvokeAndLog[T](Action`1 action, T arg)
    at Microsoft.Rtc.Internal.Tools.Bootstrapper.BootstrapperTask.Action()
    at Microsoft.Rtc.Management.Internal.Utilities.LogWriter.InvokeAndLog(Action action)
    at Microsoft.Rtc.Management.Internal.Utilities.LogWriter.InvokeAndLog(Action action)
    at Microsoft.Rtc.Internal.Tools.Bootstrapper.Program.Main(String[] args)

    And when I click on “View log” :

    Microsoft.Rtc.Internal.Tools.Deploy.Exceptions.MsiErrorException: The MSI Bootstrapper returned error code -1, log file location: C:\Users\administrator.TRAINING\AppData\Local\Temp\
    at Microsoft.Rtc.Internal.Tools.Deploy.Tools.BootstrapperRunner.Run(String parameters, IOutputChangePublish outputChangePublish, BootstrapperRunnerOptions options)
    at Microsoft.Rtc.Internal.Tools.Deploy.Tools.InPlaceDeploymentSteps.BootstrapperScorch(Object param)
    at Microsoft.Rtc.Internal.Tools.Deploy.ViewModels.DeploymentStepViewModel.Action(Object param)
    at Microsoft.Rtc.Internal.Tools.Deploy.Commands.RunDeploymentCommand.RunSteps(Object obj)

    ———

    Any idea ?

    Like

    1. Hi,

      You are not the only one facing this problem…. https://social.technet.microsoft.com/Forums/en-US/08468cde-249f-4c9b-b84b-574c34cf93da/upgrading-from-lync-server-2013-to-skype-for-business-server-2015?forum=lyncinterop
      The error “The given key was not present in the dictionary” in the first part makes me think about .NET Framework. Are you up-to-date with patches? I spend a day or so updating my servers, both Windows and Lync. Besides this, did you get any other error messages?

      Thanks Jaap

      Like

      1. Than for your answer Jaap 🙂 . I’m the guy who post a message on the microsoft forum… lol (Sinan Dogan). Well I did the CU and the SQL update that’s all. I thought that were the only updates to do ?! Well I get no other error messages for the moment

        Like

      2. I already thought that was you 🙂
        I’m curious to see if updating the .NET framework would fix this issue, but I’m not sure. If not I’m afraid you better open a support ticket at Microsoft.

        Thanks Jaap

        Like

    1. Hi,
      forget my previous comments, I was messing up with upgrading CU’s where databases are upgraded. In this scenario only the SQL server version is upgraded, but nothing is done with the databases itself and all data should be available after the upgrade.
      Thanks,
      Jaap

      Like

      1. Hi

        okay, then just so I understand it correctly… You don’t need a new database for SfB upgrade. After the upgrade you will be running on the old (Lync 2013) database.

        Correct?

        thanks 🙂

        Like

  3. Just completed the upgrade from 2013 to Skype for Business Server. Frustrating thing I will say is make sure you have backups if you are going down the upgrade oath as I ended up bricked 3 times so thank god for snapshots.

    Anyway, big stumbles for me was installing the upgrade on the server and the instal database step failing as the RTC groups already existed on the databases – had to install the management studio and remove the logins manually from the rtclocal instance before it would go on – which, in an over the top upgrade, would be normal.

    Other problem was on the edge deployment where overlapping sidfed setup caused the services to fail on startup.

    Like

    1. Craig,

      I’m interested in the fact you used the word “snapshots”. I assume then your Lync 2013 environment was virtual and that after a failed in-place upgrade you could easily revert back to a pre-upgrade snapshot and everything would be fine?

      Also, how many FE pools do you have? I have 4 pools in different countries so once I publish the new SfB topology that process can’t reverted with a snapshot so assuming you had more than one FE pool you would snapshot after the topology publishing but before the in-place upgrade, correct?

      Like

  4. Hi Folks,
    I have an Edge Server in the perimeter network, when I ran import-csconfiguration in the Edge Server I got a error of Invalid Topology, then a fixed the problem running the following:

    Import-CsConfiguration -FileName “C:\topology.zip” -LocalStore

    It worked fine!!

    Like

  5. Hi Jaap

    thanks for the great article.

    I have performed the above update as per your instructions .

    when i join a meeting with the link from the invitation sent from outside my company – https://meet.lync.com/xyz , i would not join the call . and say ” you ve left the call ” .
    as a work around i am use the web app , by adding ” ?sl=1 ” to the orgininal meeting url .
    Please suggest and advice me a solution to this.
    Regards
    Omer

    Like

    1. Hi,
      To be honest, I don’t have a single clue. I assume you want to connect to a meeting hosted on Lync Online, and since this must be running fine I think it’s a client side issue, maybe a networking thing? Do you have TMG or other proxy in your network?

      THanks,
      Jaap

      Like

      1. Hi Jaap , Thanks for your response .

        Well i can assure that this is not a problem from the client side . the reason is , we have two skype for business pools . if i use one of them it works , that pool is actually for my germany office. if i use the pool for india office , SFB meetings wont work .

        Like

      2. Hi,
        can it be something in your topology pointing to the wrong direction, for example from the India pool to the Germany pool or vice versa? Or some firewall issue maybe?
        I’m afraid I don’t have any precanned answer for you, it smells like serious troubleshooting.

        Thanks,
        Jaap

        Like

      3. Hi Jaap ,
        when you said firewall , i started with some serious troubleshooting with my network and found that it was a problem with the edge server unable to connect outside the network . finally fixed the problem .

        Thanks brother.
        God Bless you.
        Omer

        Like

  6. Hi, after upgrading from Lync 2013 to SFB, mobility stopped working, i have tried republished using TMG, ARR & KEMP Loadmaster, same problem-Error on Windows 8.1 phone devices: you are not set to use skype for business, contact your support administrator, On other devices i get cannot reach your server. Kindly advise

    Like

  7. Hi Jaap, I want to do an in-place upgrade but get the error that the sql version is not supported. I have sql server 2014 sp1 installed. Is it obliged to have sql server 2012 express with the latest service pack? Nothing else will work with an in-place upgrade?
    Regards, Marc.

    Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s