Topic Last Modified: 2013-02-21

Locates each server running Web Services in a site that has been assigned a Kerberos account, and then updates the Internet Information Services (IIS) configuration settings on each of those servers. This cmdlet was introduced in Lync Server 2010.


Set-CsKerberosAccountPassword -UserAccount <String> <COMMON PARAMETERS>
Set-CsKerberosAccountPassword -FromComputer <Fqdn> -ToComputer <Fqdn> <COMMON PARAMETERS>
COMMON PARAMETERS: [-Confirm [<SwitchParameter>]] [-Force <SwitchParameter>] [-Report <String>] [-WhatIf [<SwitchParameter>]]



The command shown in Example 1 sets the password for the Kerberos account litwareinc\kerberostest.

Copy Code
Set-CsKerberosAccountPassword -UserAccount "litwareinc\kerberostest"


In Example 2, the Kerberos account password is copied from the computer to the computer

Copy Code
Set-CsKerberosAccountPassword -FromComputer "" -ToComputer ""

Detailed Description

In Microsoft Office Communications Server 2007 and Microsoft Office Communications Server 2007 R2, IIS ran under a standard user account. This had the potential to cause issues: if that password expired you could lose your Web Services, an issue that was often difficult to diagnose. To help avoid the issue of expiring passwords, Lync Server enables you to create a computer account (for a computer that doesn’t actually exist) that can serve as the authentication principal for all the computers in a site that are running IIS. Because these accounts use the Kerberos authentication protocol, the accounts are referred to as Kerberos accounts, and the new authentication process is known as Kerberos web authentication. This enables you to manage all your IIS servers by using a single account.

To run your servers under this new authentication principal, you must first create a computer account by using the New-CsKerberosAccount cmdlet; this account is then assigned to one or more sites. After the assignment has been made, the association between the account and the Lync Server site is enabled by running the Enable-CsTopology cmdlet. Among other things, this creates the required service principal name (SPN) in Active Directory Domain Services. SPNs provide a way for client applications to locate a particular service.

After a new association has been made, the Set-CsKerberosAccountPassword cmdlet provides a way to modify the password assigned to the account and, equally important, update the password on every computer that uses the specified Kerberos test account for Kerberos web authentication.

In addition, the cmdlet can also use the ToComputer and FromComputer parameters to copy this configuration information from one computer to another.

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


Parameter Required Type Description




Fully qualified domain name (FQDN) of the computer containing the Kerberos account’s password that will be copied to another computer. This parameter cannot be used if you use the UserAccount parameter.




FQDN of the computer where the Kerberos account password will be copied. This parameter cannot be used if you use the UserAccount parameter.




Account name for the account whose password should be changed. This account name must use the format domain_name\user_name; for example: -UserAccount "litwareinc\kerberostest".

Note that, despite the name UserAccount, the account is actually a computer account, not a user account.




Prompts you for confirmation before executing the command.




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




Enables you to specify a file path for the log file created when the cmdlet runs. For example: -Report "C:\Logs\SetKerberosPassword.html".




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

Input Types


Return Types

The Set-CsKerberosAccountPassword cmdlet does not return any objects or values. Instead, the cmdlet modifies existing instances of the Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccount object.