Skype for Business Server 2015 In-Place Upgrade

Good News – Skype for Business Server 2015 RTM components have been released!!

Bad News for some – VLSC\MSDN Subscription required at the moment 😦

As I haven’t created a walkthrough post yet, I thought there would be no better time to get one on the board and kick off with my experience whilst migrating Lync Server 2013 to Skype for Business Server 2015.

Now an unfortunately a lab demon haunted me (in the form of a Windows Update to Server Technical Preview) on release day (1st May) that completely killed my lab, I did have mirrored databases along with persistent chat and an OWA farm deployed and it would have been interesting to see the Persistent Chat process.

For the purposes of this walkthrough this is what I will be starting off with:

Active Directory

Namespace uccorey.local
Topology Single Forest, Single Domain
Forest Functional Level 2012 R2
Domain Functional Level 2012 R2
Domain Controllers DC01
DNS Forward Lookup Zones uccorey.local

My Lync Server 2013 Topology is as follows

SIP Domain (I was tired, forgive me)
Edition Enterprise
Front Ends LyncFE01.uccorey.local
File Share SQL01\CsShare
Functionality Enabled IMP
Audio/Video Conferencing
Enterprise Voice
Internal Web Services FQDN
External Web Services FQDN
SQL Server Store
SQL 2012 Standard
(CMS, Monitoring, Archiving)
Office Web Apps Server FQDN WAC01.uccorey.local
Office Web Apps Internal URL WAC01.uccorey.local
Office Web Apps External URL

I have a single Kemp VLM load balancing my web service traffic, therefore my Internal Web Services FQDN points to a VIP presented by this appliance

Now to begin with, to ensure any deployment no matter how big or small it’s important not to overlook anything;

Understanding Your Topology;

There will be several applications that may not be supported within Skype for Business just yet, applications with the Lync Partner Eco System for example; is your contact centre certified for Skype4B? Has your SBC been tested? Understanding the overall components that make up your topology is crucial.

In my scenario, things are fairly simply;

  • I am running a single Enterprise Edition pool, all Front Ends are running on Windows Server 2012 R2 and therefore support Windows Fabric v3 (Server 2008 does not).
  • My Backend database is currently installed on SQL2012
    • My Monitoring and Archiving Stores are also installed on SQL 2012. A decision is to be made here, are you going to retain the existing DBs, or continue with new databases?

Upgrade/Migration Decision;

Are you going to perform an in place upgrade or side by side migration? ]

I’m not going to go too much into the side by side approach in this article, but that approach would be required when moving from say Lync Server 2010, or you may wish to take that approach when Lync Server 2013 roles are hosted on Server 2008 R2 for example.

When performing an in place upgrade, there are two options;

  • Are you going to Move Users to a new pool, which in turn requires no (in reality, minimal) downtime for users during the upgrade, or;
  • Are you going to use the offline method?
Graphical process for moving users to a new pool during the inplace upgrade

Graphical process for moving users to a new pool during the inplace upgrade

For me, my decision is made for me, I have no available pools to move users to.

I could take the additional effort to introduce a small Standard Edition Pool to move users too to keep them online whilst I perform the in place upgrade – but in my lab I have no SLAs J

If you are electing to move users, depending upon the amount of downtime, you should consider moving your conference directories associated with the pool in question to retain PSTN dial in conferencing functionality for existing scheduled conferences.


  • Backup, Backup, oh and erm….backup! – goes without saying!
  • Apply the latest CU to your existing Lync Server estate
  • Install Windows Update KB2982006 if running Server 2012 R2
  • Install Windows Update KB2858668 if running Server 2012
  • Install Windows Update KB2533623 if you are going against all advice/recommendations and continuing to use Server 2008 R2 – an almost EOL server OS J
  • Apply SQL Express SP2 to all Lync Server roles hosting a SQL express instance
  • Ensure Windows Firewall Service is running – the upgrade will fail if this is not running
  • Ensure you have at least 32GB disk space on your front end servers
  • If running Lync Room System Administration Portal on any of your Front Ends, remove this – it will not work following the upgrade

At this stage, you have multiple options;

  1. Upgrade an FE Pool along with the Monitoring and Archiving stores (MY Choice)!
  2. Upgrade an FE pool without upgrading Archiving and Monitoring
  3. Upgrade an FE pool and associate it with new Monitoring and Archiving Stores

If you did wish to complete an upgrade of the pool without upgrading existing databases, disassociate your monitoring and archiving stores prior to completing the next steps.

If you wish to create new stores, the again, disassociate your existing stores, and redeploy monitoring and archiving following the upgrade.

Enterprise Edition In-Place Upgrade Process:

The rest of this post assumes you have a fully working Lync Server 2013 Enterprise Edition Pool.

To complete the process, you will require a management machine that does not have any Lync\OCS components installed on it.

