我在 SharePoint 2010 上观察到,如果在用户登录 SharePoint 网站集后更改用户的 sAMAccountName,则 UserInfo 表中的 tp_Login 字段不会更新。它仍具有旧的用户 ID。
虽然用户可以用新帐户登录 SharePoint,但这些新登录不会更新表格。我有查看 SPUser.LoginName 的代码,该值似乎是 tp_Login 字段值,该值现已过时。该值过时这一事实导致我的代码失败。
我怀疑这种行为在 SharePoint 2007 中是相同的。
有什么方法可以强制 SharePoint 识别新的 sAMAccountName?我怀疑配置文件同步可能会有所帮助,但我希望我的解决方案能够与 WSS 3.0 和 SharePoint 2010 Foundation 一起使用。
我考虑过手动更新数据库表,但我想坚持使用支持的方法。
答案1
这应该可以帮你解决问题。它必须以 SharePoint 管理员身份运行。过去我发现这并非在所有情况下都有效,有时 SharePoint 开发团队必须手动修复用户。
stsadm.exe -o 迁移用户 -oldlogin -newlogin [-ignoresidhistory]
答案2
当我尝试以下命令时
stsadm.exe -o migrationuser -oldlogin 域名\旧用户名 -newlogin 域名\新用户名 –ignoresidhistory
我收到了同样的错误:
“值不能为空。参数名称:userProfileApplicationProxy”
但是,如果我忽略该错误并进行测试,它就会成功。