Konvertieren einer Datenbank von der klassischen Authentifizierung in die anspruchsbasierte Authentifizierung in SharePoint 2013

Veröffentlichung des Originalartikels: 24.07.2012

In früheren Blogs für SharePoint 2010 habe ich mich mit dem Migrieren des Authentifizierungstyps befasst: 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 usw. In SharePoint 2013 gibt es hierfür ein neues Cmdlet mit der Bezeichnung Convert-SPWebApplication, das ich möglicherweise in Zukunft behandeln werde. Anhand des Namens können Sie jedoch bereits erkennen, dass dieses Cmdlet für Webanwendungen gedacht ist. Wir sind jedoch der Meinung, dass Sie beim Anfügen von Inhaltsdatenbanken zum Erstellen Ihrer neuen SharePoint 2013-Farmen eine „schlankere“ Methode zum Migrieren von Datenbanken wünschen, die noch die klassische Windows-Authentifizierung verwenden. In diesem Szenario gehe ich davon aus, dass Sie bereits eine anspruchsbasierte Windows-Webanwendung in SharePoint 2013 ausführen und Ihre SharePoint 2010-Inhaltsdatenbank bereits mit dem Cmdlet Mount-SPContentDatabase angefügt haben. Angenommen, Sie verfügen durch das Erstellen von SPWebApplication über eine Inhaltsdatenbank und haben soeben eine zweite Inhaltsdatenbank im klassischen Windows-Modus hinzugefügt. In diesem Fall können Sie wie folgt nur diese Inhaltsdatenbank in die Verwendung der anspruchsbasierten Windows-Authentifizierung konvertieren. Beachten Sie folgenden HINWEISsehr wichtig: Verwenden Sie unbedingt $arguments für den Argumentparameter. Ich bin nicht der größte PowerShell-Experte und habe mich schon des öfteren geärgert, weil ich versehentlich $args verwendet habe. Nach einer Stunde Schweiß und Tränen stellte ich fest, dass mit $arguments alles einwandfrei funktioniert. Ich weiß, daran bin ich ganz allein schuld.

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

#Anhand des obigen Szenarios ist die Inhaltsdatenbank 0 jene Datenbank, die mit der Web App erstellt wurde, und 1 ist demnach die Datenbank, die mit Mount-SPContentDatabase hinzugefügt wurde

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

Nachdem Sie diesen Code ausgeführt haben, sollte alles okay sein. Ich habe dies für eine Inhaltsdatenbank mit ein paar Benutzern und einer Kombination aus SharePoint-Gruppen und eindeutigen Berechtigungen getestet. Das Ganze wurde fehlerfrei ausgeführt. Und ja, das ist wirklich ein Pluszeichen zwischen SPWebApplication und SPMigrateuserParameters.

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Converting A Classic Auth Content Database to Claims Auth in SharePoint 2013