Managing Lync Server 2013 with Windows PowerShell—Part 5

Doctor Scripto

Summary: Learn about basic Lync auditing.

Hey, Scripting Guy! Question Hey, Scripting Guy!

I go sites and need to work on various Lync servers. Often my first challenge is getting their configuration. Where do I start?


Hey, Scripting Guy! Answer Hello RD,

Honorary Scripting Guy, Sean Kearney, is here to help you out with a little basic Lync auditing.

     Note This is the fifth part in a series. You might also enjoy reading:

Now my good friend, Lync MVP, Pat Richard, is probably nodding on this one. The first place you go to get your Lync configuration is (do not stop, do pass Go…. MOVE IT, MOVE IT, MOVE IT!) the Lync Server Topology Builder!

This is one of the key applications in Lync for creating and editing the topology, but you can also use it to get a copy of it! You will see this window when you start up:

Image of menu

So download an existing Topology if you have the permissions. This will gather the infrastructure of all configurations, Lync servers, voice gateways, and even your Lync Edge Server setup.

Now if you don’t have access, but the client has handily stored the file, you can open the file instead. This is faster, but it may not be as current.

Image of menu

When you are done, you can save that file anywhere, including on a portable USB key (as opposed to the large, oversized, novelty, 1987 Mercedes 300 SDL shaped kind).

You can re-open this file offsite if you need to spend more time examining a configuration or (if you’re really good) building a test environment to determine why a site might be acting funky.

Of course, the one server that it won’t have information about is your IIS Application Request Routing (ARR) or any server doing the special FQDN name translation for your inbound connection. That server won’t show up because sometimes it can be substituted by a good name translation rule in a router. So technically, although it might be a part of your Lync topology, it doesn’t actually have Lync services on it. That is one you’ll need to ask about if you’re auditing.

You can also go in to Windows PowerShell and start asking sooooo many more questions of Lync—if you’re curious—and what IT professional isn’t?

Would you like a quick and dirty breakdown of your Lync sites? Run the Get-CSSite cmdlet:

Image of command output

Would you like to see the cmdlets that various security groups have access to in Lync? Lync lives in the world of role-based access control (RBAC ). So within Lync, certain Active Directory security groups have access to certain cmdlets.

You can easily find out by running the Get-CSAdminRole cmdlet. But the output is a bit much. We’ll clean it up so you get a useful list instead:

GET-CSAdminRole | Select-object Cmdlets, Identity

Image of command output

From here, I can see the various cmdlets assigned to Active Directory groups like CS-Administrator. If you dig about, you’ll see there are even cmdlets to tweak those lists to meet your needs in your organization!

Image of command output

You can even have Lync tell you all of the users who have Enterprise Voice (the ability to use Telephony, make phone calls from Lync, or in some cases, have an actual Lync handset on their desk). One cmdlet folks! One cmdlet!

GET-CSUser | Where { $_.EnterpriseVoiceEnabled }

Or get everybody who doesn’t have it:

GET-CSUser | Where { $_.EnterpriseVoiceEnabled –eq $FALSE }

In fact, the various amounts of information you can pull from Lync via Windows PowerShell is dizzying! Take a look at the massive pile of only Get cmdlets in Lync:

Image of command output

So if you’re a new Admin to Lync, I’m hoping this week has been helpful to get you comfortable with some basic management in Windows PowerShell. If you’re a Lync MVP like my good friend, Pat Richard, and would like to share, please add to the comments section. It’s community that makes Windows PowerShell great!

…and that’s people like you!

Stop by tomorrow and we’ll discuss some things that you need to back up that Lync infrastructure and make your life a little smoother. I promise to make it quick. After all, it is the weekend!

I invite you to follow The Scripting Guys on Twitter and Facebook. If you have any questions, send an email to The Scripting Guys at, or post your questions on the Official Scripting Guys Forum. See you tomorrow. Until then remember to eat your cmdlets each and every day with a dash of creativity.

Sean Kearney, Windows PowerShell MVP and Honorary Scripting Guy


Discussion is closed.

Feedback usabilla icon