症状
Web パーツを移行しようとすると、ShareGate Migrate は次のメッセージを表示します。
Unable to create or update WebPart. In Microsoft 365, this is mainly caused by the farm setting "Custom Script" being deactivated.
目次
エラーコード
WP-027-076
DA-165-076
詳細
Microsoft 365 には、管理者がサイトでカスタムスクリプトを有効にするか無効にするかを選択できるCustom Scriptという設定があります。
Web パーツはカスタムスクリプトとして機能するため、カスタムスクリプトが無効になっている場合、ShareGate Migrate は Web パーツを移行できません。
注: 次の場合、カスタムスクリプト機能は既定で無効になっています。
個人サイト
セルフサービスで作成されたサイト
テナントのルートサイトコレクション
解決策
クラシックサイトへの移行
設定でカスタムスクリプトを有効にしてから、移行を再試行する必要があります。
カスタムスクリプトを有効にするには:
Microsoft 365 にサインインします。
アプリランチャーのアイコンをクリックします。
Admin をクリックします。
Settings を選択します。
Custom Scriptの下で、次を選択します。
個人サイトでカスタムスクリプトの実行をユーザーに許可する。
セルフサービスで作成されたサイトでカスタムスクリプトの実行をユーザーに許可する。
OK をクリックします。
この設定の変更が反映されるまでに24時間かかります。
カスタムスクリプトの詳細については、こちらをクリックしてください。
モダンサイトへの移行
SharePoint 管理者またはグローバル管理者の権限がない場合、移行中にモダンサイトでCustom Script機能を自動的に有効化することはできません。そのため、ShareGate Migrate はフォーム、Web パーツ、ASPX ページを移行できません。
カスタムスクリプトの詳細については、Microsoft の記事「Allow or prevent custom script」を参照してください。
注: モダンサイトを SharePoint で作成すると、テナントレベルでCustom Scriptを有効にしている場合でも、そのサイトでは無効になります。
SharePoint 管理者またはグローバル管理者権限を使用する
SharePoint 管理者またはグローバル管理者の権限を使用している場合、アプリは移行中にカスタムスクリプトを自動的に有効化できます。
サイトコレクション管理者の権限のみを持っている場合は、以下の手順で SharePoint 管理者またはグローバル管理者にサイトコレクションでカスタムスクリプトを手動で有効化してもらうことができます。
Microsoft 365 でカスタムスクリプトを手動で有効化する
PowerShell を使用して Microsoft 365 のサイトコレクションでカスタムスクリプトを有効化するには、次の手順に従います。
SharePoint Online Management Shellをダウンロードします。
SharePoint Online Management Shell のプロンプトを開きます。
次の2つのコマンドを実行します。
Connect-SPOService -Url https://YourDomain-admin.sharepoint.com
Set-SPOSite -Identity https://YourDomain.sharepoint.com/sites/YourSite -DenyAddAndCustomizePages 0
移行を再度実行すると、正常に動作するはずです。
注: 移行後は Custom Script を再度拒否設定に戻すことをお勧めします。そのためには、スクリプトを再度実行し、今回は -DenyAddAndCustomizePages の値を「1」に変更します。
SharePoint 2019 でカスタムスクリプトを手動で有効化する
PowerShell を使用して SharePoint 2019 のサイトコレクションでカスタムスクリプトを有効化するには、次の手順に従います。
Windows PowerShell または Windows PowerShell ISE ウィンドウを開きます。
サイトコレクションで次のスクリプトを実行します。
$site = Get-SPSite -Identity "http://yourfarm/sites/yoursite"
$site.DenyPermissionsMask = [Microsoft.SharePoint.SPBasePermissions]::EmptyMask\
移行を再度実行すると、正常に動作するはずです。
この記事はAIによって翻訳されています。ご不明な点がある場合は、英語の原文をご確認ください。
