还原站点后(跨域),访问站点出现Access Denied
时间:2011-05-18 来源:天下尽好
最近在准备一些SharePoint 2010的Demo,我发现一些备份的Site Collection(利用Backup-SPSite或者UI)在还原到在另外一个域的Farm的时候,全部Access Denied了,即使我用同样名字的账号,或者最高权限的账号也不行。
另外一个现象就是在试图更换Site Collection Administrator的时候,会出现“object reference not set to an instance of an object”错误。
分析了ULS Log,一直也没有发现原因。今天突然想到,因为我还原到另外一个域的时候,即使域名相同,用户的SID也已经改变了。所以需要同步一下用户账号。
在SharePoint 2007,可以用 STSADM -o migrateuser 命令来做,既然到了SharePoint 2010,就用PowerShell来做吧。以下是命令:
$spFarm = [Microsoft.SharePoint.Administration.SPfarm]::Local
$spFarm.MigrateUserAccount("Contoso\administrator", "Contoso\administrator", $False)
第一个参数是以前的账号,第二是新的账号,最后是一个参数是否保留SID历史,由于我是跨域的,所以不需要保留。
同步以后,问题就解决了,开心。
注意:运行这个命令,对于administrator账号,也许会出现一个错误,忽略就可以了。