Topic Last Modified: 2010-10-01

Enables you to modify an existing User Services pool. Among other things, the User Services pool provides presence information and helps to manage conferences.


Set-CsUserServer [-Identity <XdsGlobalRelativeIdentity>] [-ConferenceServer <String>] [-Confirm [<SwitchParameter>]] [-Force <SwitchParameter>] [-McuFactorySipPort <UInt16>] [-UserDatabase <String>] [-WhatIf [<SwitchParameter>]]


Parameter Required Type Description



Xds Identity

Unique identifier for the User Services pool to be modified. For example: -Identity "".

Note that you can leave off the prefix "UserServer:" when specifying a User server. For example: -Identity "".




Service ID for the conferencing server associated with the User Services pool. For example: -ConferenceServer "".




Port used for connecting to the Focus Factory (McuFactory). The Focus Factory allocates media control units (MCUs) in order to add specific media types such as audio to conferences. The default value is 444.




Service ID for the user database associated with the User Services pool. For example: -UserDatabase "".



Switch Parameter

Suppresses the display of any non-fatal error message that might arise when running the command.



Switch Parameter

Describes what would happen if you executed the command without actually executing the command.



Switch Parameter

Prompts you for confirmation before executing the command.

Detailed Description

User Services is a catch-all component that performs a number of key Microsoft Lync Server 2010 roles; for example, User Services provides presence information; helps to manage conferences (through the Focus and Focus Factory); handles user authorization and user-level routing; and serves as the primary interface to the back-end database. User Services also assists with provisioning user accounts.

Because of this, it is important for administrators to know exactly how their User Services pools have been configured and, if necessary, to modify those configurations. You can retrieve information about your User Services pools by using this command:

Get-CsService -UserServer

Likewise, you can use the Set-CsUserServer cmdlet to make changes to any of these pools. Set-CsUserServer enables administrators to change the user database and/or the conferencing server associated with a pool. The cmdlet also lets you modify the port used for connections to the Focus Factory.

Who can run this cmdlet: By default, members of the following groups are authorized to run the Set-CsUserServer cmdlet locally: RTCUniversalServerAdmins. 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 "Set-CsUserServer"}

Input Types

None. Set-CsUserServer does not accept pipelined input.

Return Types

Set-CsUserServer does not return any objects or values. Instead, the cmdlet modifies existing instances of the Microsoft.Rtc.Management.Xds.DisplayUserServer object.


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

Copy Code
Set-CsUserServer -Identity "" -McuFactorySipPort 445

The command shown in Example 1 changes the McuFactorySipPort for a single User Services pool: the pool with the Identity In this example, the port is changed to 445.

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

Copy Code
Get-CsService -UserServer | ForEach-Object {Set-CsUserServer -Identity $_.Identity -McuFactorySipPort 445}

The command shown in Example 2 is a variation of the command shown in Example 1. In this case, however, the McuFactorySipPort is modified for all the User Services pools in the organization. To do this, the command starts off by using Get-CsService and the UserServer parameter to return a collection of all the User Services pool currently in use. This collection is then piped to the ForEach-Object cmdlet, which takes each pool in the collection and sets the McuFactorySipPort to 445. The data must be piped to ForEach-Object because the Set-CsUserServer cmdlet cannot accept pipelined data itself.

See Also

Other Resources