Преобразование базы данных содержимого с классической проверкой подлинности для проверки подлинности на основе утверждений в SharePoint 2013

Исходная статья опубликована во вторник, 24 июля 2012 года

В предыдущих записях блога о 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, о котором я расскажу в другой раз. Впрочем, как следует из названия, этот командлет ориентирован на веб-приложения. Конечно, мы полагаем, что при подключении баз данных содержимого для создания новых ферм SharePoint 2013 вы захотите воспользоваться более простым методом переноса баз данных, все еще использующих классическую аутентификацию Windows. Для нашего примера будем считать, что у вас уже есть веб-приложение с проверкой подлинности на основе утверждений Windows, работающее в SharePoint 2013, и вы уже подключили свою базу данных содержимого SharePoint 2010 при помощи командлета Mount-SPContentDatabase. Итак, предположим, у вас есть одна база данных содержимого (с того момента, как вы создали SPWebApplication), и вы только что добавили вторую БД с классическим режимом проверки подлинности Windows Classic. Вот описание того, как можно преобразовать эту последнюю базу данных для использования проверки подлинности на основе утверждений Windows. Обратите внимание - это очень важно - что следует использовать " $arguments" для параметра аргументов. Я далеко не лучший специалист по PowerShell в мире (мягко говоря), поэтому я пытался прошибить лбом стену из-за того, что назвал параметр "$args". Набив порядочно синяков, я наконец понял, что все заработает, если переименовать параметр в $arguments. Не говорите мне, что я сам во всем виноват :-)

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

#в соответствии с примером выше, БД содержимого 0 - та, что была создана вместе с веб-приложением, а БД 1 - та, что была добавлена при помощи командлета Mount-SPContentDatabase

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

После того как вы запустите этот скрипт, все должно получиться. Я проверял его на базе данных содержимого с множеством пользователей и сочетаний групп SharePoint, а также уникальными разрешениями, и все работало на ура. Кстати говоря, между параметрами SPWebApplication и SPMigrateuser действительно стоит знак плюса.

Это локализованная запись блога. Оригинал статьи находится на странице Converting A Classic Auth Content Database to Claims Auth in SharePoint 2013