||Posted 2 years 314 days ago ago by Christian Burke 0 Comments
1 Loved it
I recently visited a nice sized company (10,000 users give or take) that is deploying Lync Online as part of their Office 365 initiative. I watched as they negotiated various versions of the Lync client to provide customized user experiences. In other words, deliver the Basic client so the dial pad doesn’t show up, etc. I was thoroughly confused as a successful deployment would have relied on the System Center team to deliver different clients based on the user experience. In addition, the main complaint about Lync for the users was that the interface was too confusing with so many options presented to the user.
I asked a simple question: Why aren’t you using Lync Policies to deliver a personalized experience to individual users or groups of users? The response was a combination of astonishment and confusion. So, I explained that they could simply deploy a single client (Lync Pro Plus client included in the Office 365 portal) and simply assign a user a policy that disables the dial pad – and so on and so on…
Without hesitation, they nodded their heads ‘yes’ and so goes the rest of the article. This article will show you how to deploy specific policies to users that will provide the customized experience each individual needs. In this example, I am only going to show the Conferencing Policy. However, there are a handful more Policies you could change like the External Access Policy, Presence Policy and more.
Here is a list of Lync Online specific Powershell Cmdlets: http://technet.microsoft.com/en-us/library/jj994021.aspx
Here are the steps for getting it all done:
Connect to Lync Online via PowerShell
You will need the ability to access PowerShell to your tenant.
$credential = Get-Credential “firstname.lastname@example.org”
$session = New-CsOnlineSession –Credential $credential
- Save the file and launch it from a command prompt.
- You will be presented with a credential login window.
- Enter your Office 365 credentials.
- Now you’re in PowerShell for Lync Online!
A quick primer before the next step…
There are logical differences between what you get to do in Lync On-Premises versus Lync Online. Both versions allow you to provide customized policies to various feature sets of the Lync experience. But, where Lync On-Premises allows you to create new policies, Lync Online does not. In Lync Online, you are forced to pick from a list of pre-canned policies and apply that selected policy to a user or group of users. Not to worry though, there are upwards of 200+ different policies just for Conferencing. And that leads us to our next step:
Get the List of Conferencing Policies
From your PowerShell command line, type Get-CsConferencingPolicy
You will get a sea of content. So, let’s modify the command.
Type Get-CsConferencingPolicy | Out-File C:\temp\conferencingpolicy.txt (whatever directory/name combo you want)
Now we have a big gnarly file to work with. You will see blocks of content like this:
Identity : Tag:BposIAllModality
AllowIPAudio : False
AllowIPVideo : False
AllowMultiView : True
AllowParticipantControl : False
AllowAnnotations : True
DisablePowerPointAnnotations : False
AllowUserToScheduleMeetingsWithAppSharing : False
AllowNonEnterpriseVoiceUsersToDialOut : False
AllowAnonymousUsersToDialOut : False
AllowAnonymousParticipantsInMeetings : False
AllowExternalUsersToSaveContent : False
AllowExternalUserControl : False
AllowExternalUsersToRecordMeeting : False
AllowPolls : False
AllowSharedNotes : True
AllowQandA : True
AllowOfficeContent : True
EnableDialInConferencing : False
EnableAppDesktopSharing : None
AllowConferenceRecording : True
EnableP2PRecording : True
EnableFileTransfer : True
EnableP2PFileTransfer : True
EnableP2PVideo : True
AllowLargeMeetings : False
EnableOnlineMeetingPromptForLyncResources : False
EnableDataCollaboration : False
MaxVideoConferenceResolution : VGA
MaxMeetingSize : 250
AudioBitRateKb : 200
VideoBitRateKb : 50000
AppSharingBitRateKb : 50000
FileTransferBitRateKb : 50000
TotalReceiveVideoBitRateKb : 50000
EnableMultiViewJoin : True
And there are all the options you have to present to the users! Every policy in the text file has varied options based on this list. But, what a pain in the butt to have to figure out all the different policy variations. Below is a handy way to narrow down the list from 200+ variations (or Identities) to a manageable list.
Narrow Identities to ApplicableTo
In that list of 175+ Identities, you will not be able to apply the vast majority of them to a user. This is typically because the user may not be on the licensing level required for many of them, or maybe some of the identities require a certain enabled feature (for example Dial In Conferencing), etc. There is a handy little flag that limits the Identities that are available to a particular users.
Get-CsConferencingPolicy –ApplicableTo username | Out-File C:\temp\conferencingpolicy.txt
Keep in mind that the username only seemed to work for me without the @tenant.onmicrosoft.com extension. So, simply the account name only.
Here is the reference to the cmdlet: http://technet.microsoft.com/en-us/library/gg398293.aspx
Voila! That reduced the list, in my case, to about 30 Identities. That’s a list way easier to manage.
Import the List into Excel
No need to explain here, just do it.
If you want a handy trick, use the delimiter of “:” to create the proper cell separation.
Now, go through the painful task of transposing the column two variables into a table like this:
Of course, I didn’t include all 30 columns, but you get the point. Now you have a super handy little matrix of all the Identities provided to Lync Online administrators and of course the users they will apply them to.
What IS the Point?
Now you can select a policy based on the criteria in the list of options. For example, the option AllowNonEnterpriseVoiceUsersToDialOut will disable the aforementioned Dial Pad on the Lync client. So, looking for FALSE in the table on that row will solve that one. I will pick the Identity of “BposSAllModality” for the example below. It has the FALSE flag for AllowNonEnterpriseVoiceUsersToDialOut and also gives every option available to the client as well.
So, let’s complete the process by applying a policy to a user. Then, you can figure out how to manage other policies and also figure out how to apply them to groups of users.
Grant-CsConferencingPolicy –Identity username –PolicyName BposSAllModality
Using the reference document http://technet.microsoft.com/en-us/library/gg425937.aspx, you can grant the policies based on OU or other group-like methods.
Log off the Lync client, then log back on and watch the Dial Pad magically disappear!
Pretty cool, huh?