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

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

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

SharePoint 数据库中手动更新用户信息

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

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

SharePoint 数据库中手动更新用户信息

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

SharePoint 数据库中手动更新用户信息

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

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

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

SharePoint 数据库中手动更新用户信息

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

SharePoint 数据库中手动更新用户信息

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

SharePoint 数据库中手动更新用户信息

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

SharePoint 数据库中手动更新用户信息

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

SharePoint 数据库中手动更新用户信息
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>domainjianyu 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
SharePoint 数据库中手动更新用户信息

总结

  自己在使用中遇到需要更新User信息的时候,又没有同步服务,不得已而为之,特此做下记录,方便以后修改,也希望对有需要的人有帮助。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注