Artículo original publicado el martes, 24 de julio de 2012

En blogs anteriores de SharePoint 2010 he hablado sobre cómo llevar a cabo la migración de notificaciones: http://blogs.technet.com/b/speschka/archive/2010/07/20/migrating-from-windows-classic-auth-to-windows-claims-auth-in-sharepoint-2010-part-2.aspx y de aspectos relacionados. En SharePoint 2013 disponemos de un nuevo cmdlet para este propósito, llamado Convert-SPWebApplication, del cual hablaré próximamente. Como podemos deducir a partir de su nombre, el ámbito del cmdlet es la aplicación web. Creemos, por supuesto, que dado que adjuntamos bases de datos de contenido para crear las nuevas granjas de servidores de SharePoint 2013, queremos un método más sencillo para migrar las bases de datos que todavía utilizan la autenticación clásica de Windows. En este escenario, asumiremos que ya disponemos de una aplicación web de notificaciones de Windows ejecutándose en SharePoint 2013 y que hemos adjuntado la base de datos de contenido de SharePoint 2010 utilizando el cmdlet Mount-SPContentDatabase. Por lo tanto, asumiendo que tenemos una base de datos de contenido desde la cual hemos creado SPWebApplication y que hemos agregado la segunda, que está en modo clásico de Windows, a continuación exponemos cómo convertir únicamente esta base de datos para que utilice las notificaciones de Windows. AVISO: es extremadamente importante que utilice "$arguments" para el parámetro de argumentos. no soy el mayor experto de PowerShell en el mundo (ni mucho menos), por lo que cometí repetidamente el error de llamar "$args" al mío. Tras una hora dando vueltas al tema y sin poder avanzar, me di cuenta de que todo funcionaba a la perfección simplemente utilizando $arguments. Lo escribo simplemente para anticiparme ante posibles reclamaciones. :-)

$wa = Get-SPWebApplication http://yourWebAppUrl
$acc = 'dominio\usuario'
$arguments = New-Object Microsoft.SharePoint.Administration.SPWebApplication+SPMigrateUserParameters

#en base al escenario anterior, la base de datos de contenido 0 es la que se ha creado con la aplicación web, por lo tanto la base de datos 1 es la agregada con Mount-SPContentDatabase

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

Tras ejecutar lo anterior, debemos poder continuar sin problemas. Lo he probado en una base de datos de contenido con diversos usuarios y una combinación de permisos exclusivos y grupos de SharePoint, y todo ha funcionado a la perfección. Y además, en efecto, se trata realmente de una señal positiva entre SPWebApplication y SPMigrateuserParameters.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Converting A Classic Auth Content Database to Claims Auth in SharePoint 2013