#Lync Question 40: What sounds have changed with the Skype for Business client

Disclaimer: The following blog post is subject to change as it is based on the pre-released version of the Skype for Business client.

A number of the sounds that us and our users have become accustom to over the last few years have changed with the Skype for Business client.

Under the either of the following folders you will find a bunch of .WAV files

  • C:\Program Files (x86)\Microsoft Office\Office15\Media (64-bit Windows)
  • C:\Program Files\Microsoft Office\Office15\Media (32-bit Windows)
  • C:\Program Files\Microsoft Office 15\root\Office15\Media (Click-to-Run)

Most of the major sounds have changed. Such as the ringer, alert and invite sounds.

Here is a list of which files have changed:



















LYNC_newim.wav CHANGED


















NOTE: LYNC_connecting.wav currently doesn’t have any sound in the Skype for Business client

In case you need to sound file again here they are (rename them to .zip)



I guess I could try and write a script/procedure to restore the old sounds.

#Lync Question 39: Creating a Remote PowerShell session to Lync On-Premise

This is a something that comes from customer on most deployments now as the helpdesk, ,voice and network engineers cannot sadly do everything from the control panel. It is usually due to the need to create Common Area Phones or add Location Information Services Subnets or more increasingly the need to enable users for Hosted Voicemail due to using Exchange Online Unified Messaging.

There are two ways I usually recommended to create a remote PowerShell session to Lync Server On-Premise

1. Manually (via specifying the credential manually)
2. Automatically (via reading the secure password from a file)


Below is the PowerShell to create a Remote PowerShell against a production Lync environment which can be done from any workstation

$credential = Get-Credential "DomainID\AdminID"
$session = New-PSSession -ConnectionUri "https://admin.uctestlab.com/OcsPowershell" -Credential $credential
Import-PSSession $session

When manually create a Remote PowerShell session Lync, the credentials are required to be enter via the following dialogue box. This is following line #1


This might not be ideal in term of automation.


If you need automatically create a Remote PowerShell session within a script then first you need to store the password in a secure string in a file via the following:

Read-host -AsSecureString | ConvertFrom-SecureString | Out-File C:\cred.txt

This is entered straight into the PowerShell window as shown below


In case you wondered the file looks like this:


Now we have this we can create the Remote Powershell session to Lync using the password in the file via the following:

$password = Get-Content C:\cred.txt | ConvertTo-SecureString
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "DomainID\AdminID",$password
$session = New-PSSession -ConnectionUri "https://admin.uctestlab.com/OcsPowershell" -Credential $credential
Import-PSSession $session

I’m sure there are other ways too, but these two methods meet the majority of requirements with customers.

#Lync Question 38: How do I control the Lync and Skype UI with the Skype for Business client

Some of what I am covering here has been cover in the Skype for Business Technical Readiness Webcast Series session on the client experience presented last week by Nikolay Muravlyannikov.  The link for registering for these sessions (and recording) was announced here:

Skype for Business sessions now included in Office 365 Summits

The Skype for Business client has two user interfaces (UI):

  • Lync UI
  • Skype UI

For organisation who have invested heavily in end-user training, the whole topic on the transition of the client and UI from Lync to Skype for Business is very important.

By having these UI’s this enable organisations already running Lync to control the roll-out of the newer Skype UI in order to update any in-house training material and communication.

Depending on what your server platform is the client will default the client UI as follows:

Platform Default Client UI
Lync Server 2010 Lync 2013
Lync Server 2013 Lync 2013
Skype For Business Server Skype for Business
Skype For Business Online Skype for Business

If your running on Skype for Business server, then there is a Client Policy setting to Enable Skype UI via in-band provisioning via the following cmdlet:

Set-CsClientPolicy –EnableSkypeUI $true

Obviously this Client Policy entry only exist in Skype For Business Server.  If you want to force disable the Skype UI you can just set EnableSkypeUI to $false.

Now what about if you running Lync Server 2013 on Lync Online I might hear you ask, well you’re in luck you can control the Skype UI too via in-band provisioning or via the client registry.

