結論から言うと、SharePoint Onlineのモダンサイトを、権限・履歴・フロー・アプリまで含めて一操作で完全クローンする標準機能はありません。失敗しない方法は、複製対象を「サイト構成」「ページ」「リスト構造」「リストデータ」「文書」「バージョン履歴」「権限」「外部連携」に分け、目的に合う方法を組み合わせることです。元サイトを残したまま検証先へ作り、差分表で合格したあとに切り替えます。
この記事では、SharePoint Onlineのモダンサイトを対象に、4つの現実的な方法を整理します。サイトテンプレート/サイトスクリプト、標準のCopy to、既存リストからの作成、PnP PowerShellです。どの方法も「全部入りのバックアップ復元」ではありません。何が移り、何が移らないかを先に決めることが、作業時間より重要です。
最初に見る判断表:何を複製したいか
| 複製したいもの | 第一候補 | そのまま移るか | 追加確認 |
|---|---|---|---|
| テーマ、ナビ、列、ライブラリなどの構成 | サイトテンプレート/サイトスクリプト | 対応アクションの範囲 | 未対応Webパーツ、外部連携 |
| 文書とフォルダー | Copy to | コピー可 | 履歴は最新バージョンのみ |
| 文書の全バージョン履歴 | 要件対応の移行方式を別選定 | Copy toでは不可 | 監査、保持、版数 |
| リストの列、ビュー、書式 | 既存リストから作成 | 構造をコピー | ルールの制限 |
| リスト項目と添付 | 別のデータ移行工程 | 構造作成だけでは不可 | 参照列、ユーザー列、ID |
| ページ、コンテンツタイプ、詳細構成 | PnPプロビジョニング | 選択したハンドラーの範囲 | 依存関係、コミュニティサポート |
| 権限、共有リンク、Microsoft 365グループ | 個別設計と再設定 | 完全自動を前提にしない | 過剰共有、外部ユーザー |
| Power Automate、Power Apps、Teams連携 | 各サービス側で再接続 | サイトコピーだけでは不可 | 接続、所有者、環境、URL |
「中身ごと」という言葉を、ファイルだけと考える人もいれば、権限や履歴まで含むと考える人もいます。作業開始前にこの差を埋めないと、コピー完了後に「履歴がない」「フローが旧サイトへ書き込む」「外部ユーザーへ見えてしまう」といった重大な問題になります。
SharePoint Onlineに完全クローンがない理由
モダンなチームサイトは、SharePointだけで完結しない場合があります。Microsoft 365グループ、Teams、Planner、メール、Power Platform、ハブ、保持ポリシー、機密ラベルなど、別サービスと結び付いています。サイトのURLやファイルを複製しても、グループID、接続、所有者、共有リンク、監査情報まで新しい対象へ自動的に置き換わるわけではありません。
また、同じ「テンプレート」でも意味が異なります。現行のサイトテンプレート/サイトスクリプトは構成を適用する仕組みです。クラシックサイトの「サイトをテンプレートとして保存」で作るWSPは、SharePoint Onlineのモダンサイトでサポートされません。ページテンプレートはページ作成のひな型であり、別サイト全体をコピーする機能でもありません。
作業前に必ず作る複製台帳
- 所有者と目的を決める:検証環境、部署再編、プロジェクト雛形、URL変更、テナント移行のどれかを明記します。
- 対象を棚卸しする:サイトページ、ニュース、リスト、ライブラリ、列、コンテンツタイプ、ファイル、版数、容量、権限、共有リンク、外部ユーザー、フロー、アプリ、ハブ、検索、保持設定を一覧にします。
- コピー禁止データを分ける:個人情報、契約、機密、訴訟ホールド、保持期限、外部共有制限を情報管理担当者と確認します。
- 最小権限を決める:作業者には元サイトの読取りと対象サイトの必要な編集権限を割り当てます。日常作業へGlobal Administratorを付けません。
- 検証先を閉じる:本番URLではなく検証専用サイトを作り、所有者と作業者だけが閲覧できる状態にします。
- 更新の締切を決める:元サイトを使い続けるなら、初回コピー後に生じる差分をいつ、誰が、どの方法で移すかを決めます。
- 戻し方を決める:切り替えに失敗したとき、元サイトの書込みを再開し、案内リンクを戻し、切り替え後に作られたデータをどう扱うかを文書化します。
SharePointはクラウドサービスなので、手元へフォルダーをコピーしただけではサイトのバックアップになりません。元サイトを削除せず、切り替え承認までは比較できる基準点として保持します。保持・監査要件があるサイトでは、削除や権限変更も担当者の承認対象です。
方法1:サイトテンプレート/サイトスクリプトで構成を再現する
複数のプロジェクトサイトへ同じテーマ、ナビゲーション、列、コンテンツタイプ、リスト、ライブラリを配るなら、SharePoint Onlineのサイトテンプレートとサイトスクリプトが第一候補です。新規サイトだけでなく既存モダンサイトへも適用でき、同じスクリプトを再実行して不足構成を追加する非破壊型の動作が基本です。
| 向いている用途 | 向いていない用途 |
|---|---|
| 部門・案件サイトの標準化 | 文書やリスト項目の完全バックアップ |
| 列、リスト、テーマ、ロゴ、ナビの配布 | 全バージョン履歴の複製 |
| 新規サイト作成時の自動設定 | Teams、Planner、Power Appsの完全コピー |
| 管理されたJSONアクションの再適用 | 任意のカスタム機能を無条件に再現 |
- 複製元のうち、標準化したい設定だけを台帳から選びます。
- SharePoint管理者または開発担当者が、公式スキーマでサイトスクリプトを作成します。既存サイトから抽出した結果も、不要な権限やリンクが含まれないかレビューします。
- 作成したサイトテンプレートを検証先へ適用します。
- リスト名、列の型、必須設定、ビュー、ナビ、テーマ、地域設定を台帳と照合します。
- データ、ファイル、権限、共有リンク、フローは別工程として残っていることを確認します。
サイトスクリプトは同期適用と非同期適用でアクション上限が異なり、テナント内のテンプレート数にも上限があります。巨大な現行サイトをそのまま1本のスクリプトへ変換するより、共通構成を小さく管理し、データ移行と分離した方が変更に強くなります。
方法2:Copy toで文書とフォルダーをコピーする
文書ライブラリのファイルが中心なら、標準のCopy toが最も分かりやすい方法です。ただし、コピーされる版は最新バージョンだけです。コピー先が異なる場合は、移行先にも対応するプロパティだけが保持され、対応列がなければ列値は失われます。さらに、ファイルに関連付いた管理メタデータ値は保持されません。Copy toはファイル/フォルダーのコピーであり、列値、権限継承、固有権限、共有リンクまでサイト単位で複製する機能ではありません。
- 元ライブラリで対象ファイルまたはフォルダーを選びます。
- 実行前に、対象件数、最新の版番号、重要な列名と列型、管理メタデータ値、権限継承の状態、固有権限、共有リンクを台帳へ記録します。
- 上部コマンドバーの
Copy toを選び、検証先サイト、対象ライブラリ、フォルダーを確認します。見えない場合は省略メニューを確認します。 - コピーを実行し、完了通知だけで終えず、件数、容量、階層、ファイル名、更新日時、最新バージョンが一致するか照合します。
- 列ごとに移行先の対応プロパティと値を照合します。欠落した列値や管理メタデータ値は、移行先の列・用語セットとの対応を確認してから再設定します。
- ライブラリ、フォルダー、ファイルごとに権限継承と固有権限を別々に確認し、承認済みの最小権限で必要分だけ再設定します。
- 共有リンクは権限とは別に、リンク種別、対象者、期限、外部共有可否を検証します。必要なリンクは移行先で作り直し、元リンクが継続すると決め付けません。
履歴を引き継ぐMove toは元データを移動する操作なので、複製目的で取り違えないでください。コピー先候補に別サイトが出ない場合も、外部共有やカスタムスクリプト設定を無関係に緩めず、対象サイトへのアクセス権と組織のコピー方針を管理者へ確認します。
方法3:既存リストから構造を複製する
Microsoft Lists/SharePointの「既存のリストから」は、列、ビュー、書式などを使い回すのに便利です。ただし、元リストの項目データはコピーされません。自動化ルールもすべてが複製されるわけではなく、公式資料では新しいリストへ含まれるルール数に制限が示されています。
- 検証先サイトで「新規」から「リスト」を選びます。
- 「既存のリストから」を選び、元サイトと元リストを指定します。
- 新しい名前と説明を入力し、必要ならサイトナビゲーションへの表示を選びます。
- 作成後に、列名、内部型、必須、選択肢、既定値、ビュー、並び順、条件付き書式を照合します。
- 元項目が入っていないことを正常動作として確認します。空だから失敗と判断して再作成しないでください。
- 項目データ、添付、参照列、ユーザー列、ルール、Power Automateを別の移行計画で扱います。
データ移行では、表示名が同じでも参照先リストID、ユーザーID、選択肢、管理メタデータが異なる場合があります。CSVへ出して戻すだけでは添付や履歴、作成者、更新者を保持できないことがあります。必要な情報を「列に見えるか」ではなく、移行後の業務要件で定義してください。
方法4:PnP PowerShellで高度な構成を再現する
PnP PowerShellは、サイトからプロビジョニングテンプレートを生成し、別サイトへ適用できます。ページ、リスト、フィールド、コンテンツタイプ、ナビゲーションなどをハンドラー単位で扱える一方、取得対象と依存関係を理解する必要があります。PnPはMicrosoft 365 Patterns and Practicesコミュニティが保守するオープンソースで、Microsoftの通常サポート窓口による製品サポート対象ではありません。
2024年9月9日以降、PnP PowerShellでは自組織が登録したEntra IDアプリのClient IDが必須です。対話型の委任認証では、読取りの最低出発点をSharePoint AllSites.Readとし、書込みは実行するcmdletとhandlerが要求する最小のAllSites.Write/AllSites.Manage相当までに絞ります。さらに、サインインするユーザー自身にも移行元サイトの読取り権限と、移行先サイトで実行内容に必要な権限が必要です。詳細はPnP PowerShellの権限判定ガイドで確認し、日常の取得・適用作業にGlobal Administratorを要求しません。
無人実行のアプリ専用認証は、この対話型例へ混ぜません。別の変更手順としてSharePointのアプリケーション権限Sites.Selectedから始め、対象となる移行元・移行先サイトへ必要な権限を個別付与します。登録、管理者同意、サイト付与は承認された管理者が管理しますが、日常実行者へGlobal Administratorを恒久付与しません。
- PnP PowerShellの版、専用アプリ登録、Client ID、委任アクセス許可、サインインユーザーのサイト権限、作業者、検証先を記録します。
- PowerShellでサイトURLとClient IDを対話入力します。資格情報やトークンはスクリプトへ保存しません。
$SourceSite = Read-Host "複製元サイトURL"
$TargetSite = Read-Host "検証先サイトURL"
$ClientId = Read-Host "承認済みアプリのClient ID"
- 元サイトへMFA対応の対話認証で接続し、全ページを対象にするプロビジョニングテンプレートを取得します。
Connect-PnPOnline -Url $SourceSite -Interactive -ClientId $ClientId
Get-PnPSiteTemplate -Out ".\site-template.pnp" -IncludeAllPages
- 全ページが不要なら
-IncludeAllPagesを外し、-Handlersなどで取得対象を明示して、ページ移行の説明と検証項目もその対象範囲へ狭めます。 -Handlersは依存関係を確認して必要なものだけを選びます。-IncludeSiteGroupsを使う場合も、グループ情報の機密性、メンバーシップ、適用先の権限設計を事前確認します。オプションを追加するだけで完全クローンにはなりません。- 生成された
site-template.pnpを変更管理下に置き、含まれるページ、ハンドラー、参照先、秘密情報、不要な権限をレビューします。 - 空の検証先へ接続し、テンプレートを適用します。本番の既存サイトへ初回から適用しません。
Connect-PnPOnline -Url $TargetSite -Interactive -ClientId $ClientId
Invoke-PnPSiteTemplate -Path ".\site-template.pnp"
- 実行ログとエラーを保存し、Site Pagesの件数、ページ名、公開状態、Webパーツ、画像、リンク、リスト、ナビ、コンテンツタイプを台帳と照合します。
- 権限継承、固有権限、サイトグループ、共有リンクは別項目として確認します。不足を見つけても全ハンドラーで再適用せず、依存関係を確認して対象を限定します。
Get-PnPSiteTemplateのページ、ファイル、用語、権限関連オプションは取得範囲を広げますが、Teams、Microsoft 365グループ、外部サービス、保持、接続、カスタムソリューションを含む完全クローンを保証しません。必要な資産だけを扱い、適用先の既存構成を上書きしないことが重要です。
SPMT、WSP、OneDrive同期を使う前の注意
| 方式 | 公式の主用途 | SharePoint Online内クローンへの評価 |
|---|---|---|
| SPMT | オンプレミスSharePoint Server/ファイル共有からMicrosoft 365 | 同一クラウド内の完全コピー用ではない |
| WSPのサイト保存 | クラシックサイトのテンプレート | モダンSharePoint Onlineでは非対応 |
| OneDrive同期後のPCコピー | ファイル同期 | サイト構成、権限、履歴、リストを複製しない |
| ブラウザーのCopy to | ファイル/フォルダーのコピー | 最新版中心。履歴要件に注意 |
同期クライアントを使った大量ドラッグ&ドロップは、ファイルだけなら動くことがありますが、競合、禁止文字、パス、同期保留、メタデータ欠落の確認が難しくなります。標準Copy toで足りる規模ならブラウザー操作を優先し、大規模移行は評価・レポート・差分移行を備えた承認済み方式を選びます。
複製後の検証チェック
| 領域 | 確認内容 | 既知の非保持・失敗例 |
|---|---|---|
| サイト基本 | URL、タイトル、言語、タイムゾーン、ハブ | 旧URLのまま、時刻ずれ |
| PnPページ | 対象ページ数、公開状態、Webパーツ、画像、リンク | -IncludeAllPages不足、元サイト参照、依存handler不足 |
| リスト | 列、ビュー、書式、件数、添付 | 空、参照切れ、型違い |
| Copy toの版 | 元の最新版と移行先の版番号・内容 | バージョン履歴は保持されず最新バージョンだけ |
| Copy toの列値 | 移行先にも対応するプロパティと各列値 | 異なるコピー先では対応プロパティだけ。欠落値は再設定 |
| 管理メタデータ | 用語セット対応とファイルごとの値 | 値は保持されないため検証後に再設定 |
| 権限 | 継承、所有者、メンバー、閲覧者、固有権限 | 過剰公開、継承差、作業者だけ残る |
| 共有リンク | 対象者、リンク種別、期限、外部共有 | 元リンクを引き継ぐと想定せず必要分を再作成 |
| 連携 | Flow、Apps、Teams、フォーム | 旧サイトへ書込み |
| コンプライアンス | 保持、機密ラベル、DLP、監査 | ラベル不一致、削除不能 |
権限はサイト、リスト、フォルダー、ファイルごとに継承または固有スコープを持つため、コピー完了と権限受入れを同じ判定にしません。Microsoftの権限スコープ管理も参照し、サイト所有者、一般メンバー、閲覧者の各権限で許可と拒否を確認します。共有リンクは権限表と分けて検証し、必要なら移行先で再作成します。
失敗したときの分岐
Copy toの候補に複製先サイトが出ない
複製先へのアクセス権、最近使用したサイト、組織のサイト間コピー設定、モダン表示を確認します。Global Administratorを付ける、外部共有を広げる、カスタムスクリプトを無条件に許可する、といった変更は行いません。管理者へ元サイト、先サイト、対象ライブラリ、必要な操作を伝えます。
ファイル数が合わない、重複した
全体を再コピーする前に、失敗一覧、名前競合、パス、アクセス拒否、チェックアウト、保持状態を確認します。コピー日時と対象範囲を記録し、不足分だけを再実行します。同名ファイルを上書きするか別名にするかは、内容と版数を比較して所有者が決めます。
PnPでAccess deniedまたはアプリ登録エラーになる
URL、Client ID、サインインしたアカウント、アプリのテナント、委任/アプリ権限、対象サイトの権限を確認します。失敗のたびに権限を増やさず、必要なコマンドが要求する最小範囲を特定します。MFAを避けるためにユーザー名・パスワードを保存する方法へ切り替えません。
ページはあるがWebパーツが壊れる
Webパーツが参照するリストID、ファイルURL、画像、アプリカタログのソリューション、外部サービス、アクセス権を確認します。ページHTMLを一括置換する前に、参照先ごとの対応表を作ります。カスタムWebパーツは複製先テナントやサイトで展開・承認されている必要があります。
Power Automateが元サイトへ書き続ける
フローを停止または切り替える時間帯を決め、接続参照、サイトURL、リストID、所有者、サービスアカウント、環境変数を確認します。コピー先が正しいことをテストデータで検証し、元サイトへ誤って作られた項目を勝手に削除せず、差分台帳へ記録します。
中止とロールバック
- 不整合を見つけたら追加コピーと権限付与を止め、発生日時、方法、対象、エラーを記録します。
- 元サイトは削除・移動せず、切り替え前の基準点として保持します。
- 検証先が外部や一般ユーザーへ見えている場合は、データ削除を急ぐ前にアクセスを承認済み作業者へ制限します。保持ポリシーを回避しません。
- 検証専用サイトを廃棄する場合は、サイト所有者、情報管理、保持・訴訟ホールドの確認を取り、削除承認を記録します。
- 本番切り替え後に戻す場合は、案内リンクを元サイトへ戻し、元サイトの書込みを再開し、切り替え後に新サイトへ入った差分データを保全します。
- 原因を解消したら、新しい検証先または初期化を承認された対象で再試行します。失敗した状態へ継ぎ足し続けません。
「削除して作り直す」は、保持設定、監査、外部共有、URL再利用、Microsoft 365グループに影響します。サイト削除をロールバックの第一手段にせず、元サイト維持と検証先隔離を基本にします。
よくある質問
サイト名だけ変えたコピーをすぐ作れますか?
構成が標準化され、データが不要ならサイトテンプレートで短時間に作れます。既存の文書、リスト項目、権限、フローまで必要なら別工程です。「名前だけ」と「中身も同じ」を分けて依頼してください。
Copy toとMove toのどちらを使いますか?
元を残す複製ならCopy toです。Move toは元の場所から移動し、公式資料では文書履歴も移動先へ引き継ぎます。複製作業でMove toを選ぶと元サイトからファイルが消えるため、目的を再確認します。
ページテンプレートを別サイトで使えますか?
SharePointのページテンプレートは基本的に保存したサイト内で使う仕組みで、サイト全体の複製ではありません。別サイトへページを再現する場合は、サイトテンプレートやPnPを含め、Webパーツと参照先を検証します。
PnPならファイルも権限も全部取れば完全になりますか?
完全とは言えません。ハンドラー間の依存、外部サービス、TeamsやMicrosoft 365グループ、保持、接続、カスタムソリューションは別の確認が必要です。必要な要素だけをテストサイトへ適用し、差分を明示する使い方が安全です。
SPMTは無料なので使えませんか?
SPMTは公式に、オンプレミスのSharePoint Serverやファイル共有からMicrosoft 365へ移行するためのツールです。SharePoint Onlineサイト同士を丸ごと複製する用途とは異なります。出発点と到着点が公式サポート範囲に合うか確認してください。
複製後すぐ元サイトを削除してよいですか?
削除しません。利用者テスト、権限、件数、版数、フロー、外部共有、保持、検索、バックアップ、差分移行が合格し、責任者が切り替えと保持期間を承認するまで元サイトを残します。
公式資料
- Microsoft Learn:SharePoint site template and site script overview
- Microsoft Support:Move or copy files in SharePoint
- Microsoft Support:Create a new list based on another list
- Microsoft Learn:Overview of the SharePoint Migration Tool
- PnP PowerShell:Get-PnPSiteTemplate
- PnP PowerShell:Invoke-PnPSiteTemplate
- PnP PowerShell:Authentication
- PnP PowerShell:How to determine which permissions you need
- Microsoft Learn:Manage permission scopes in SharePoint
- Microsoft 365 PnP:Support model
まとめ
SharePointサイト複製で最も重要なのは、完全クローンを探すことではなく、「何を同じにするか」と「同じにならないもの」を合意することです。共通構成はサイトテンプレート/サイトスクリプト、文書はCopy to、リスト構造は既存リストから作成、高度なページや構成は検証済みPnPという順に選びます。Copy toでは文書履歴が最新だけ、既存リストからの作成ではデータが入らない、SPMTはクラウド内コピー用ではない、PnPはコミュニティサポートという境界を守ってください。元サイトを残し、閉じた検証先で台帳照合し、権限・連携・保持まで合格してから切り替えることが、安全でやり直せる手順です。

コメント