我们下面提及的升级方式是: 2007 > 2010 > 2013 > 2013: classic authentication à claims based authentication
刚才沟通了一下, 当前的环境是采用的另外一种方式进行的升级:2007 > 2010 > 2010: classic authentication à claims based authentication > 2013
在2010的升级后, 进行了认证方式的转化, 但是没有对用户进行转化, 因为时间关系, 未能做充分的测试, 所以我们的讨论结果是可能这里出了一些问题.
因为考虑到当前环境升级复杂, 我们的下一步方案是:
1) 协助进行本地测试, 看是否可能在SharePoint 2013中修复在SharePoint 2010中没有执行的用户转化步骤.
2) 如果不行, 将重新进行升级, 确保升级到SharePoint 2010后用户访问没有问题后再升级到SharePoint 2013.
经过本地升级测试验证, 该问题应该是由于在SharePoint 2010上没有执行用户迁移操作导致(注: 黄色标记部分代码).
并且已经确认在执行该代码后迁移至SharePoint 2013后用户可以访问站点, 如果未执行迁移后管理员可以访问站点, 但普通用户会出现访问被拒绝的错误信息.
已经在测试环境确认可以在迁移后的SharePoint 2013 环境执行遗漏的步骤以修正该问题.
需要注意的是 执行完后会启动后台的计时器作业同步所有服务器上的信息, 因此执行后请等待一段时间后重启IIS, 然后验证问题是否解决.
参考: http://technet.microsoft.com/en-us/library/gg251985(v=office.15).aspx
Convert SharePoint 2010 Products classic-mode web applications to claims-based authentication in SharePoint 2010 Products and then upgrade to SharePoint 2013
$WebAppName = "http://<yourWebAppUrl>"
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()
#admin account: yourDomain\yourUser
$account = "yourDomain\yourUser"
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"PSPolicy")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()
$wa.MigrateUsers($true)
$wa.ProvisionGlobally()