Share via


在 SharePoint 2013 中将经典身份验证内容数据库转换为声明身份验证数据库

原文发布于 2012 年 7 月 24 日(星期二)

在之前有关 SharePoint 2010 的博客中,我已阐述如何执行声明迁移(https://blogs.technet.com/b/speschka/archive/2010/07/20/migrating-from-windows-classic-auth-to-windows-claims-auth-in-sharepoint-2010-part-2.aspx(该链接可能指向英文页面))和其他问题。在SharePoint 2013 中,我们专门为此推出了一个名为 Convert-SPWebApplication 的新 cmdlet(稍后我可能会详细阐述)。顾名思义,cmdlet 的范围是 Web 应用程序。我们深信,当您附加内容数据库创建新的 SharePoint 2013 场时,您当然希望找到一种“更简便”的方法来迁移那些仍在使用 Windows 经典身份验证的数据库。在这种情况下,我想您已拥有一个在 SharePoint 2013 中运行的 Windows 声明 Web 应用程序,且您已使用 Mount-SPContentDatabase cmdlet 附加 SharePoint 2010 内容数据库。假设您创建 SPWebApplication 时,已拥有一个内容数据库,且您已添加另一 Windows 经典模式的内容数据库。下面,我们一起来看看您可以如何仅将该内容数据库转换为使用 Windows 声明的数据库。请注意非常重要):您可以针对该参数使用“ $arguments”。我并不是全球最聪明的 PowerShell 高手(甚至连近乎高手也不算),因此在经过一个小时的反复碰壁栽倒之后,我才发现,如果只调用 $arguments,一切便会大功告成。嗯,我确信肯定有人会向我指出,这确实是我的错。:-)

$wa = Get-SPWebApplication https://yourWebAppUrl
$acc = 'domain\user'
$arguments = New-Object Microsoft.SharePoint.Administration.SPWebApplication+SPMigrateUserParameters

# 在上述场景中,内容数据库 0 是使用 Web 应用程序创建的数据库,而内容数据库 1 则是使用Mount-SPContentDatabase 添加的数据库

$arguments.AddDatabaseToMigrate($wa.ContentDatabases[1])
$wa.MigrateUsersToClaims($acc, $true, $arguments)

运行此代码之后,一切便会顺利进行。我已利用大量用户、各种 SharePoint 组以及唯一权限在内容数据库上进行过测试。顺便提一下,SPWebApplication 和 SPMigrateuserParameters 之间确实有一个加号。

这是一篇本地化的博客文章,请访问 Converting A Classic Auth Content Database to Claims Auth in SharePoint 2013 以查看原文