How? Having spent far too many hours looking the Lync 2013 client registry and in-band provisioning traces some settings are interchangeable even though they aren’t documented due to the way the client works.

Method #1: Client Registry

Using the client registry will probably be preferable for organizations running on Lync Online (and maybe Skype For Business Online) as they don’t have access to make client policy changes, so registry setting can be easily deployed via Active Directory group policy.

In the Registry under HKCU\Software\Microsoft\Office\15.0\Lync you need to create a 32-bit REG_BINARY called EnableSkypeUI with a value of 00 00 00 01 this will force the Lync UI (Disabling the Skype UI) or via the command prompt you can run:

reg add HKCU\Software\Microsoft\Office\Lync /v EnableSkypeUI /t REG_BINARY /d 00000001 /f

and if you want to force enable the Skype UI, then EnableSkypeUI needs to have a value of 1 or via the command line you can run:

reg add HKCU\Software\Microsoft\Office\Lync /v EnableSkypeUI /t REG_BINARY /d 00000001 /f

For these to take effect you have to complete restart the Skype for Business client (not just sign-out and sign-in)

Method #2: Lync Server 2013 In-Band Provisioning

Using Lync Server 2013 In-Band Provisioning will be preferable for organization running Lync Server 2013 can have yet to upgrade or are upgrading to Skype for Business.

Like Skype for Business we can control this via the client policy however unless you running the February 2015 update or later for Lync Server 2013 when the EnableSkypeUI entry was adding then it is a little different as the entry doesn’t exist. However we can actually still add the entry using either of the below:

$ClientPolicy = Get-CsClientPolicy "Global"
$ClientPolicyEntry = New-CsClientPolicyEntry -Name "EnableSkypeUI" -Value "0"
Set-CsClientPolicy -Instance $ClientPolicy


$ClientPolicyEntry = New-CsClientPolicyEntry -Name "EnableSkypeUI" -Value "0"
Set-CsClientPolicy -Identity "Global" -PolicyEntry $ClientPolicyEntry

this will again disable the Skype UI.

And if you want to enable the Skype UI use either of the below:

$ClientPolicy = Get-CsClientPolicy "Global"
$ClientPolicyEntry = New-CsClientPolicyEntry -Name "EnableSkypeUI" -Value "1"
Set-CsClientPolicy -Instance $ClientPolicy


$ClientPolicyEntry = New-CsClientPolicyEntry -Name "EnableSkypeUI" -Value "1"

Set-CsClientPolicy -Identity "Global" -PolicyEntry $ClientPolicyEntry

NOTE: Like the client registry settings, the Skype for Business client need to be restarted following the client policy being applied rather than a normal client logon as with other in-band settings

You can remove all Client Policy entries via Set-CsClientPolicy -Identity global -PolicyEntry $Null do take care have define other settings in the ClientPolicyEntry field as you will need to use something like this:

$y = Get-CsClientPolicy -Identity global
Set-CsClientPolicy -Instance $y

If you haven’t seen what the Skype for Business client looks like have a look here:

Lync Online is becoming Skype for Business

Special thanks to John A. Cook and Keith Hanna who helped validate all of this post and content.

UPDATE #1 (17/04/2014)  Updated to reflect released version of Skype for Business client with change of registry key type and location.

#Lync Question 37: How do I control the Personal Information Manager (PIM) setting in the Lync client

I am working at the moment on a large IBM Notes/Sametime migration which will implement Microsoft Lync and Exchange whereby Lync is being delivered to users before they get their Exchange mailboxes due to the quantity of data being migrated.

There are a few challenges with this whereby some functionality (to name a few) can’t be delivered:

  • IM Conversation
  • Call History
  • Calendar Integration
  • Voicemail

By default the Lync client will look for the autodiscover.sipdomain DNS record in order create a connection to Exchange Web Services (EWS).  If Outlook is installed then some functionality will come directly from Outlook via MAPI, which itself will by default use the service connection point (SCP) from Active Directory when using on-premise Exchange otherwise will use autodiscover DNS records or SRV record.

