アプリ プロファイルでカスタム アプリの使用を選択した場合、移行用の Microsoft 365 ユーザー に任意のユーザーを指定することができますが、アプリにこれらの権限が付与されていることを確認してください。
API 名 |
権限名 |
説明 |
タイプ |
必要となる理由 |
Microsoft Graph |
Domain.Read.All |
Read domains |
アプリケーション |
移行元テナントの初期ドメインを特定し、SharePoint 管理センターに接続します。 |
Sites.Read.All |
Read items in all site collections |
アプリケーション |
SharePoint データを取得して移行します。 | |
SharePoint |
Sites.FullControl.All |
Have full control of all site collections |
アプリケーション |
SharePoint データを取得して移行します。 |
Read and write managed metadata |
アプリケーション |
Managed Metadata Service および 管理されたメタデータ 列を取得して移行します。 *注意: 管理されたナビゲーションで使用されている用語セットを移行するには、この権限が必要です。管理されたナビゲーションで使用されている用語セットを移行する必要がない場合、権限を TermStore.Read.All に置き換えることができます。 | ||
Azure Rights Management Services |
Content.SuperUser |
Read all protected content for this tenant |
アプリケーション |
ファイル / ライブラリ / サイトの秘密度ラベルを管理する場合にのみ必要です。 |
Microsoft Information Protection Sync Service |
UnifiedPolicy.Tenant.Read |
Read all unified policies of the tenant |
アプリケーション |
ファイル / ライブラリ / サイトの秘密度ラベルを管理する場合にのみ必要です。 |
*注意: 以下のコマンドを使用して、マニフェスト を介して必要な API 権限を追加することができます。
"requiredResourceAccess": [
{
"resourceAppId": "00000012-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "7347eb49-7a1a-43c5-8eac-a5cd1d1c7cf0",
"type": "Role"
}
]
},
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "332a536c-c7ef-4017-ab91-336970924f0d",
"type": "Role"
},
{
"id": "dbb9058a-0e50-45d7-ae91-66909b5d4664",
"type": "Role"
}
]
},
{
"resourceAppId": "00000003-0000-0ff1-ce00-000000000000",
"resourceAccess": [
{
"id": "c8e3537c-ec53-43b9-bed3-b2bd3617ae97",
"type": "Role"
},
{
"id": "678536fe-1083-478a-9c59-b99265e6b0d3",
"type": "Role"
}
]
},
{
"resourceAppId": "870c4f2e-85b6-4d43-bdda-6ed9a579b725",
"resourceAccess": [
{
"id": "8b2071cd-015a-4025-8052-1c0dba2d3f64",
"type": "Role"
}
]
}
],
*注意: 上位に一覧表示している権限は、テナント内のすべてのサイト コレクションを移行するために必要です。特定のサイト コレクションのみを移行する場合、異なる権限設定が構成されている別のカスタム アプリの使用に変更してください。詳細については、以下の説明を参照してください。
1. アプリに使用する以下の権限を追加します。
API 名 |
権限名 |
説明 |
タイプ |
必要となる理由 |
Microsoft Graph |
Domain.Read.All |
Read domains |
アプリケーション |
移行元テナントの初期ドメインを特定し、SharePoint 管理センターに接続します。 |
Sites.Selected |
Access selected site collections |
アプリケーション |
指定したサイト コレクションのデータを取得して移行します。 | |
SharePoint |
Sites.Selected |
Access selected site collections |
アプリケーション |
指定したサイト コレクションのデータを取得して移行します。 |
TermStore.ReadWrite.All |
Read and write managed metadata |
アプリケーション |
Managed Metadata Service および 管理されたメタデータ 列を取得して移行します。 *注意: 管理されたナビゲーションで使用されている用語セットを移行する場合に必要です。管理されたナビゲーションで使用されている用語セットを移行する必要がない場合、権限を TermStore.Read.All に置き換えることができます。 | |
Azure Rights Management Services |
Content.SuperUser |
Read all protected content for this tenant |
アプリケーション |
ファイル / ライブラリ / サイトの秘密度ラベルを管理する場合にのみ必要です。 |
Microsoft Information Protection Sync Service |
UnifiedPolicy.Tenant.Read |
Read all unified policies of the tenant |
アプリケーション |
ファイル / ライブラリ / サイトの秘密度ラベルを管理する場合にのみ必要です。 |
以下のコマンドを使用して、マニフェスト を介して必要な API 権限を追加することができます。
"requiredResourceAccess": [
{
"resourceAppId": "870c4f2e-85b6-4d43-bdda-6ed9a579b725",
"resourceAccess": [
{
"id": "8b2071cd-015a-4025-8052-1c0dba2d3f64",
"type": "Role"
}
]
},
{
"resourceAppId": "00000003-0000-0ff1-ce00-000000000000",
"resourceAccess": [
{
"id": "20d37865-089c-4dee-8c41-6967602d4ac8",
"type": "Role"
},
{
"id": "df021288-bdef-4463-88db-98f22de89214",
"type": "Role"
},
{
"id": "c8e3537c-ec53-43b9-bed3-b2bd3617ae97",
"type": "Role"
}
]
},
{
"resourceAppId": "00000012-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "006e763d-a822-41fc-8df5-8d3d7fe20022",
"type": "Role"
},
{
"id": "7f740376-647b-4ad7-9ff7-292af252707a",
"type": "Role"
}
]
},
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "62a82d76-70ea-41e2-9197-370581804d09",
"type": "Role"
},
{
"id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d",
"type": "Role"
},
{
"id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61",
"type": "Role"
}
]
}
],
2. 環境で PnP PowerShell のインストール を実行します。
3. ストレージ場所 アクセスし、RegisterAzureADAppForGrantFullControl.ps1、GrantFullControlForSiteCollection.ps1、SiteCollectionUrls.csv ファイルをネットワークが接続されているマシンのカスタム フォルダーにダウンロードします。
4. カスタム フォルダーで、メモ帳で RegisterAzureADAppForGrantFullControl.ps1 を開いて、必要に応じてパラメーターの値を構成するには、以下の説明を参照してください。その後、ファイルを保存します。
•Tenant – テナントの名前です。例: mytenant.onmicrosoft.com
•AzureEnvironment – 認証用の Azure 環境です。
対応する値: Production、PPE、China、Germany、Custom
•ApplicationName – 作成する Azure AD アプリの名前です (必須ではありません)。既定では、名前は PnP PowerShell For Grant Full Control になります。
5. Windows PowerShell を開き、Windows PowerShell ウィンドウで以下のコマンドを入力します。
."file path"
解凍されたフォルダー内の RegisterAzureADAppForGrantFullControl.ps1 ファイルの完全パスで file path を置き換え、キーボードの Enter キーを押します。
6. 構成に基づいて以下のパラメーターの値を入力して、キーボードの Enter キーを押します。
•Tenant – テナントの名前です。例: mytenant.onmicrosoft.com
•AzureEnvironment – 認証用の Azure 環境です。
その後、Microsoft ログイン ウィンドウが表示されます。実行を続行するには、SharePoint 管理者ロールを持つユーザーを使用してログインする必要があります。
*注意: Azure AD アプリを登録すると、要求されているアクセス許可 ページが表示されます。[同意] をクリックしてアプリを登録します。
以下のテーブルには、アプリの必要な権限が一覧表示されます。
API |
アクセス許可 |
タイプ |
Microsoft Graph |
Sites.FullControl.All (Have full control of all site collections) |
委任済み |
User.Read.All (Read all users’ full profiles) |
委任済み | |
SharePoint/Office 365 SharePoint Online |
AllSites.FullControl (Have full control of all site collections) |
委任済み |
User.Read.All (Read user profiles) |
委任済み |
実行後、Azure AD アプリのクライアント ID が Windows PowerShell ウィンドウに表示されます。クライアント ID は GrantFullControlForSiteCollection.ps1 スクリプトを実行する際に使用されることに注意してください。
スクリプトと同じディレクトリに Register Azure AD App_(TimeStamp).log ファイルが生成されます。このファイルで実行する詳細を表示することができます。
7. カスタム フォルダーで SiteCollectionUrls.csv ファイルを開き、移行するサイト コレクションの URL を以下のように入力します。
8. アプリにサイト コレクションのフル コントロール権限を付与するには、グローバル管理者ロールを持つ同意ユーザーを用意し、そのユーザーをサイト コレクションの サイト コレクションの管理者 に追加します。
9. カスタム フォルダーで、GrantFullControlForSiteCollection.ps1 ファイルをメモ帳で開きます。
10. 必要な情報を使用して、以下のパラメーターを構成します。
•$appId = 'Custom App client ID' – カスタム アプリのクライアント ID を入力します。
•$appName = 'Custom App Display name' – カスタム アプリの表示名を入力します。
•$connection = Connect-PnPOnline -Url 'SharePoint Admin Center URL' – テナントの SharePoint 管理センター URL を入力します。
*注意: カスタム アプリが SharePoint 管理センター URL へのアクセス権を持っていない可能性があります。Fly Server で接続を追加する際にテナント ドメインの確認を回避するには、…\FLY\Manager\Control\bin\TimerService.exe.config ファイルに <add key="CheckInitialDomainError" value="false"/> ノードを追加し、Fly Timer Service を再起動してください。この変更は移行ジョブに影響を与えません。
11. Windows PowerShell を開き、Windows PowerShell ウィンドウで以下のコマンドを入力します。
."file path"
解凍されたフォルダー内の GrantFullControlForSiteCollection.ps1 ファイルの完全パスで file path を置き換え、キーボードの Enter キーを押します。
12. カスタム アプリの証明書キーを入力し、キーボードの Enter を押します。
13. 資格情報の要求 ウィンドウで、ステップ 8 で準備した同意ユーザーとそのパスワードを入力し、[OK] をクリックします。
14. プロセスの完了後、必要に応じて、サイト コレクションの サイト コレクションの管理者 から同意ユーザーを削除することができます。