转载自:http://www.cnblogs.com/jianyus/p/4269990.html


  在SharePoint的使用过程中,尤其是Windows认证的情况下,而且没有配置用户配置文件服务,经常会出现如果更新AD中的用户信息(包括名字、显示名、邮件等),SharePoint这边站点并不会更新的情况。

  这时候,我们经常会操作数据进行更新操作,生产环境建议备份,测试环境也要多看几次update语句。

  1、首先进入授权的用户组,看到我们的用户名,当AD中更新,这里的Name还是之前的名字,如下:

wKioL1cpyRvgssW3AAAgtj5khe0705.png

2、鼠标放到名字上,可以看到Url链接地址,这时候我们需要ListId和ID,ListId是用户信息的列表,ID是用户的UserID,如下图:

  /_layouts/listform.aspx?PageType=4&ListId={01E9CCA7-41EE-43A5-96A0-3A91A9E9CE3D}&ID=2

wKiom1cpyEbAIdKqAAA_EY4hBNM007.png

  3、首先进入数据库,找到你的数据库,如果不知道你的网站集对应哪个数据库,建议去CA(管理中心)查看,然后找到UserInfo表,如下图:

wKiom1cpyEagTRxuAAAWDCD0Hdo592.png

  4、首先通过查询语句,找到ID为2的数据,然后看到tp_Login是登陆名,tp_Title是Name值,tp_Email是电子邮件地址,如下图:

  我们可以执行如下的更新语句,进行更新,如下:

UPDATE [TestResult].[dbo].[UserInfo] set tp_Title='linyu' where tp_ID=2

wKioL1cpyRuRCFGlAAAdKRdiC8w063.png

  5、有些情况更新了UserInfo表之后,用户信息就已经更新了,但是有些特殊情况,还需要更新用户信息列表,就要更新AllUserData表了,如下图:

wKiom1cpyEbyACJ6AAAUBJugJo4664.png

  6、首先通过一条查询语句,找到我们要更新用户,如下图:

wKioL1cpyRziEII0AAAok8VuXfA278.png

 7、主要更新的字段就是tp_ColumnSet,我们可以点开查看里面的xml,如下图:

wKiom1cpyEeAx5gNAAAasFknYn4913.png

 8、执行一条更新语句,就可以更新为我们需要的个人信息,如下:

Update [WSS_Content_Data].[dbo].[AllUserData] set tp_ColumnSet ='
<bit2>1</bit2>
<bit3>0</bit3>
<bit4>0</bit4>
<bit5>1</bit5>
<nvarchar1>jianyu yang</nvarchar1>
<nvarchar3>domain\jianyu yang</nvarchar3>
<nvarchar4>jianyu.yang@email.com.cn</nvarchar4>
<nvarchar13>Jianyu</nvarchar13>
<nvarchar14>Yang</nvarchar14>
<nvarchar16>jianyu yang</nvarchar16>
<nvarchar19>34</nvarchar19>'
where tp_ListId='01E9CCA7-41EE-43A5-96A0-3A91A9E9CE3D' and tp_ID=2