In my case, if a mailbox can’t be found then the Lync client will ask for authentication, (per below) it bit like Lync Phone Edition.  With the Mobility Policy you can disabled Exchange integraiton


If you go into Tools -> Options, in the Personal tab, there is the Personal Information Manager (PIM) settings whereby you can set it to None.

If you interested this setting when set in the client is actually written to the backend database and if you logon to another Lync client with the same user, the setting follows the user.

With download -level clients (i.e. Lync 2010) you could control this on a machine via the registry.

Configuring the personal contacts store on client computers for Lync Server 2013

However this does not work for Lync 2013, however it is possible to control this via a Client Policy Entry using either of the below:

$ClientPolicy = Get-CsClientPolicy "Global"
$ClientPolicyEntry = New-CsClientPolicyEntry -Name "PersonalContactStoreOverride" -Value "1"
Set-CsClientPolicy -Instance $ClientPolicy


$ClientPolicyEntry = New-CsClientPolicyEntry -Name "PersonalContactStoreOverride" -Value "1"
Set-CsClientPolicy -Identity "Global" -PolicyEntry $ClientPolicyEntry

The great thing about this is (for me) that it can be revered back at a later date once the user’s have Exchange mailboxes or it is possible assign an specific client policy which grants PIM, IM and Call History for groups of users.

#Lync Question 36: How do I request a reverse proxy certificate for Lync

This is a favourite interview question for mine and should be straight forward enough, but you would not believe how many people can’t answer this!

Via the Lync Management Shell:

Request-CsCertificate -New -Type WebServicesExternal -AllSipDomain -verbose -PrivateKeyExportable $true -Output “C:\LyncExternalWebServices.req” -Country US -State “Washington” -City “Redmond” -FriendlyName “lyncwebsrv1.contoso.com” -Organization “Contoso” -OU “IT” -Report “C:\LyncExternalWebServices-CertReq.html” -DomainName “officewebapp1.contoso.com,anotherfqdn.contoso.com”

From the stats on my blog this popular topic as the Reissuing Certificates for Lync Mobile post following Lync Server 2010 CU4 which added Lync Mobility is but far the more hits post on my blog given the ages of the post now.

#Lync Question 35: What certificate providers can I use with Lync

It is generally recommended that supported Unified Communications Certificate Partner public CA is used for all public certificates Lync Server 2013:

Unified Communications Certificate Partners

Also if your running Lync Phone Edition you should be mindful of the public trusted certificates installed by default:

Certificates for Lync Phone Edition

A number of certificate providers are transitioning to the SHA-2 cryptographic hash functions which allow greater levels of encryption. I experienced this recently with a GoDaddy certificate reissue (whereby I needed to change the existing certificate) this causing federation issues with some organisations but not others as the new root certificate wasn’t as widely installed as Edge server are typically on restricted networks and thus might not be getting the root certificate update from Microsoft.

This came into effect with Go Daddy 23 December 2013 and is why there is now a new root certificates (‘Go Daddy Class 2 Certification Authority Root Certificate – G2’).  It is possible (at the moment) via changing the ‘signature algorithm’ during the CSR submission to still do a 2 year certificate using the older root certificate and chain. (See below)


What I will say however Microsoft themselves as well as Office 365 use Cybertrust


So does it matter? Well as long as the computer/device trusted the certificate it should not, although I like others have had certificates issued with previously OCS/Lync deployment from both the UCC partners or other providers not listed.

And Lync is all about certificates…………….


Information About Requiring the SHA-2 Hash Function’ may be helpful to you.

#Lync Question 34: Can I stretch a pool between two datacentres

Although I did cover why you can’t stretch a Front-end pool between two datacentres in: #Lync Question 4: Can I stretch a 2013 Front-End pool between two datacentres

So what about the other Lync pools?

Officially “Stretched pools are not supported for the Front End, Edge, Mediation, and Director server roles.” per Supported Lync Server 2013 Topologies

However they are support oddly for persistent chat server pools per Using a stretched Persistent Chat Server pool for disaster recovery


Supported Lync Server 2013 Topologies

Using a stretched Persistent Chat Server pool for disaster recovery