Skype for Business CU1 Install

The Microsoft Skype for Business 2015 CU1 has been released (available here https://www.microsoft.com/en-us/download/confirmation.aspx?id=47690) and installing it has added a few new challenges. Microsoft has added some new safety features to prevent you from messing with the fabric which is a good thing – getting them to actually work as documented is another challenge.

Starting with the CU1 in Skype for Business Microsoft has added an install blocker if the Skye services on the machine you are installing are running. Interestingly the check includes the Skype services and the Fabric but not the web services which the Stop-CsWindowsServices includes. If you attempt to patch a server without stopping the services a dialog similar to this appears.

 

 

The actual list of services will depend on the machine type that is being upgraded as well as the state of the services on that machine. Following the install documentation at https://support.microsoft.com/en-us/kb/3061064 it informs you to run Invoke-CsComputerFailover –NoStop –ComputerName <FQDN>. This is a new command that sounds great yet I was unable to get to add any value on a 3-node Pool.

As we know, the UpgradeDomains on a 3-node pool include one server per domain; so invoke the failover without stopping the services (-NoStop) adds no value and in my case just hung the process. On my first node I ran the command as instructed and sat with the feedback of the following:

I broke out of the command and performed a simple Stop-CsWindowsService on the computer and began the shutdown process. It did sit for a while at the Fabric but no longer than a minute.

 

Once the services were stopped I was able to run the Update and received the typical feedback windows showing me what was and was not up to date. In this case, everything was marked as out of date and there were even two new installs on the FEs (one on the Edge and PChat servers).

The installer worked its magic and upgraded all of the services just fine. Once complete I needed to start my services so Start-CsWindowsService –NoWait was invoked and the command to start all services was issued. I prefer the –NoWait as the services start quicker and I don’t have to sit there. It is a good idea to run Get-CsWindowsService at some point after issuing the start command to see what’s started, starting, and yet to be started.

Once everything was up and Get-CsPoolUpgradeReadinessState was 3/3, I moved on to the second node. Thinking that maybe the first node and its fabric was just in a weird state I attempted to invoke the computer failover again…and it hung again but this time it looked different.

 

Once again I broke out of the command and manually stopped the services so I could begin the upgraded. Once the install was complete I started all the services once again BUT when I ran the Get-CsPoolUpgradeReadinessState I received a Fabric warning.

 

Apparently the Invoke-CsComputerFailover was doing something and running Invoke-CsComputerFailBack –ComputerName <FQDN> corrected the problem.

Having so much fun with the CsComputerFailover command I attempted to use it once more on the third node, this time excluding the –NoStop option as again, if it had worked I would then be stopping the services anyway so it was invoked and what do you know - it worked. The services were draining and so the process took much longer than had I just stopped – although had I added the –Graceful option to the Stop-CsWindowsService command it would have done the same. I am in the opinion that if we are patching we have a maintenance window, so the sooner the services are down and we patch the better. Once patched the Invoke-CsFailback was used and bring everything back (including the starting of services) and we were done.

So – lessons learned…on a 3-node pool I would not use the CsComputerFailover command, I would simply stop the services, patch, and restart.


Update - thanks Korbyn

As a side – there is a single database update in this release - the QoeMetrics database was updated. Make sure you run the Install-CsDatabase command to update this followed by Test-CsDatabase -ConfiguredDatabases -SqlServerFqdn <FQDN>  | ft databasen*,Expe*,Inst*,Suc* -AutoSize and Test-CsDatabase -CentralManagementDatabase -SqlServerFqdn <FQDN>  | ft databasen*,Expe*,Inst*,Suc* -AutoSize and ensure your database numbers match.


The first Skype for Business Patch has Arrived

It didn't take long for the first patch for Skype to come along and it is a highly important patch for many. A bug discovered after RTM of Skype was discovered with Exchange UM Interaction and normalization. The actual bug is KB3069206 and stalled many Skype for Business upgrades as Exchange UM Auto Attendants are kind of important.

In addition to the UM fix there are smaller yet just as important fixes listed such as dropping parked calls, SfBWA (aka LWA) crashes, RGS agent transfer issues, and so on. In short - if you have Skype for Business deployed this patch is a must and for those waiting because of the aforementioned bugs, migrations can now move on.

Upgrades are a bit different in Skype for Business only because of the new patching methods. If you were comfortable with patching in Lync & clearly understood upgrade domains, then there is no change. There are also no updates required to the Skype databases in this release so while we can run the good-old Install-CsDatabase command you will simply get a result of:

VERBOSE: All databases at the specified installation location are already up to date.

Make sure all servers are updated in the FE pool, the Edge servers, P-Chat, Mediation and any app servers you may have. The core components at a minimum will be updated while servers like the Edge role have an actual update.

For those that have a highly non-recommended two-node Enterprise Pool, there is an additional Fabric step required. Once you have patched the pool and rebooted, run the following command from PowerShell.

Reset-CsPoolRegistrarState -ResetType FullReset

Additional patching information can be found on the KB Update page 3061064.

Product

Version

KBs

Download

Skype Server 2015

6.0.9319.55

3061064

MS Download

 

Additional Notes:
Lync Server 2013 build number is 5.0.8308.887

Lync 2013 Client build number is 15.0.4727.1001

Skype for Business Server 2015 build number is 6.0.9319.55

Lync Group Chat build number is 4.0.7577. 4409

Lync Group Chat Server build number 4.0.7577.4409

Lync Group Chat Admin build number 4.0.7577.4409

Lync Attendee build number is 4.0.7577.4461

Lync Attendant build number is 4.0.7577.4098

Lync Phone Editions build number is 4.0.7577.4463
Lync Phone Edition (Tanjay) build number is 4.0.7577.4463
Lync for Mac 2011 build number is 14.0.11

Lync 2013 for Windows Phone build number 5.9.1371.0

Lync 2013 for iPad build number 5.7.563

Lync 2013 for iPhone build number 5.7.563

Lync 2013 for Android build number 5.6.3.1
Lync 2013 for Android tablet build number 5.5.3.8919
Lync Windows Store App build number is March 2014

Lync Basic 2013 build number is 15.0.4420.1017
Lync VDI 2013 build number is 15.0.4420.1017