先把问题描述一下:已把AD用户“User1”加到SharePoint站点中,然后进行如下类似操作:将“User1”从SharePoint站点中删除,将“User1”从AD中删除,在AD中增加一个新用户“User1”,在SharePoint站点中增加一个用户“User1”,这时,您会发现很有意思的问题:可能可以成功增加这个用户,但是这个用户始终无法登录到SharePoint站点中;或者根本增加不了这个用户到SharePoint站点中,提示您站点中已经存在这个用户了。

在上次CSDN站点的SharePoint技术聊天活动中,有参与的网友询问了类似的问题,由于当时我在聊天活动中无法给出非常详细的解释,所以只是给出了一个相关的链接。今天用这篇文章详细解释一下。

这个问题出现的原因,是出自SharePoint对于站点用户的存储机制所造成的。SharePoint站点用户信息保存在站点对应的内容数据库的UserInfo表中,如果站点管理员删除了站点中的某个用户,您可能会惊奇的发现,这个用户相应的记录并未从UserInfo表中删除,而只是将“tp_Deleted”这个列的数据进行了设置。(这种机制的原因所在是这条记录可能已经通过外键关联了其他表的其他记录,比如此用户编写的文档,所以将此记录直接删除是不可取的。)

在以后,如果站点管理员将一个同名的用户增加到这个站点中,由于UserInfo表中已经有这条用户记录的存在,所以SharePoint也只是将这条记录的“tp_Deleted”列的数据再进行设置。

这时候,问题就来了。在UserInfo表中,有一个“td_SystemID”列,这个列是用来记录这个用户的Security Identification Number(SID)的。我们在AD中删除一个用户,再新增一个同名用户,这先后两个用户的SID肯定是不同的。而SharePoint使用了这个“td_SystemID”列来识别用户,由于前后两个用户的SID肯定不同,所以SharePoint站点就“不认”在AD中重新增加的这个用户了。

解决方法就是把UserInfo表的“td_SystemID”列的数据和当前AD中的用户信息进行同步。在SqlServer中有一个SUSER_SID()函数,可以返回某用户的SID信息。在Dean的Blog上,他已经给出了一个完整的Sql语句,大家可以直接使用。

顺便题一下,在Deam的Blog上,他也描述了这个问题所造成的另外一个问题:如果我们备份站点的时候,将用户信息也一起备份了下来,在恢复到另外一个AD中时,如果站点用户有同名的现象,也同样会造成SharePoint“不认”这个AD用户。

Sql语句:

DECLARE @login varchar(40), @systemid varbinary(128)

DECLARE curUsers CURSOR LOCAL FOR 
SELECT tp_login, tp_systemid FROM userinfo where tp_deleted = 0

OPEN curUsers

    FETCH NEXT FROM curUsers INTO @login, @systemid

WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT 'Resetting user ' + @login + ' to new SID '
    PRINT suser_sid(@login)
    UPDATE UserInfo
        SET tp_systemid = suser_sid(tp_login) WHERE CURRENT OF curUsers
    FETCH NEXT FROM curUsers INTO @login, @systemid
END

CLOSE curUsers
DEALLOCATE curUsers

GO

转载于:https://www.cnblogs.com/foxhorse/archive/2008/06/10/1216843.html

转:SharePoint站点中用户信息与AD用户信息的“不一致”问题相关推荐

  1. linux 加入ad 用ssh,使用samba验证AD用户,允许AD用户登录到linux

    使用samba验证AD用户,允许AD用户登录到linux 2007年06月26日 星期二 14:10 1.先把samba加入到AD域中 2.在smb.conf中添加一行,让登录进来的用户使用bash ...

  2. Sharepoint 2007 用户信息管理总结(2) - 用户信息管理

    最近在做一些sharepoint2007的项目时,总会遇到一些在AD中更改了用户属性后无法立即同步到Sharepoint站点中的问题,经在网上查找了一些资料解决了此问题. 解决办法: 1. 更改AD中 ...

  3. 批量移动AD用户到指定OU

    作为域管理员,在日常工作中使用ADUC(AD用户和计算机)工具在图形界面中进行账号管理操作可谓是家常便饭了.然而一个个增加.移动.删除用户,这样操作有时真的够烦,当管理大批量的账户时,重复操作浪费的时 ...

  4. 【转】SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  5. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    转:http://www.cnblogs.com/nbpowerboy/p/3355943.html 前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真 ...

  6. SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II

    这是对上一篇文章<SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户>进行补充.开发时,为了测试和演示,我们往往需要经常性的把用户添加到AD中.数据量小的时候 ...

  7. 服务器用户配置文件在哪里找,SharePoint Server 中的服务器到服务器身份验证和用户配置文件...

    SharePoint Server 中的服务器到服务器身份验证和用户配置文件 8/24/2017 本文内容 适用于: 2013 2016 2019 Microsoft 365 使用服务器间身份验证,支 ...

  8. 在AD中批量添加多个用户帐号

    问题: 如何批量的创建帐号? 解决方案: 在利用CSVDE.EXE或LDIFDE.EXE来批量创建用户帐号 实验环境: Windows 2003 如果我们要想批量的创建帐号的话,我们可以首先利用文字编 ...

  9. 让SharePoint站点输出详细错误信息[转]

    转自:http://blog.csdn.net/jackjoy/archive/2007/07/31/1719012.aspx 很显然,这样的错误提示除了会让人抓狂之外对解决问题没有任何帮助,弄过AS ...

最新文章

  1. Word提供的【样式和格式】设计!
  2. python获取小时分钟
  3. 更改ubuntu的默认shell
  4. spark中stage的划分与宽依赖/窄依赖(转载+自己理解/整理)
  5. shell最大出现和连续出现次数_shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)...
  6. XCoreRedux框架:Android UI组件化与Redux实践
  7. [Mojava 10.14.4] Clover隐藏多余分区, 原来可以这么简单
  8. python代码覆盖率工具_Python代码覆盖率分析工具Coverage
  9. 任正非:假设未来数据流量管道变粗…
  10. 为什要学习烹饪?学习烹饪迫在眉睫
  11. 又见 Lucky Number
  12. Ace Admin 使用教程
  13. ppap文件过程流程图制作_PPAP提交范本---过程流程图
  14. python translate 中文_Python translate()方法
  15. TLS Lab(Transport Layer Security Lab,SEED实验)基于PKI实验内容进行中间人攻击实验
  16. ipad云计算机,过气iPad2还能这么玩!用云电脑玩PC云游戏
  17. [SSM框架]—Spring入门
  18. windows 认证机制
  19. 【装机必备】电脑优化清理工具
  20. nginx重启(nginx -s reload 不建议使用,本人亲试,有时候无效)

热门文章

  1. 软件技术专业-就业提示(IT类详细岗位分化)
  2. centos安装 TA-Lib
  3. IDEA overwrite报错、languagelevel设置不生效问题
  4. mysql distinct、group_concat
  5. 007--C++动态内存(数组)
  6. jquery一个控件绑定多个事件
  7. one-to-one
  8. ExtJS:鼠标移出菜单后菜单自动隐藏
  9. python解析树_如何使用python中的stanford解析器获取树的叶子?
  10. 用计算机进行资料检索工作是,用计算机进行资料检索工作是属于计算机应用中的什么...