#Lync Question 44: What SQL collation should I use

I have been asked this question quite a few time now.

As much as I believe (according to a few SQL administrations) it is best practice to match the server collation with the database collation for performance reasons for Lync you really don’t want to this.

The server collation should be Latin1_General_CI_AS

If you interested all the Lync Server 2013 databases use Latin1_General_BIN collation, this is a case sensitivity collation and if you happen to match the collation then you will probably run into issues with mirroring the archiving and monitoring databases as they their database naming is mixed case.

#Lync Question 43: Can I protect federated users from taking screenshot of desktop share session content

Another common question in relation to federation, governance and control.

But yes you can protect federated users from taking screenshot of desktop share session content, however this area/capability is more Information Rights Management (IRM) in Office rather than Lync.

With IRM in Office 2013 you can authenication and authorise access to sensitive documents. For example a word document could be protected so it can only be opened by specific users. Also it can be protect from being printed, or shared, also the content can be protected from copy and paste and screenshots.

If a protected document is opened and then the screen or program is shared via Lync then it is just shown as blacked out at the other end.  This is due to Lync 2013 honouring the IRM protection.

However this behavior is only support on Windows 8 or later and not Windows 7 nor does it work with Lync 2010 and of course will need to deploy Information Rights Management (IRM).


Presenting your Screen with Lync 2013

Plan Information Rights Management in Office 2013

#Lync Question 42: How do I run the SkypeUI when my administrator want me to run the LyncUI

I am sure this is going to annoy some Lync administrators, however I came into work this morning after running the Skype for Business client for the last few months to the following message


Thus following the restart, I was back the the Lync UI.  “How retro”

Disclaimer: Playing with the registry may result is serious injury or death for your PC so everything be careful out there!

First you will need local administrator rights to do this and also have a read of my previous post #Lync Question 38: How do I control the Lync and Skype UI with the Skype for Business client regarding the registry keys.

Here is the registry with the Skype UI disabled (you might see some other keys in here too)



Lets delete it, or via command line it would be:

reg delete HKCU\Software\Microsoft\Office\Lync /v EnableSkypeUI /f

Next we add back the registry key with the Skype UI enable

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

Next lets change the permissions, select the EnableSkypeUI key and on the Edit menu select Permissions


In here we click on Advanced and then Disable Inheritance and then select Remove all inherited permissions from this object

And then OK, Yes (we are going to denied all users permissions) and finally OK

Then we can launch the client with the SkypeUI

How do I revert?

If you want to revert in the registry edit, select HKCU\Software\Microsoft\Office\Lync in the left pane and then in the Edit menu, Permissions and we will see there is no permissions




Next click on Advanced


And then Enable inheritance followed by OK and OK

There we go…..enjoy the Skype UI again

#Lync Question 41: How I do configure a Polycom SIP Phone (VVX / SoundStructure) as a Lync Common Area Phone

There are already a number of good blog articles on how to get Polycom provision server up and running to provision lots Polycom SIP phones. I would recommend Jeff Schertz blog article [1].

However as I found, most focus on setting up a Polycom SIP phone using a standard Lync user (with a full AD account and password) and not a common area phone, which has just a AD contact object.   Although you could just use an AD user account instead in some environment it is just easier just not have to justify why these accounts have non-expiring passwords.

With the UCS 5.0.2 software it added support Lync PIN authentication and although with a Polycom VVX phone it is easy enough to manually logon the phone using the screen and keypad. As I found with a Polycom SoundStructure this isn’t so easy since there is no screen or keypad and especially since UCS 5.2.0 and later the phone’s (or VoIP Ccrd) web interface is disabled by default.

Although it  is easy enough to re-enable the web interface via some additional lines in the shared.cfg XML file on the provisioning server at which point you can log to VoIP card into Lync as a Common Area Phone (below).


However when you have a large number of Polycom SoundStructure devices to configured or support then this quickly becomes impractical.

After a bit reading and trial and error, here is the syntax for the [MACADDRESS]–Lync.CFG file to

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--UCS Device Configuration file for Lync-->
<LYNC reg.1.auth.useLoginCredentials="1" reg.1.auth.loginCredentialType="extensionAndPIN" reg.1.address="room101@uctestlab.com" device.logincred.extension="1234" device.logincred.extension.set="1" device.logincred.pin="5551234" device.logincred.pin.set="1" />

Then you just need to reset the VVX/VoIP card for it just automatically logon.


[1] Provisioning Polycom SIP Phones


#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 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.