http://www.sharepointblogs.com/dustin/archive/2004/09/10/756.aspx
Thanks to my good friend Jeremy McMahan for finding the suser_sid() function for me -- My original solution was a crazy mix of linked servers and the Directory Services provider for OLEDB!
Ever migrate your SharePoint site to a totally new environment and discover that your efforts to re-create your Active Directory were all for nothing, since all the users got new SIDs? Symptoms like: The administrator of the server can log in, but nobody else can, even though you're SURE their usernames and passwords are right.
Here's a script that'll fix that up for you in a jif. Open Query Analyzer and run it against the content database for your site, and it will update all the SIDs for your users to the SID that is reported for that user by Active Directory.
Big fat disclaimer: Microsoft does NOT support ANY modifications to your SharePoint databases. That's not to say they won't support your SharePoint site, but if this operation breaks your server, Microsoft won't help you. I'm not responsible for the results, either, while we're on the subject of passing the buck. BACK UP YOUR DATABASE.
Okay, now that we've gotten that mumbo-jumbo out of the way, here's the code.
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
本文提供了一个解决SharePoint迁移后用户SID变更导致登录失败问题的脚本。通过更新内容数据库中的SID信息使之与Active Directory中的一致,可以解决除管理员外其他用户无法登录的问题。请注意,在执行此脚本前务必做好数据库备份。
107

被折叠的 条评论
为什么被折叠?



