I'm like, OMG,

IMHO, it's awesome.



One of the authors of the daily Lync Server PowerShell haiku has a son who's currently in college. (University of Idaho; go Vandals!) Like most kids his age, he prefers to communicate via text messaging. Consequently, his father gets a lot of texts that look like this:


hey dad i could use some $ thx


In return, Dad tends to send back texts that look more like this:


Dear Son. I hope this message finds you well. In regard to your request for fiduciary assistance ....


Well, OK, maybe it's not quite that bad: Dad would probably break both his wrists if he tried to send a text message with that many characters. However, Dad does use both punctuation and capital letters when he sends texts, and he never uses a texting abbreviation like thx (for "thanks"). Want to know the seven warnings signs that indicate you've become an old fogey? Well, we don't actually know what all the seven warning signs are. But we're pretty sure that failure to use abbreviations and/or acronyms in a text message is one of them.


Dictionary note. Fogey: an excessively conservative or old-fashioned person, especially one who is intellectually dull (usually preceded by old). See also Lync PowerShell Blog writer Greg Stemp.


Just in case there are any other old fogeys out there (although we assume that anyone reading the Lync Server PowerShell blog would, by definition, have to be hip, cool, and cutting-edge), in today's haiku OMG is short for "oh my God" and IMHO is an acronym for "in my humble opinion." As for P2PAV, that's short for, well, "P2PAV." In fact, P2PAV is pulled directly from the name of today's spotlighted cmdlet: Test-CsP2PAV.


Test-CsP2PAV is one of the "synthetic transaction" cmdlets included with Microsoft Lync Server 2010. The synthetic transaction cmdlets provide a way for administrators to verify that users can carry out common Lync Server activities; for example Test-CsP2PAV lets you determine whether or not two test users are able to participate in a peer-to-peer audio/video (A/V) conversation. When you call Test-CsP2PAV, the cmdlet first tries to log a pair of users on to Lync Server. (These can be two preconfigured test users, or they can be two actual users.) If those logons succeed, the first user then invites the second user to join an A/V call. The second user accepts the call, the connection between the two users is tested, then the call is ended and the test users are logged off from the system.


What's especially nice about Test-CsP2PAV is that all this action takes place under the covers: no actual A/V call is placed, and you don’t see instances of Microsoft Lync popping up all over the place. Instead, the cmdlet simply verifies that the appropriate connections can be made and that the two users are capable of conducting such a call. And, best of all, it does this in a matter of seconds.




Note to old fogeys. "Excellent."


If you've already preconfigured test users for a Registrar pool (see the New-CsHealthMonitoringConfiguration cmdlet for more details) then you can verify that two users can conduct a peer-to-peer A/V call by running a command as simple as this:


Test-CsP2PAV -TargetFqdn atl-cs-001.litwareinc.com


As you can see, all you have to do is specify the fully qualified domain name of the Registrar pool being tested. If all goes well, you should then get back a report similar to this:


TargetFqdn : atl-cs-001.litwareinc.com

Result     : Success

Latency    : 00:00:02.5716907

Error      :

Diagnosis  :


If you'd like to see a blow-by-blow account of everything that the Test-CsP2PAV cmdlet does, then just tack on the Verbose parameter when calling the cmdlet:


Test-CsP2PAV -TargetFqdn atl-cs-001.litwareinc.com -Verbose


Alternatively, you can test the ability of two real, live users to make a peer-to-peer call by using a set of commands similar to these:


$cred1 = Get-Credential "litwareinc\pilar"

$cred2 = Get-Credential "litwareinc\kenmyer"


Test-CsP2PAV -TargetFqdn atl-cs-001.litwareinc.com -SenderSipAddress "sip:pilar@litwareinc.com" -SenderCredential $cred1 -ReceiverSipAddress "sip:kenmyer@litwareinc.com" -ReceiverCredential $cred2


However, there is a catch here: in order to use two real users you will have to supply the logon name and password for each account. That's why we had to first use the Get-Credential cmdlet to configure PowerShell credential objects for the users employed in the test. That right there is one major advantage to configuring test users for a pool: you don't have to supply credentials for those test accounts any time you use one of the synthetic transaction cmdlets. We'll talk more about test accounts in some future haiku.


In the meantime, TAFN. GB, and GBTW. L8R!


Old fogey translation. "In the meantime, that's all for now, Goodbye, and get back to work. Later!"