Topic Last Modified: 2010-10-01

Returns information about the pools used in your deployment of Microsoft Lync Server 2010. Pools are a collection of computers in a site that all run the same set of Lync Server 2010 services.


Get-CsPool [-Identity <XdsGlobalRelativeIdentity>] [-Site <String>]
Get-CsPool [-Filter <String>] [-Site <String>]


Parameter Required Type Description




Fully qualified domain name (FQDN) of the pool to be returned. For example: -Identity

If this parameter is not present, then all the pools in your organization will be returned.




Enables you to use wildcards when specifying the Identity of the pool (or pools) to be returned. For example, this syntax returns all the pools that have an Identity that ends with the string value "": -Filter "*".

Note that you cannot use both the Filter and the Identity parameters in the same command.




Returns all the pools found on the specified site. The site in question should be referenced using the site’s DisplayName (for example, Redmond) rather than the site Identity (for example, site:Redmond). For example: -Site "Redmond". You can retrieve the display names for your sites by running this command:

Get-CsSite | Select-Object Identity, DisplayName

Detailed Description

In Lync Server 2010, a pool is one or more computers in the same site that run the same set of services. For example, if you have one server running the Mediation Server service in the Redmond site, then you would have a Mediation Server pool consisting of that one computer. If you have two computers running Mediation Server in the Redmond site, then you would have a Mediation Server pool consisting of two computers. The number of pools used in your organization depends on the number of servers you have and the different services run by those servers.

The Get-CsPool cmdlet enables you to retrieve information about each pool in use in your organization, including information about the services running on each of those pools.

Who can run this cmdlet: By default, members of the following groups are authorized to run the Get-CsPool cmdlet locally: RTCUniversalUserAdmins, RTCUniversalServerAdmins, RTCUniversalReadOnlyAdmins. To return a list of all the role-based access control (RBAC) roles this cmdlet has been assigned to (including any custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:

Get-CsAdminRole | Where-Object {$_.Cmdlets –match "Get-CsPool"}

Input Types

None. Get-CsPool does not accept pipelined input.

Return Types

Get-CsPool returns instances of the Microsoft.Rtc.Management.Deploy.Internal.Cluster object.


-------------------------- Example 1 --------------------------

Copy Code

The preceding command returns all the pools found in your deployment of Lync Server.

-------------------------- Example 2 --------------------------

Copy Code
Get-CsPool | Select-Object -ExpandProperty Computers

Example 2 displays detailed information about the computers found in each of your pools. This is done by calling Get-CsPool, and then piping the returned data to the Select-Object cmdlet. Select-Object’s ExpandProperty parameter is then used to "expand" the value of the Computers property. The Computers property is an array of objects representing each computer in the pool. When you expand the Computers property you get back detailed information about each of these computers.

-------------------------- Example 3 --------------------------

Copy Code
Get-CsPool -Identity

In the preceding example, the Identity parameter is used to restrict the returned data to the pool that has the Identity

-------------------------- Example 4 --------------------------

Copy Code
Get-CsPool -Site "Redmond"

Example 4 returns all the pools found in the Redmond site. To do this, the command uses the Site parameter; the parameter value "Redmond" limits the returned data to pools where the Site property is equal to Redmond.

-------------------------- Example 5 --------------------------

Copy Code
Get-CsPool | Where-Object {$_.Services.Count -eq 0}

The command shown in Example 5 returns a collection of all the pools that do not have any Lync Server services installed. To carry out this task, the command first calls Get-CsPool without any parameters; that returns a collection of all the pools currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out all the pools where the Services.Count property is equal to 0. If the Count equals 0, that means that there are no Lync Server services configured for that pool.

See Also

Other Resources