下图展示了在一个拥有两个WFE服务器的SharePoint服务器场中更换SharePoint场管理员密码的一个过程.
密码的更改并不要求重启系统. Windows的服务和IIS可以使用密码更换之前的, 由旧密码生成的security token登录并持续运行. 注意, 在更换密码的过程中, 不要重启IIS或整个服务器, 否则密码的不一致会导致服务器无法使用.
为了更新application pool的账号的密码, 你需要使用如下的stsadm命令:
stsadm -o updateaccountpassword -userlogin <DOMAIN\USER> -password <PASSWORD> -noadmin
作为对这个命令的响应, SharePoint会加密这个新密码, 使用它覆盖在配置数据库中的旧的加了密的密码. 下一步SharePoint会在IIS metabase中还有其他必要的地方进行更新. 一旦这个过程结束, SharePoint会产生一个类型为SPContentAppPoolCredentialDeploymentJobDefinition的timer job, 把存储在配置数据库中的新的credentials部署到服务器场中剩余的其他机器上.
还有许多其他的账号怎么办呢? 比如说:
- SharePoint Timer service 本身,
- WSS Help Search service,
可能还有
- Shared Services Providers (SSPs),
- Office SharePoint Server Search service,
- single sign-on (SSO) service.
support.microsoft.com/kb/934838给出了详细的步骤和命令来帮助你完成这项任务.
场管理员的密码比较特殊, 因为它影响着场的crendential key, 正如早先提到的, 这个key会被用来加密场中的所有的密码.
所以, 要更新场管理员的密码, 你必须使用这个命令来更新SharePoint:
stsadm -o updatefarmcredentials -userlogin <DOMAIN\USER> -password <PASSWORD>
作为对这个命令的响应, SharePoint一定会重新的加密所有配置数据库中的已经存在了的(已经加密了的)密码. 一定会更新SharePoint Timer Job Service的账号(它会使用服务器场管理员账号), SharePoint一定会再一次地把这些信息传播到场中的其他服务器上, 方式是通过类型为SPAdminAppPoolCredentialDeploymentJobDefinition的定时器作业来完成.
Maintaining Security Account Credentials文章的剩余部分也很有价值, 其中对KB934838中为什么要按照那样的顺序执行步骤进行了解释.
还对命令updatefarmcredentials中的-local开关做了深入的解释.
摘自:
Inside SharePoint- Maintaining Security Account Credentials
http://technet.microsoft.com/en-us/magazine/2009.02.insidesharepoint.aspx?pr=blog
How to change service accounts and service account passwords in SharePoint Server 2007 and in Windows SharePoint Services 3.0
http://support.microsoft.com/kb/934838
Updatefarmcredentials: Stsadm operation (Office SharePoint Server)
http://technet.microsoft.com/en-us/library/cc262150.aspx
Migrateuser: Stsadm operation (Windows SharePoint Services)
http://technet.microsoft.com/en-us/library/cc288467.aspx