Friday, April 29, 2016

Lync server Component versions

List and Check Lync Server Components Version?


There are many ways by which we can check Lync server versions. We will take all the ways one by one. Before going ahead, some of the points regarding Lync server versions and update:
After running Lync Server Update package, not all components will be updated to the latest version – this is a normal behaviour, however you can use Lync Server Core Component as reference.
here is a list of all cumulative updates released for Lync or S4B:

Lync server 2013 versions

Version
Cumulative Update
KB Article
5.0.8308.949
April 2016
5.0.8308.945
January 2016
5.0.8308.941
December 2015
5.0.8308.933
September 2015
5.0.8308.920
July 2015
5.0.8308.887
May 2015
5.0.8308.872
February 2015
5.0.8308.866
December 2014
https://support.microsoft.com/kb/3018161
5.0.8308.857
December 2014
5.0.8308.834
November 2014
5.0.8308.831
October 2014
5.0.8308.815
September 2014
5.0.8308.738
August 2014
5.0.8308.577
January 2014
5.0.8308.556
October 2013
5.0.8308.420
July 2013
5.0.8308.291
February 2013
5.0.8308.0
RTM
NA

Skype for Business server 2015 versions

Version
Cumulative Update
KB Article
6.0.9319.235
March 2016
https://support.microsoft.com/en-us/kb/3061064
6.0.9319.102
Nov 2015
https://support.microsoft.com/en-gb/kb/3097708
6.0.9319.88
Sept 2015
https://support.microsoft.com/en-us/kb/3098601
6.0.9319.55
Sept 2015
https://support.microsoft.com/en-us/kb/3090687
6.0.9319.45
June 2015
https://support.microsoft.com/en-us/kb/3061059
6.0.9319.0
RTM
NA

Below are the various ways to check Lync server component versions:

1.    Lync Mgmt Shell – Get-CsServerVersion

This command will only provide you base version of Lync or Skype for business without cumulative update version or number. This command has to be run locally on each server.                                  Run below command in Lync management shell
Command: - Get-CsServerVersion
As you can see in above results, only base version of Lync has been shown i.e. RTM version of Lync.

2.    PowerShell Cmdlet – Get-WMIObject

This method uses WMI classes to fetch the Lync server component versions by using WMI query to different Lync components. This command will give versions of all components of Lync that are installed on server.                                        Run below command in PowerShell
Command: “Get-WmiObject –query ‘select * from win32_product’ | where {$_.name –like “Microsoft Lync Server*”} | ft Name, Version –AutoSize”
As you see in results above, all the Lync components versions are listed and as to check Lync server version, you need take in account version of core components highlighted above.

3.     PowerShell Cmdlet – Get-ItemProperty

This command uses method to query Windows registry in order to get all installed software and then adapt necessary information related to Lync only.                       


Run below command in PowerShell
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |  ?{$_.DisplayName -like “*Lync Server*”} | Sort-Object DisplayName | Select DisplayName, DisplayVersion, InstallDate | Format-Table –AutoSize
There is one more column which provides information regarding Install date.
We prefer this command over “Get-WMIObject” because of lesser execution time. Execution time for Get-WMIObject is 32 seconds and for Get-ItemProperty is 0.40 seconds.

4    Using Lync Update installer

You can download Lync update installer from here.
This utility is used while updating Lync servers and you can also use it to show version of currently installed components of Lync.
For current version, you can refer any version of this tool ,however to check if the this is latest version, always download the latest utility from https://support.microsoft.com/en-in/kb/2809243

5     Windows- Program and features

You can also check current version of Lync server components by visiting “Programs and fetures” in control panel.
Search Software name starting from Microsoft Lync…


Conclusion


I hope this document helps you in finding what version of Lync components are installed in your environment.
Please comment if you think there is some mistakes or need correction. You can also ask questions in comment section.
Thank you for reading,

Thursday, April 28, 2016

Database Mirroring in Lync 2013

Back End Server high availability in Skype for Business Server 2015
Database mirroring in Lync is important feature for redundancy in Lync infrastructure.
Lync Server 2013/S4B 2015 SQL mirroring is a process that provides resiliency in the back-end Lync infrastructure in case one of the SQL Server nodes goes offline for any reason.
Skype for Business Server supports mirroring with the following database software:
  • SQL Server 2014, both Enterprise Edition and Standard Edition
  • SQL Server 2012 SP2 and CU2, both Enterprise Edition and Standard Edition
  • SQL Server 2008 R2 SP2, both Enterprise Edition and Standard Edition
It requires two SQL servers, One Is primary and other contains same database as the first one and it acts as a mirror. So in case one of the server or service goes offline, primary database will be failover to mirror server.
The deployment can be with witness server or witness server, however, if you want failover to be automatic without any administration effort, Witness server have to be deployed.

Configuration in Topology builder

For this configuration, you need to configure Topology Builder as follows

Failover in Database Mirroring

In case of maintenance, you need to manually switchover primary to mirror and then perform maintenance on primary server. You can use following command to manually failover database.
Invoke-CsDatabaseFailover -PoolFqdn <poolFQDN> -DatabaseType User -NewPrincipal mirror -Verbose
Use above command when you are failing over to the mirror.
After maintenance, you need to switch over back to primary from mirror state. Use following command you are failing over to the primary.
Invoke-CsDatabaseFailover -PoolFqdn <poolFQDN> -DatabaseType User -NewPrincipal mirror -Verbose
In order to check location of primary and secondary database on SQL server node and its mirroring state of database, use get-csdatabasemirrorstate command in Lync management shell on one of the Front end server.
Before failing over and after failover, you can determine which back-end database is the principal and which is the mirror by typing the following cmdlet:
Get-CsDatabaseMirrorState -PoolFqdn <poolFQDN> -DatabaseType User
In normal scenario, all your databases should have a principle state on a primary server.
As you can see in above screenshot, rtcab database have StateOnPrimary is principle and StateOnMirror is Mirror.When you do failover from primary to mirror, this should change as follows
So in case of rtcab database, now StateonPrimary is Mirror and StateOnMirror is Principle.

User Experience in failover:


For automatic Back End failover with database mirroring, the engineering target for recovery time objective (RTO) is 5 minutes.
Because of the synchronous database mirroring, there is no data loss during Back End Server failures except in rare occasions when both the Front End Servers and the Back End Server go down simultaneously while data is being moved between the servers.
If you use database mirroring and have a witness configured, and the principal fails, Back End Server failover happens automatically and quickly. Active users should not notice much interruption to their ongoing sessions.
If one server is already down, databases are failover to mirror and mirror server is down too, then User will continue their session to maximum of 30 mins.
If primary is still not restored, user will be switched to resiliency mode, in this scenario they will not be able to perform any task that need persistent change on database. (like adding contact, scheduling new meeting).


Conclusion

So overall, SQL mirroring in Lync infra is very critical and helpful feature for Lync infrastructure redundancy with less administrative efforts.




Friday, April 22, 2016

Audio device not detected in Lync/S4B



Lync/S4B does not detect audio device in client when there is no Mic inbuilt in audio system.


Check if connected sound system has mic inbuilt...

This scenario will take place, if you use workstation class machine and most of such machine does have sound system with speaker but no microphone inbuilt in it.
 In this case, Lync will  not detect any audio device in client, hence in order to use audio in client, you need to connect sound system with speaker and microphone.