Haiku #54

There it is, right there!

Cy, cite the sight of the site.

The Lync Server site.

In the classic children's book Through the Looking-Glass, Humpty Dumpty says, "When I use a word, it means just what I choose it to mean -- neither more nor less." Those are words that we technical writers here at Microsoft have learned to live by.

What does that mean? Well, it means just what we choose it to mean – neither more nor less. However, it also means that sometimes we choose to use words that no one else uses. Foe you example, you know that little portable phone you tote around in your pocket or purse? You probably call that a cell phone. At Microsoft, however, that little device is officially known as a mobile phone. Why can't we call it a cell phone? Well, as a Microsoft editor once told the author of today's haiku, "If you call it a cell phone, no one will have any idea what you're talking about."

So there.

Note. Of course the joke was on her: when has the fact that no one has any idea what he's talking about ever stopped the author of today's haiku?

By the way, if you ever read something and wonder if it's real, official Microsoft documentation, look for the term cell phone. If you see that, it's probably not real, official Microsoft documentation.

Or if it starts off with a haiku. You don't find too many haikus in real, official Microsoft documentation, either.

Of course, at other times we Microsoft types use the same word to mean all sorts of things. Take the word site, for example. Here at Microsoft, we've divided the world into two categories: some things are mobile phones, and everything that isn't a mobile phone is a site. (Or so it seems anyway.) For example, Active Directory has sites, but those sites shouldn't be confused with Microsoft Exchange sites. In Microsoft Lync Server 2010 we needed to introduce a new term into our infrastructure, so naturally we choose the word site, which has nothing to do with either Active Directory sites or with Microsoft Exchange sites. To paraphrase Gertrude Stein, a site is a site is a site. Unless it's that site. Or that one.

Sigh.

So what is a Lync Server site? Well, in Lync Server, sites are nothing more than a collection of pools and servers that are typically organized according to geography and/or network bandwidth. For example, suppose all your computers in Redmond are located on the same local area network, a network that features high-speed, low-latency connections.

Note. "Low-latency" is another term we like to throw around here at Microsoft, although we rarely bother to tell people what low-latency actually means. Latency measures the time it takes for you to input something and then receive output based on whatever you input. For example, if you remember the days of 300-baud modems, you know that you'd sometimes type a word (site) and then would have to wait a few seconds before those characters appeared, one-by-one, onscreen. That's high latency. With networks, latency typically measures the time interval between when your computer sent a packet of data and when that packet arrives on someone else's computer.

Now, where were we before we so rudely interrupted ourselves? Oh, right: sites. So if our computers in Redmond are all located on a good, reliable network, we might create a Redmond site that encompasses those computers. Likewise, if our computers in Dublin are located on their own local area network, and share high-speed, low-latency connections, then we might create a separate Dublin site. Sites are also very important in Lync Server management; after all, most policies and settings can be configured at the site scope. That makes it possible (and easy) to do such things as apply one set of dial plans to users in Redmond and a completely different set of dial plans to users in Dublin.

Which, when it comes to dial plans, is probably something you want to do.

Now, before you ask, you cannot create or delete sites using Lync Server PowerShell; sites can only be created or deleted by using Topology Builder. However, you can use the CsSite cmdlets (Get-CsSite and Set-CsSite) to manage your existing sites.

As you might expect, the Get-CsSite cmdlet provides a way for you to return information about your sites. That's useful in and of itself. However, Get-CsSite can also be extremely useful when working with the CsDialInConferencingAccessNumber, CsTrustedApplicationPool, and CsAdminRole cmdlets. Why? Well, when you configure a Region for dial-in conferencing you need to use the site ID; you also need the site ID when assigning a site to the ConfigScopes property with the CsAdminRole cmdlets. The site ID is not necessarily the same as the site Identity or the site display name; fortunately, though, you can use the Get-CsSite cmdlet to return (and then make use of) the site ID for any site:

$x = (Get-CsSite –Identity "Redmond").SiteID

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Add=$x}

Oh, yes, good point: when you call Get-CsSite you don't use the site: prefix. If you were working with a site policy, your command would look like this:

Get-CsVoicePolicy –Identity "site:Redmond"

With Get-CsSite, however, you need to leave off the site: prefix:

Get-CsSite –Identity "Redmond"

As for Set-CsSite, well, there are three property values you can modify using this cmdlet:

Property

Description

Description

A, well, description of the site. This is totally optional, and probably isn't all that useful if you have a site named Redmond and your description is something like this: Redmond site. Still, it's easy enough to add a Description to an existing site:

Set-CsSite –Identity "Redmond" –Description "Contact Ken Myer (kenmyer@litwareinc.com) if you have questions about this site."

DisplayName

A friendly name for your site. For example, if your site has the Identity rmd, you could give it a more user-friendly display name:

Set-CsSite –Identity "rmd" –DisplayName "Redmond Site"

FederationRoute

The service location of the Edge Server used to communicate with federated domains. (You've been wondering where we hid this property, haven't you?) For example:

Set-CsSite –Identity "Redmond" -FederationRoute "EdgeServer:atl-edge-001.litwareinc.com"

That's pretty much it for the CsSite cmdlets: they're pretty simple, but they're also very useful. Just like the authors of the Lync Server PowerShell blog.

Well, OK, maybe the authors of the Lync Server PowerShell blog aren't all that useful. But they are simple. And we defy anyone to argue with that!

Uh, anyone want to argue with that? Anyone?