It's my party and
I'll send IMs if I want
To. Test Group IM.
You know, the one question everyone has been afraid to ask regarding Microsoft's proposed acquisition of Skype is this: how will this venture affect the Lync Server PowerShell Haiku of the Day?
Admittedly, due to scheduling differences we haven't had the opportunity to sit down with Steve Ballmer and discuss the future of the Lync Server PowerShell Haiku of the Day. Speaking strictly for ourselves, however, the authors of the Lync Server PowerShell blog can say this much: we are anxiously awaiting approval of the Skype acquisition.
Why are we so excited about adding Skype to the Microsoft arsenal? Well, historically speaking, haikus have never rhymed, and the Lync Server PowerShell Haiku of the Day is no exception. Is that because of our deep reverence for the history and the tradition of the haiku? Yes.
Well, that and the fact that it's really hard to find things that actually rhyme with "Microsoft Lync Server". So far this is all we've been able to come up with:
I have a fervor
For Microsoft Lync Server.
Which, come to think of it, is pretty good. But, to tell you the truth, it's hard to find a way to keep using that same exact rhyme day after day.
On the other hand, all sorts of things rhyme with Skype:
Needless to say, we can't wait for Skype to become part of the Microsoft family of products. When that happens, we believe we can take the haiku to places it's never been before.
In fact, we only have two minor regrets when it comes to Skype. For one, we were hoping to get an $8.5 billion raise this year; that's probably not going to happen now. For another, if and when the acquisition is approved, we won't be able to write a rhyming haiku about the Test-CsGroupIM cmdlet. Why not? Because that's what we're writing about today.
Test-CsGroupIM is another one of the "synthetic transaction" cmdlets that ship with Microsoft Lync Server. (You've got a lot of nerver? Don't throw a fastball, throw him a curver?) Synthetic transaction cmdlets provide a way for you to test various Lync Server capabilities and verify that those features are working as expected. In the case of Test-CsGroupIM, the cmdlet allows you to verify that a pair of users can create and join a conference, exchange instant messages as part of that conference, and then log out.
The key word in that definition is this: conference. When you run Test-CsGroupIM, the cmdlet tests Lync Server's conferencing capabilities. For example, if you run the cmdlet using the Verbose parameter (which provides a blow-by-blow account of every activity the cmdlet undertakes as part of the test) you'll see actions such as these:
'CreateConference' activity started.
'CreateConference' activity completed in '0.2645174' secs.
'JoinConference' activity started.
'CreateConference' activity completed in '0.0858095' secs.
That's the difference between the Test-CsGroupIM cmdlet and the Test-CsIM cmdlet. Test-CsIM verifies whether a pair of users can exchange instant messages in a peer-to-peer session, a test that doesn't use Lync Server's conferencing services at all. With Test-CsIM you see actions such as these:
'InviteP2PIM' activity started.
'InviteP2PIM ' activity completed in '0.1269747' secs.
'SendP2PIM' activity started.
'SendP2PIM' activity completed in '0.0090779' secs.
In other words, Test-CsGroupIM verifies whether you can exchange instant messages in a conference setting, while Test-CsIM verifies whether you can exchange instant messages in a peer-to-peer setting.
Just in case you were wondering.
So how do you actually use Test-CsGroupIM? Well, if you've configured a pair of health monitoring test accounts for a pool, you can use Test-CsGroupIM by running a command similar to this one:
Test-CsGroupIM atl-cs-001.litwareinc.com –Verbose
Nothing too hard about that: you simply call Test-CsGroupIM followed by the name of the pool to be tested (in this case, atl-cs-001.litwareinc.com) and, optionally, the Verbose parameter. If all goes well, you'll get output similar to this:
TargetFqdn : atl-cs-001.litwareinc.com
Result : Success
Latency : 00:00:01.6932425
If all doesn't go well, then you might see output similar to this:
TargetFqdn : atl-cs-001.litwareinc.com
Result : Failure
Latency : 00:00:00
Error : The log on was denied. Check that the proper credentials are
Being used and the account is active. Inner Exception:
NegotiateSecurityAssociation failed, error: -2146893044
In case you're wondering, the preceding test failed because we used an invalid test account. And, thanks to the verbose output, we can even determine which account failed:
Sending Registration request:
Target Fqdn = atl-cs-001.litwareinc.com
User SIP Address = sip:email@example.com
Register Port = 5061
Auth type 'IWA' is selected.
An exception 'The log on was denied. Check that the proper credentials are being used and the account is active'
As you can see, the account firstname.lastname@example.org was unable to log on.
Speaking of logging on, we should also note that you can run Test-CsGroupIM using a pair of real, live user accounts. (Something you might want to do if a pair of users tried, and failed, to create and join a conference.) The only catch is that you'll need to know the logon name and the user account password for each of those users. Assuming you have that information at your disposal, then you can run Test-CsGroupIM using a set of commands similar to these:
$cred1 = Get-Credential "litwareinc\pilar"
$cred2 = Get-Credential "litwareinc\kenmyer"
Test-CsGroupIm -TargetFqdn atl-cs-001.litwareinc.com -SenderSipAddress "sip:email@example.com" -SenderCredential $cred1 -ReceiverSipAddress "sip:firstname.lastname@example.org" -ReceiverCredential $cred2
Pretty cool, huh?
That's pretty much everything you need to know about the Test-CsGroupIM cmdlet. In the meantime, what about this:
Microsoft Lync Server?
It's like a messaging life preserver,
Said a totally unbiased observer.
Good point. We'll keep our fingers crossed and hope the whole Skype thing gets approved as soon as possible.