Drink to your health! And,

While you're at it, manage your

Web service settings.

 

If you've ever wondered why we do a daily haiku devoted to the Lync Server PowerShell cmdlets, we actually have a pretty good reason for that: the daily haiku provides a way for us to bring you information that you might not be able to find anywhere else. What kind of information are we talking about? Information like this: did you know that the Michelin Man has a name.

 

Note. No, it's not "The Michelin Man." Although that's probably what we would have named him.

 

If you didn't know that the Michelin Man has a name, well, don't feel bad: we didn't know that either. But it's true: the Michelin Man (who's been around since 1894) is named Bibendum which, roughly translated, means "the drinking man" in Latin. The name was derived from the very first Michelin Man poster, which included this Latin motto:

 

Nunc est bibendum!!..

C'est à dire: À votre santé. Le pneu Michelin boit l'obstacle

 

Which, believe it or not, translates to this:

 

Now is the time to drink.

That is to say, to your health. The Michelin tire drinks up obstacles.

 

Note. Hey, we couldn't have made that up if we tried.

 

By the way, here's the first-ever ad featuring our friend Bibendum. If you're like us, you're going to have nightmares for a week now.

 

At any rate, learning that the Michelin Man has a name (and a Latin name, to boot!) immediately raises two important questions: 1) Does this mean that the Keebler Elves have names, too; and, 2) What does any of this have to do with Microsoft Lync Server 2010?

 

Let's start by answering the first question. As it turns out, the Keebler Elves do have names. The head elf is named Ernie the Elf which, in Latin means, uh, Ernie the Elf. Other Keebler Elves include Zoot; J.J.; Ma and Elmer Keebler; Fast Eddie; and Sam the peanut butter maker. Who knew, eh?

 

Note. Although we regret to inform you that the little girl on the Morton Salt can, the one carrying the umbrella, does not have a name. Nor does Ronald McDonald.

 

Oh, wait; forget that last one, OK?

 

As for the second question, "What does any of this have to do with Microsoft Lync Server 2010?" well, as it turns out, the CsWebServiceConfiguration cmdlets were originally going to be named the CsBibendum cmdlets. However, because of a concern over trademark issues, we decided to name them the CsWebServiceConfiguration cmdlets (Get-CsWebServiceConfiguration, New-CsWebServiceConfiguration, Remove-CsWebServiceConfiguration, and Set-CsWebServiceConfiguration) instead.

 

Note. Is that really true? Well, if by "true" you mean "false," then yes, it's really true. Otherwise, no, it's not.

 

So what exactly is a CsWebServiceConfiguration cmdlet? Well, we can tell you two things about the CsWebServiceConfiguration cmdlets. First, the name does not translate into Latin; we tried several different online translators and none of them could come up with a Latin equivalent.

 

Yes, we were disappointed, too.

 

Second, the CsWebServiceConfiguration cmdlets provide a way for you to manage the Web-based features of Microsoft Lync Server. What's nice is that the Web service configuration settings can be assigned to the global scope, the site scope, or even individual Web server scopes. That gives you enormous flexibility in determining what can (and cannot) be done with your Web servers.

 

Ah, good question: what can (or cannot) be done with your Web servers? Well, there are actually a whole bunch of settings and capabilities that can be managed using the Web service configuration cmdlets. For example, there are a bunch of properties related to authentication: you can enable (or disable) certificate authentication; enable or disable PIN authentication; and specify whether you will allow Windows authentication (that is, will you allow users to be automatically be authenticated using the same credentials they used when they logged on to Windows). How hard is it to configure authentication settings? Not too hard. For example, this command enables PIN authentication at the global scope:

 

Set-CsWebServiceConfiguration –Identity global –UsePinAuth $True

 

The CsWebServiceConfiguration cmdlets are also used to manage group expansion in Microsoft Lync. As you probably know, if you configure a distribution group to be one of your Microsoft Lync contacts, you have the default ability to "expand" that group in the Contact window; that simply means that you can open up the group and see all the individual group members. But that's the default capability. What if you don't want to give people this ability? That's fine; that's what the CsWebServiceConfiguration cmdlets are for:

 

Set-CsWebServiceConfiguration –Identity global –EnableGroupExpansion $False

 

So why wouldn't you want to allow group expansion? Well, suppose you have a group that has 500 users in it. If you expand that group, Microsoft Lync will have to contact the server, retrieve the name and status information for all 500 of those users, and then display all that information. If you have lots of users and lots of users playing around with group expansion, that could result in a lot of traffic flitting about the network, and a lot of strain placed on your Front End servers. One way to limit that strain is to simply disable group expansion.

 

Another way to limit that strain is to place a limit on the size of a group that can be expanded. By default, Microsoft Lync will expand any group that has 100 or fewer members. If that seems like too many, then use the Set-CsWebServiceConfiguration cmdlet to change the maximum size of a group that can be expanded. You know, like this:

 

Set-CsWebServiceConfiguration –Identity global –MaxGroupSizeToExpand 25

 

After running that command, users will only be able to see the first 25 members of a group. What if a group has 26 members? Too bad: Microsoft Lync will only show you the first 25 members, and that 26th user will be out of luck.

 

You know, life is unfair sometimes, isn't it?

 

As you might expect, the Set-CsWebServiceConfiguration cmdlet is used to modify existing Web service settings; to create new settings (at the site or service scope) use the New-CsWebServiceConfiguration cmdlet:

 

New-CsWebServiceConfiguration –Identity "site:Redmond" –MaxGroupSizeToExpand 25

 

If you get tired of any of these new settings you can dispose of them using the Remove-CsWebServiceConfiguration cmdlet:

 

Remove-CsWebServiceConfiguration –Identity "site:Redmond"

 

And, of course, the Get-CsWebServiceConfiguration cmdlet provides a way for you to retrieve and review all your existing Web service settings. For example, do you actually have any Web service settings where group expansion has been disabled? This command will tell you:

 

Get-CsWebServiceConfiguration | Where-Object {$_.EnableGroupExpansion –eq $False}

 

And this command returns all the setting collections that allow PIN authentication:

 

Get-CsWebServiceConfiguration | Where-Object {$_.UsePinAuth –eq $True}

 

That's what we said: Nunc est bibendum!

 

See you tomorrow.