Do not perform the following steps from any of the existing front end servers, I’m going to use a server 2012 R2 VM, let’s call this MGMT01 (but any Win7+ 64bit edition machine will suffice, so long as no Lync components are installed.)

  1. From MGMT01, insert the Skype4B media DVD,
  2. Browse to d:\Setup\ADM64 and Run Setup.exe (d: may not be your local CD\DVD drive, update the drive letter accordingly)

  1. Visual C++ will be download and installed if not already on the local machine

  1. Click Next, then Select Install
  2. Accept the EULA (If you do, actually accept the conditions being set J )

  1. We are introduced to our first management improvement here, checking for updates as part of the installation process, and not post installation!
    1. Setup will search Windows Updates for any applicable updates and then install the Skype for Business Server 2015 Core Components

  1. You will then be presented with the deployment Wizard:
    1. Active Directory Schema is already prepared J
    2. Call Quality Dashboard option now available

  1. From the Skype for Business Deployment Wizard pane, click Install Administrative Tools
    1. Select Next and the tools will install themselves

  1. When installing Lync or any components related to Lync it is always important to understand where the logs will be written to, in our case this is;


    To find your location, select the view log button following the installation of the tools

  1. Once installed, from MGMT01, I will open the Skype for Business Server Topology Builder
  2. Select download topology from Existing Deployment, I’ve saved my TPB file as S4BUpgrade.tbxml

  1. Browse to the location that you stored the topology in and make a copy of this file as once the upgrade is complete, you are not able to downgrade
    1. Save the file as something easily identifiable, i.e. PreUpgrade2013Version.tbxml
    1. Now browse down to the pool you will upgrade, right click the pool and select Upgrade to Skype for Business Server 2015
      1. Again – It is not possible to downgrade, make a cop of your topology before upgrading!
      2. The Wizard will ask you if you are sure, prior to moving the pool node in topology builder, under the Skype for Business node

  1. Select Yes
  1. Oh no….my pool has gone! :O

  1. Ahh… there it is…..!

  1. Before moving onto Step 15, ensure you are clear with the direction you are taking with any associated services, particularly Monitoring and Archiving databases.
  2. Once you are happy, select Action and Publish Topology

  1. Review the verifications (QQ: Can you recite the entire Topology Publishing messages because you have seen it X amount of times?)

  1. Because I am electing to upgrade my Central Management Store, monitoring and archiving databases, Topology Builder prompts me accordingly

    Work with your SQL Administrators to ensure the correct locations are being utilised for database installation – Do not upset your DBAs!

  1. It is important to ensure you have the appropriate permissions to the SQL Server to perform the database upgrade using the current account

  1. As we can see, my topology publishing completed successfully, but with warnings.

  1. Reviewing the steps, showed me that warning(s) have been presented during the database creation step. Clicking view logs will give us more information

  1. Finally, one step that is often overlooked, is the to-do list, a copy of mine is below;

Import existing normalization rules from the previous Skype for Business Server deployment. If you want to keep your existing normalization rules you will need to import them using the Import-CsCompanyPhoneNormalizationRules cmdlet. If you have separate normalization rules for each pool then you will need to run the command for each set.

To perform an in-place upgrade of your Skype for Business Server, you’ll need to do the following, in order:

(1) Stop the Skype for Business services on all of the servers that you are upgrading;

(2) Run Skype for Business Server setup (Setup.exe) on all of the servers you are upgrading;

(3) Start the Skype for Business services on all of the servers you upgraded. To start the services in a Front End pool, connect to one of the servers in the pool and run the Start-CsPool cmdlet. All the servers in the pool should be running Skype for Business Server before you use the Start-CsPool cmdlet. To start the services in all other pools (e.g. Edge pool, Mediation pool), run the Start-CsWindowsService cmdlet on every server in the pool;

Server FQDN: fe01.uccorey.local, Pool FQDN:

Server FQDN: fe02.uccorey.local, Pool FQDN:

Server FQDN: fe03.uccorey.local, Pool FQDN:

In Summary:

  1. Import-CsCompany PhoneNormalizationRules to recreate your address book customisation efforts
  2. Stop-CsWindowsService on all servers that will receive the in-place upgrade treatment
  3. Run Skype for Business Setup on all servers that are being upgraded

Now it is as this point, you may wish to move user to a secondary pool to maintain services for them during the upgrade, for me I’m going to go ahead and complete the following;

  1. From each Front End Server within the pool, run the following command
    1. Disable-CsComputer –Scorch
    2. Disabling the computer versus stopping the services means that if the server requires a reboot during the upgrade process they will remain in a stopped state upon reboot
    3. Running Stop-CsWindowsService will result in services starting backup on the reboot process.

