Compartilhar via


One of These Things is Not Like the Others: Challenge 9: Answer

Another week, another Lync Server PowerShell Challenge. Last week we presented you with the following four Lync Server PowerShell cmdlets and asked the by-now immortal question "Which of these cmdlets is not like the others?":

Test-CsIm

Test-CsGroupIm

Test-CsGroupExpansion

Test-CsPhoneBootstrap

Nearly everyone who submitted an answer went with Test-CsPhoneBootstrap. Why? Several different reasons were offered as to what set Test-CsPhoneBootstrap apart from its fellow cmdlets. (Although, interestingly enough, no one noted that the word bootstrap is really hard to type, at least for those of us who don't type all that well to begin with.) As ewright19 noted, the other three cmdlets are used to verify the health of a Lync Server component; by contrast, Test-CsPhoneBootstrap (which we always want to type as Test-CsPhoneBoostrap) is used to verify that a Lync device is able to log on to the system. As several people pointed out, Test-CsPhoneBootstrap is the only cmdlet related to voice activities, and the only cmdlet that requires that the test user be enabled for Enterprise Voice. (To be honest, that's one we didn’t even think of. Nice catch, guys!) Several people also pointed out that Test-CsPhoneBootstrap has several unique parameters (e.g., PhoneOrExt and PIN).

All of the above reasons are true and are perfectly acceptable. We wanted to add one more: Test-CsPhoneBootstrap is the only one of the four that cannot be run using health monitoring test accounts. If you have set up these test accounts then you can run the other three cmdlets without specifying a user; for example:

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

If you look at the preceding example, you'll notice that we didn't specify any user name or phone number or credential of any kind. Is that going to work? Well, as long as we've configured test accounts it will; in that case, Test-CsGroupIm will go ahead and carry out its tests using the two test accounts configured for the specified pool. You can't do that with Test-CsPhoneBootstrap; you always have to specify the phone number of the user being tested.

We should also note that a couple of people chose Test-CsGroupExpansion as the outlier. Why? As Thomas L. noted "This is unique because unlike the other three, it has a cmdlet set with a parameter set that begins with a mandatory parameter name and a 1st parameter that is not a TargetFQDN. The other three only have parameter sets that begin with an optional TargetFQDN parameter."

Thomas went on to add that " … in my teaching of PowerShell, I try to teach patterns, common syntax (and pipeline) patterns that delegates then hang onto. This helps them to remember and recognise these approaches as they use PowerShell. Thus, the form of cmdlets and their invocation is also an important factor in demonstrating Lync-PowerShell mastery …." Thomas concluded by saying that he expected that the authors of the Lync Server PowerShell blog had anticipated this answer. Um, sure, Thomas, sure ….

Finally, a special thanks to Tom A., who offered to buy us a drink if we showed up in London this past weekend. We won't bother to tell you what Microsoft said when we asked if they would fly us to London for the weekend; if you're smart enough to handle the weekly challenge then you're more than smart enough to figure that out as well.

Oh, and speaking of the weekly challenge, we've got another one waiting for you right here. Good luck, and see you next week.

Challenge Home