Bah-bah black sheep, have

You a reason to run the

ACP commands?


This past weekend was an exciting one for the author of today's haiku: he attended the Soldier Hollow Sheepdog Championship. Why was that so exciting? Well, when it comes to spectator sports, the author of today's haiku has always had two goals: 1) to go to the Rose Bowl and watch the University of Washington beat somebody – anybody­ – from the Big Ten Conference (which, for those of you who graduated from a Big Ten school, actually has twelve members); and, 2) to attend a Sheepdog Championship. A few years ago the author and his son watched as the UW whipped Purdue in the Rose Bowl. And now, after this past weekend, well ….


To be perfectly honest, however, the Sheepdog Championship was actually pretty interesting, interesting enough that the author of today's haiku now considers himself something of an expert on sheepdog trials. We never really recommend that you ask him questions about Lync Server or Lync Server PowerShell, but if you have questions about sheepdog trials – and on any component of the trials, from the outrun to the gather to the shed – just send them in and he will be happy to answer them. No doubt he'll answer them incorrectly, but he'll be happy to answer them nevertheless.


One thing that he was especially interested in was the terminology used by the sheepdog handlers ("Come bye"). If you've ever seen the movie Babe (and if you haven't, you should stop whatever you're doing and go see it), then you might recall the shepherd saying, "That'll do, Pig. That'll do." As it turns out, "That'll do" is standard terminology used by a sheepdog handler: it means that everything is fine, and that the dog can relax. The author of today's haiku was intrigued by that because, several years ago, he was helping his son with a project and the author asked his son if they were about ready to wrap things up. "That'll do, Pig," said his son. "That'll do."


Note. In case you're wondering, the author's son tends to say things that he thinks are absolutely hilarious, but that no one else finds the least bit funny. Must be something he inherited from his mother.


At any rate, the sheepdog trials were kind of cool, and the border collies competing were remarkably intelligent. Are border collies smart enough to write a daily haiku about Lync Server PowerShell? Actually, border collies are smart enough not to write a daily haiku about Lync Server PowerShell. You know, sometimes the author of today's haiku wishes he was a border collie.


Of course, so do the people he works with.


Note. Sheep, by the way, are the dumbest animals in the world: all they do is stand around and eat, at least until the border collies charge at them. When that happens, the sheep run to wherever the border collie directs them, and then they stop, stand around, and eat some more. Sheep are totally mindless beings that are motivated solely by fear: if someone didn't put the fear of dog into them they would never do a single thing. And then, once sufficiently … motivated … sheep will do anything they're told, and do it without question and without giving it a second thought. Just as long as they get fed.


You know, come to think of it, that does seem kind of familiar, at least to some of us ….


At any rate, all of that represents our clever lead-in to – you got it – today's haiku about Lync Server PowerShell. Today we're going to talk about the CsUserAcp cmdlets: Get-CsUserAcp, Remove-CsUserAcp, and Set-CsUserAcp.


And the first thing we want to talk about is this: you probably don't want to use these cmdlets. The CsUserAcp cmdlets are really intended for use with the Office 365 version of Microsoft Lync, and not really intended for use with Microsoft Lync Server 2010. They work in Lync Server 2010, and, if you want to, you can use them for record-keeping purposes. But they don't provide true integration between Lync Server and an audio conferencing provider (ACP).


Oh, right: we should probably mention that the CsUserAcp cmdlets are designed to provide integration between Lync Server (or at least the Office 365 version of Lync) and an audio conferencing provider. If you aren't familiar with the term, an audio conferencing provider is a third-party company that provides organizations with conferencing services. Among other things, ACPs provide a way for users located off site (and not connected to the corporate network or the Internet) to participate in the audio portion of a conference or meeting. In addition to that, audio conferencing providers often provide high-end services such as live translation, transcription, and live per-conference operator assistance. It all depends on what you need to do and, to be honest, what you're willing to pay for.


In Office 365, you'll eventually be able to use Windows PowerShell to assign audio conference providers to your users, and then to management those assignments once they've been made. (Before you ask, no, this capability is not yet available to Office 365 administrators.) In Lync Server 2010, you can use the CsUserAcp cmdlets simply to keep track of which ACPs have been assigned to which users. Keep in mind, however, that this is purely for bookkeeping purposes: if you assign an ACP to a user using Set-CsUserAcp, the cmdlet won’t, say, notify the audio conferencing provider of the change. To be honest, at this point in time anyone using a third-party audio conferencing provider would probably be better off tracking user data using the ACP's software instead of the CsUserAcp cmdlets. But hey, who are we to judge, right?


If you decide that you really, really want to use the CsUserAcp cmdlets, you can assign an ACP to a user by using a command similar to this:


Set-CsUserAcp -Identity "Ken Myer" -TollNumber "14255551298" -ParticipantPassCode 13761 -Domain "" -Name "Fabrikam ACP" -TollFreeNumbers "18005551010", "18005551020"


As you can see, we assigned Ken Myer to the audio conferencing provider Fabrikam ACP. In doing so, we assigned Ken a toll number, a pass code, and a pair of toll-free numbers. (Where do all these values come from? From the audio conferencing provider.) About the only thing to really note here is the format used for the telephone numbers: it's numbers-only, with no hyphens, no parentheses, and no TEL:+ prefix.


Which means it's actually easier than assigning other types of phone numbers.


And that's really all there is to it. Do you actually want Ken Myer to have an account with two audio conferencing providers? That's fine: just assign him a second provider, like so:


Set-CsUserAcp -Identity "Ken Myer" -TollNumber "12065551219" -ParticipantPassCode 09841 -Domain "" -Name "Contoso ACP" -TollFreeNumbers "18005550712"


If you now look at the ACP information for Ken Myer, you'll see that he's been assigned to both Fabrikam ACP and Contoso ACP.


Oh, good point: how do you look at the ACP information for Ken Myer? We'd suggest using the Get-CsUserAcp cmdlet, like so:


Get-CsUserAcp -Identity "Ken Myer"


If you want to look at all the users assigned to Contoso ACP you can use a command like this one:


Get-CsUserAcp | Where-Object {$_.AcpInfo -match "Contoso ACP"


And while we're at it, here's another handy little command, one that returns a list of all the users who have not been assigned an audio conferencing provider:


Get-CsUserAcp -Filter {AcpInfo -eq $Null}


And if you want to remove the audio conferencing providers assigned to Ken Myer, well, that's what the Remove-CsUserAcp cmdlet is for. This command removes all the ACPs assigned to Ken Myer:


Remove-CsUserAcp -Identity "Ken Myer"


And this one removes just the Contoso ACP provider, leaving any other providers assigned to Ken Myer as-is:


Remove-CsUserAcp -Identity "Ken Myer" -Name "Contoso ACP"


We could go on, but, again, these probably really aren't cmdlets you'll ever need to use. If you want to see more examples, check the help topics for Get-CsUserAcp, Remove-CsUserAcp, and Set-CsUserAcp.


Is there anything else we want to say about the CsUserAcp cmdlets? Nope. That'll do, folks. That'll do.


See you tomorrow.


Note. An artist in Northumberland, England was once given a grant to create poetry using live sheep: she spray-painted a different word on each animal and, when the sheep stopped to rest (or to eat), their random arrangement in the flock would create a new poem. For example:


Warm drift, graze gentle,

White below the sky,

Soft sheep, mirrors,

Snow clouds.


And yes, as a matter of fact, that is way better than any of Lync Server PowerShell haikus. Thank you for pointing that out to everyone.