Haiku #67

But how can we tell

If this is all up-to-date?

Replica status.

If you're like most people, you probably assume that the daily Lync Server PowerShell haiku is Microsoft's No. 1 priority: no matter what else happens, the daily Lync Server PowerShell haiku simply must be published. Surprisingly enough, however, that's not the case: the daily Lync Server PowerShell haiku is not Microsoft's No. 1 priority.

Oops, sorry: we mean Microsoft's No. 0 priority. Here at Microsoft the highest priority item isn't priority 1; it's priority 0. Why? Well, we never bothered to ask, but we assume it has something to do with the fact that, in most programming languages, the first item in an array is always item 0. And, let's be honest, if you were trying to figure out how to assign priorities to things wouldn't your first thought be, "We should base our prioritizing on the way they number the items in an array." It's the only logical thing to do.

Trivia. If you attend a sporting event, how can you tell which fans work at Microsoft and which ones don't? It's actually pretty easy. See those fans holding up an index finger and shouting, "We're No. 1!"? Those people don't work at Microsoft. Now, see those fans holding up a clenched fist and shouting, "We're No. 0!"? Those fans do work at Microsoft.

Actually, we need to clarify one thing: here at Microsoft the highest priority item isn't really priority 0, either. Instead, it's pri 0. When you work in a hard-charging, cut-throat industry like technical writing, you don't have time to say a phrase like priority 0; in the time it takes to say that phrase, some technical writer at Google could have typed an entire sentence or two! Therefore, we just say pri 0, the same way that we have reduced the term action item to this: action. If you ever sit through a meeting at Microsoft (note: not recommended) you'll hear people say things like this:

"It's been a fire drill around here lately, but I've got skin in this game, so, at the end of the day, let's make this a pri 0 and I'll take an action on it."

If you're wondering what that means, well, we don't have any idea at all what that means. Which is why, when we have to sit through a meeting at Microsoft, we spend most of our time trying to look somber, and occasionally nodding our head in agreement.

At any rate, the point of all this is that the author of today's haiku has other things (pri 0 things) that he's supposed to be doing this morning. Which is why today's haiku tackles a cmdlet that can be looked at quickly and easily: Get-CsManagementStoreReplicationStatus.

Note. Yes, at Microsoft we feel the need to shorten a word like priority, yet we still have cmdlets with names like Get-CsManagementStoreReplicationStatus.

Get-CsManagementStoreReplicationStatus, as you might have guessed, is designed to tell you whether or not replication is up-to-date on all your computers running a Microsoft Lync Server 2010 service or server role. Called without parameters, Get-CsManagementStoreReplicationStatus returns the replication status, the date and time of the last status report and last update, and the product version number for each Lync Server computer:

Get-CsManagementStoreReplicationStatus

Like we said, quick and easy. If you're interested in the replication status of only a single computer, then just include the ReplicaFqdn parameter:

Get-CsManagementStoreReplicationStatus –ReplicaFqdn atl-cs-001.litwareinc.com

Oh, and here's a couple little tricks that you might find useful. If you'd like to return a collection of computers where replication is currently not up-to-date you can simply filter on the UpToDate property, like so:

Get-CsManagementStoreReplicationStatus | Where-Object {$_.UpToDate –eq $False}

Or maybe you'd like to see a list of computers that have not been replicated as of noon on Tuesday, March 15th. Using the U.S. English date-time format, that command might look like this:

Get-CsManagementStoreReplicationStatus | Where-Object {$_.LastUpdateCreation –lt "3/15/2011 12:00 PM"}

Etc., etc.

Oh, and you can also use the CentralManagementStoreStatus parameter to return information about, well, your central management store:

Get-CsManagementStoreReplicationStatus -CentralManagementStore

That's going to bring back information similar to this:

LastUpdatedOn : 3/15/2011 8:07:08 AM

ActiveMasterFqdn : atl-cs-001.litwareinc.com

ActiveMasterLastHeartBeat : 3/15/2011 9:01:02 AM

ActiveMasterFileTransferAgentFqdn : atl-cs-001.litwareinc.com

ActiveFileTransferAgentLastHeartBeat : 3/15/2011 9:02:31 AM

ActiveReplicas : {atl-cs-002.litwareinc.com…}

DeletedReplicas : {}

Pretty cool, huh?

At any rate, that's all we have time for today. Granted, it was low-hanging fruit and we didn't really have the bandwidth for it, but we still see it as a proactive paradigm shift dictated by the rhythm of the business and by our core competencies.

Oh: and, of course, it also offers value-add and mission critical social media buy-in.

We think.