The following steps highlight a single Front End server but the process is the same for all of the servers in your pool;

  1. Open Lync Management Shell with administrative privileges
  2. Run the following command: Disable-CsComputer –Scorch –Verbose

  1. Complete this for each server in your pool if running enterprise edition
  2. We have now stopped Lync Services prior to upgrading

Insert the Skype4B media into your first front end server.

  1. The process is the same, from the server, open the media and select setup.exe
  2. Accept the EULA, again, if you agree (Ever watched South Parks Centipad episode?)
  3. Smart Setup – Check for Updates!
  4. So, purely for educational purposes I have reduced the disk size to 29GB for this install and low and behold, the following error is presented to me;

  1. And if you have a missing Windows Update PreReq:

  1. Remember when that Windows Update PreReq for your OS prompted you to reboot? Remember when you said Restart Later, you just lost J

  1. Once you are in a positon to move forward, start/restart the setup.exe application and the process will handle itself. If you do need to reboot a front end to fulfil prereqs, from experience the Deployment Wizard will auto resume if you logon with the same user account once the system has restarted. A summary of the tasks it completes can be seen below

Repeat the previous steps 1-6 for each of your remaining front end servers.

As you complete the process on each of your Front End Servers, you will be presented with the following;

Following the completion of the server, connect to one of your Skype for Business front end servers and run the following command from the Skype for Business Management Shell;

  • Start-CsPool –Verbose
  • This is another new significant improvement to the management experience. For user pools, we can use this pool to bring up all of the defined front end servers in a controlled manner. For none user homed pools (i.e. all other pool types, edge, mediation…) we must still run the Start-CsWindowsService unfortunately L
  • It took approximately 5minutes for my pool to start, below are some of the initial screenshots during the process.

Running Get-CsWindowsService confirms the above output (Can you call out the new services? :P):


So there you go, in summary we have taken a 3 node Lync Server 2013 Ente5prise Edition pool along with its associated Monitoring and Archiving databases to Skype for Business Server 2015 – painless right?

Successful client sign in

Successful client sign in

Take into account you have retained the existing certificates, existing DNS records, the schema hasn’t required updating and most importantly the existing hardware and then you will realise how much this has simplified the process! – Hats off to you Ms

Hopefully this has been of use, maybe you don’t have access to the Skype for Business media, or do not have the capacity to run Enterprise Edition.

Give me a shout if you have any questions – happy to recreate any scenarios for you! J


14 thoughts on “Skype for Business Server 2015 In-Place Upgrade

  1. Pingback: Updating Skype for Business Front End Servers | Skype4Business UC

  2. very nice job mate but I have some questions :

    1- how do we to migrate persistent chat server with co-located Front End Server?
    2- how do we to migrate trusted application server on Front End Server?


    • Hi Selahattin –

      Your Persistent chat server, since it is collocates I am assuming you are running standard edition server?
      In which case performing the In place upgrade should include your persistent chat components too during the process – is this not the case?

      what trusted app servers are you using? Considering it is also an in place upgrade, I would imagine they are moved along with your pools, to the Skype for business node as you select the option to upgrade your pool in topology builder (they are not shared components)

      Thanks for reading the post and do let me know how you get on!

  3. Hi

    The order of upgrading servers is important ? So it would be in-place upgrade order like below , am I correct?
    – Lync SE FE
    – Persistent Chat Server
    – Trusted Application Server
    – Edge Server
    and so on


    • That is correct, in your case as you have only a single pool, that is the first candidate for upgrade – then the remaining internal servers, finally working out to the perimeter edge server.

      If you had multiple pools, it is important to upgrade the non central management pool first, nothing for you to worry about in this instance.

      Hope this helps!

      • That’s OK, make sure to keep an eye out for more upcoming posts on Skype for business as more functionality is rolled out! Thanks for using my post 🙂

      • Just to add selahattin, I checked with a colleague with regards to his P Chat upgrade collocates – all went ok, no additional considerations 🙂

  4. Hello,

    Good article. Had a question. Using the move-csuser method since I have multiple pools. First pool that I upgraded was a non CMS user pool. When it’s time to upgrade the pool with CMS, do we have to invoke the CMS failover to the site that was upgraded to Skype ? Does it matter ? What about the trusted application servers (i.e. Exchange OWA integration) ? Thanks.

    • Hi John

      Thanks fore taking the time to read the post – glad you found it useful.

      With regards to your CMS;
      – ensure you have removed the pool pair, which I’m sure you have
      – Once the Non-CMS pools are upgraded, the CMS can stay where it is whilst you upgrade the hosting pool

      Trusted Applications;
      – integration needs to be recreated, so they all must be removed and redeployed under SfB
      – With OWA integration, ensure you update your webconfig file to point to the new pool
      – Take the view of a “fresh OWA” deployment once the TrustedApplications are removed, ensuring you don’t miss any required steps.

      hope this helps mate!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

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

Facebook photo

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

Connecting to %s