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 が提供されます (これについては、今後の投稿で説明します)。この名前からわかるように、このコマンドレットの対象は Web アプリケーションです。当然ながら、コンテンツ データベースを接続して新しい SharePoint 2013 ファームを作成する際には、Windows クラシック認証をまだ使用しているデータベースを移行するための「より軽量な」手法が必要になると思われます。ここで説明するシナリオでは、Windows クレーム Web アプリケーションが SharePoint 2013 で既に稼働していること、および SharePoint 2010 コンテンツ データベースを Mount-SPContentDatabase コマンドレットを使用して既に接続していることを前提とします。つまり、SPWebApplication を作成したときから 1 つのコンテンツ データベースがあり、2 つ目として Windows クラシック モードのものを追加した場合を想定して、その 2 つ目のコンテンツ データベースだけを Windows クレームの使用に変換する方法を説明します。注意 - 非常に重要 - arguments パラメーターには " $arguments" を使用します。私は PowerShell にそれほど詳しくないのですが、"$args" を使っていました。頭と足を机に何度もぶつけて、やっとこれが間違っていることに気付きました。$arguments を使って呼び出したら動いたのです。どこでどうしてこうなったのかわかりませんが間違えていました。

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

#上記のシナリオのとおり、コンテンツ DB 0 は Web アプリと一緒に作成された DB で、DB 1 が Mount-SPContentDatabase で追加された DB です。

$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」をご覧ください。