在SharePoint的使用过程中,尤其是Windows认证的情况下,而且没有配置用户配置文件服务,经常会出现如果更新AD中的用户信息(包括名字、显示名、邮件等),SharePoint这边站点并不会更新的情况。
这时候,我们经常会操作数据进行更新操作,生产环境建议备份,测试环境也要多看几次update语句。
1、首先进入授权的用户组,看到我们的用户名,当AD中更新,这里的Name还是之前的名字,如下:
2、鼠标放到名字上,可以看到Url链接地址,这时候我们需要ListId和ID,ListId是用户信息的列表,ID是用户的UserID,如下图:
/_layouts/listform.aspx?PageType=4&ListId={01E9CCA7-41EE-43A5-96A0-3A91A9E9CE3D}&ID=2
3、首先进入数据库,找到你的数据库,如果不知道你的网站集对应哪个数据库,建议去CA(管理中心)查看,然后找到UserInfo表,如下图:
4、首先通过查询语句,找到ID为2的数据,然后看到tp_Login是登陆名,tp_Title是Name值,tp_Email是电子邮件地址,如下图:
我们可以执行如下的更新语句,进行更新,如下:
UPDATE [TestResult].[dbo].[UserInfo] set tp_Title='linyu' where tp_ID=2
5、有些情况更新了UserInfo表之后,用户信息就已经更新了,但是有些特殊情况,还需要更新用户信息列表,就要更新AllUserData表了,如下图:
6、首先通过一条查询语句,找到我们要更新用户,如下图:
7、主要更新的字段就是tp_ColumnSet,我们可以点开查看里面的xml,如下图:
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
总结
自己在使用中遇到需要更新User信息的时候,又没有同步服务,不得已而为之,特此做下记录,方便以后修改,也希望对有需要的人有帮助。
好了,就到这里,休息,休息一下。。