アプリ開発の調査にかかる
時間を削減したい
内製化支援サービス
アプリを自分たちで
作成できるようになりたい
DX人材育成プログラム
プロに開発を依頼したい
アプリ開発導入支援サービス
SharePoint デザイン拡張サービス
X-SP Design
モダン化から運用管理までサポート
SharePoint 構築支援サービス
はじめに
弊社ではSharePointの構築やコンサルティングを行っていますが、最近よくいただくご相談がこちら。
「共通のデザインで、サイトを〇個作りたいんだけど…」
このようなご要望に対して、すべて手作業で対応していては時間も手間もかかって非効率。そんなときに役立つのが「サイトのテンプレート化」です。
テンプレート化しておけば、レイアウトやWebパーツの構成を何度も再設定せずに、簡単に別サイトに再利用可能です。
この記事では、現時点で利用可能な3つのテンプレート化方法について解説します。
もしアーティサンへ興味を持たれた方は、ぜひ内製化支援サービスやSharePoint構築支援のページを是非ご覧ください。
ステップ1:PnP PowerShellモジュールのインストール
ステップ2:Entra IDに「PnP Management Shell」を追加・設定する
ステップ1:適用元サイトのカスタムスクリプトを許可(SharePoint管理センター)
3-1.適用先サイトの作成(SharePoint管理センター)
テンプレート化方法の比較
現在、SharePoint Onlineで利用可能なテンプレート化方法は以下の3種類あります。
方法名 |
利用ツール |
GUI対応 |
モダンUI対応 |
リストアイテムの展開 |
ページの展開 |
ドキュメントの展開 |
今後の安定性 |
一言コメント |
---|---|---|---|---|---|---|---|---|
サイトテンプレート |
SharePoint Online Management Shell |
✕ |
〇 |
✕ |
✕ |
✕ |
△ |
トップページは含められない |
PnP プロビジョニング |
PnP PowerShell |
✕ |
〇 |
✕ |
△ |
✕ |
〇 |
現在のおすすめ |
旧サイトテンプレート |
ソリューションファイル(.wsp) |
〇 |
△ |
〇 |
〇 |
〇 |
✕ |
GUIで使える貴重な方法だがカスタムスクリプト必要 |
それぞれの方法には特徴があります。
サイトテンプレート(SharePoint Online Management Shell)
組織のテンプレートに表示させることができる唯一の方法です。
PowerShellを使用して設定します。
一見便利そうに見えますが、サイトのページ(トップページやカスタムページ)の構成をテンプレートに含めることができません。
SharePoint のサイト テンプレートとサイト スクリプトの作成を開始する | Microsoft Learn
PnP プロビジョニング
こちらもPowerShellを使用しますが、こちらの方法はサイトのトップページもテンプレートに含められます。
必要なアプリをEntra IDに登録する等の事前準備も必要になりますが、現在最も実用的な方法といえるでしょう。
ただし、以下の点に注意が必要です。
テンプレートにはリストやライブラリ内のアイテム(データ)が含まれません。別途アップロードが必要です。
トップページ以外のサイトのページは、テンプレート展開では作成されない場合があります。
PnP リモート プロビジョニング | Microsoft Learn
旧サイトテンプレート(ソリューションファイル使用)
SharePointの「カスタムスクリプト」機能に依存しているものの、唯一GUI操作のみでテンプレートを保存・展開できる貴重な方法です。
公式ページでは「クラシックUIのみ対応」とされていますが、実際にはモダンUIサイトでも利用可能なケースがあり、特に開発知識の少ないユーザーには魅力的な選択肢です。
SharePoint サイトをテンプレートとして保存、ダウンロード、およびアップロードする | Microsoft Learn
次の章からは、PnPプロビジョニングを使用した方法と旧サイトテンプレートを使用した方法を紹介していきます。
なお「サイトテンプレート」方式については、現時点ではトップページなどを含められないなど制限が多く実運用にはやや不向きなため、本記事では詳細な解説は割愛しています。
PnP プロビジョニング
PnPプロビジョニングは、Microsoft社が提供する「サイトの構成を自動化・再利用」できる仕組みのひとつです。
PowerShellというコマンド操作ツールを使って、テンプレートを作成・適用します。
必要な権限
SharePoint 管理者 または サイトコレクション管理者
Azure AD(Microsoftの認証基盤)でアプリ登録を行う権限
ステップ1:PnP PowerShellモジュールのインストール
管理者権限でPowerShellを起動し、以下のコマンドを実行します。
※一度実行したら次回以降はスキップできます。
Install-Module PnP.PowerShell
※モジュールのインストールに失敗する場合は、以下の点をご確認ください
管理者としてPowerShellを起動しているか?
未署名スクリプトの実行が許可されているか?
信頼されていないリポジトリの警告に「A(すべて続行)」で対応しているか?
PnP PowerShell のインストール | PnP PowerShell
ステップ2:Entra IDに「PnP Management Shell」を追加・設定する
Entra IDへの登録には、PowerShellを使用する方法と、Entra ID管理センター(Azureポータル)から手動で設定する方法の2通りがあります。
手順の詳細は以下のページを参照下さい。
PnP PowerShell で使用する Entra ID アプリケーションを登録する | PnP PowerShell
セキュリティの強化により、PnP PowerShellを使用するには、Entra IDにアプリケーション登録が必要です。
※2024年9月以降、本手順は必須となりました。
ステップ3:テンプレートの作成
3-1. 適用元サイトの準備
あらかじめテンプレートとして使いたい構成のSharePointサイトを用意しておきます。
例:https://example.sharepoint.com/sites/template-site
3-2. テンプレートの作成
PowerShellにて、以下のスクリプトを使用してテンプレートをエクスポートします。
Connect-PnPOnline -Url 【テンプレートとして使いたいSharePointサイトのURL】 -ClientId "登録したアプリのクライアント ID(アプリケーションID)】" -Interactive
Get-PnPSiteTemplate -Out "【テンプレ―トをエクスポートしたいディレクトリ】/【テンプレートファイル名】.xml" -Handlers All
DisConnect-PnPOnline
一行目の「Connect-PnPOnline」で、テンプレートとして使いたいSharePointに接続します。
二行目の「Get-PnPProvisioningTemplate」にて、テンプレートファイルをエクスポートします。
テンプレートの作成が終わったら、三行目の「DisConnect-PnPOnline」でSharePointサイトへの接続を切断しましょう。
テンプレートファイルはxml、またはpnpのどちらかで出力できますが、今回はxmlファイルでの方法を紹介しています。
また、パラメータの設定によって、含められる情報が異なりますので、詳細は以下のページを参照下さい。
Get-PnPSiteTemplate | PnP PowerShell
ステップ4:作成したテンプレートを新サイトに適用
4-1. 適用先サイトの作成
テンプレートを適用するための新しいSharePointサイトを作成します。
以下のスクリプトで適用します。
Connect-PnPOnline -Url 【テンプレートを適用したいSharePointサイトのURL】 -ClientId "登録したアプリのクライアント ID(アプリケーションID)】" -Interactive
Invoke-PnPSiteTemplate -Path "【テンプレ―トが格納されているディレクトリ】/【テンプレートファイル名】.xml"
DisConnect-PnPOnline
一行目の「Connect-PnPOnline」で、テンプレートを適用したいSharePointサイトに接続します。
二行目の「Invoke-PnPSiteTemplate」で、接続したSharePointサイトにテンプレートを適用します。
※サイトの上書きとなるため、対象サイトに既存コンテンツがある場合は事前確認を!
テンプレートの適用が終わった時も、三行目の「DisConnect-PnPOnline」でSharePointサイトへの接続を切断しましょう。
適用できないもの・注意点
実際にPnPプロビジョニングを試したところ、以下の要素はテンプレートに含められませんでした。
ページ内の画像
画像webパーツに使用する画像ファイルは、xmlファイルの定義ファイルには含まれません。
以下のように、画像がないため、テンプレートを適用しても画像が表示されません。
pnp形式でエクスポートするか、別途アップロードしなおす必要があります。
ページの折りたたみセクション
サイトのページ内で使用できる「折りたたみ可能なセクション」は、テンプレートに含まれません。
テンプレートファイルの作成や適用時にエラーは出ませんが「折りたたみ可能なセクション」部分は欠落した状態で適用されます。
旧サイトテンプレート(ソリューションファイル)
次は旧サイトテンプレートについて紹介します。
旧サイトテンプレートとは、SharePointでクラシックUIが主流だった時代から存在する仕組みです。
「サイトをテンプレートとして保存」機能を使ってwspファイル(ソリューションファイル)を生成し、それを新しいサイトアップロードして適用します。
古い方式ではありますが、テンプレート作成から適用までGUI操作で完結できる上に、コンテンツも含められるという点は大きな利点です。
ただし、この方法は「カスタムスクリプト」を必要とし、将来的にMicrosoftによって使用を制限される可能性があるため、長期運用には注意が必要です。
※ Microsoft公式ではクラシックUIのみとありますが、試してみたところモダンUIサイトでも利用はできました。
ただし適用する場合は実際に検証の上、自己責任でお願いいたします!
SharePoint サイトをテンプレートとして保存、ダウンロード、およびアップロードする | Microsoft Learn
必要な権限
SharePoint管理者以上の管理者権限(カスタムスクリプトの設定に必要)
サイトコレクション管理者 権限
ステップ1:適用元サイトのカスタムスクリプトを許可(SharePoint管理センター)
1-1. カスタムスクリプト設定を変更
SharePoint管理センターで[アクティブなサイト]からテンプレート化したいサイトの[設定]を開き、[カスタムスクリプト]の[編集]を選択します。
カスタムスクリプトの設定を[許可済み]に変更して、[保存]ボタンを選択します。
※ カスタムスクリプトの許可は24時間経つと自動で無効化されます。
ステップ2:テンプレート(ソリューションファイル)の作成
2-1. テンプレートとしてサイトを保存
適用元サイトの設定で、[テンプレートとしてサイトを保存]を選択します。
(カスタムスクリプトを有効化することで、サイトの設定内に表示されます。)
※ モダンUIのコミュニケーションサイトでは上記メニューが表示されない場合があります。
その場合は、ブラウザに以下のURLを入力し、直接遷移してみてください。
https://【テンプレート化したいサイトのURL】/_layouts/15/savetmpl.aspx
2-2.ソリューションファイルの作成
[テンプレートとして保存]画面で、テンプレートファイル名を設定します。
サイト内のリストアイテムやファイルなどコンテンツを含めてテンプレート化したい場合は、[コンテンツを含む]にチェックをした上で[OK]ボタンを選択します。
※コンテンツを含める場合、合計ファイルサイズが50MBを超えるとエラーになります。
サイト内のコンテンツを減らした上で再度テンプレートを保存してみてください。
▼合計ファイルサイズが50MBを超えると…
2-3. ソリューションファイルのダウンロード
ソリューションファイルが作成されたら、[ソリューションギャラリー]に遷移します。
テンプレート化完了のメッセージにある[ソリューションギャラリー]のリンクを選択するか、以下のURLを直接入力して遷移します。
https://【テンプレート化したいサイトのURL】/_catalogs/solutions/Forms/AllItems.aspx
[ソリューションギャラリー]内で、作成されたソリューションファイルの名前をクリックすると、端末にソリューションファイルをダウンロードできます。
ステップ3:作成したテンプレートを新サイトに適用
3-1.適用先サイトの作成(SharePoint管理センター)
テンプレートを適用したいサイトを作成します。
この時、サイトの種類を必ず[<テンプレートを後で選択…>]にする必要があります。
まずは、SharePoint管理センターで、サイトの新規作成メニューから[その他のサイトを参照する]を選択します。
※[その他のサイトを参照する]はSharePoint管理センターからサイト作成した時だけ表示されるメニューです。
[その他のテンプレート]を選択します。
もしサイトの再読み込みについて確認のメッセージが出たら、[再読み込み]を選択してください。
[サイトコレクションの選択]ページの[テンプレートの選択]で、[ユーザー設定]の[<テンプレートを後で選択…>]を選択します。
他の項目も入力した上で、[OK]ボタンを選択してください。
※ もし[OK]ボタンを選択してしばらく待っても読み込み等発生しない場合があります。その時は面倒ですが、再度SharePoint管理センターのサイトの新規作成メニューからやり直してください。
ステップ4:適用先サイトのカスタムスクリプトを許可する(SharePoint管理センター)
テンプレートを適用する側のサイトもカスタムスクリプトを許可する必要があります。
(許可しないとソリューションファイルをアップロードできないため)
まずはSharePoint管理センターで、テンプレートを適用したいサイトの[設定]を開き、[カスタムスクリプト]の[編集]を選択します。
カスタムスクリプトの設定を[許可済み]に変更して、[保存]ボタンを選択します。
※ カスタムスクリプトの許可は24時間経つと自動で無効化されます。
ステップ5:作成したテンプレートを新サイトに適用
テンプレートを適用する側のサイトにアクセスし、[ソリューションギャラリー]に遷移します。
サイトの設定>[ソリューション]をクリックするか、以下のURLを直接入力して遷移します。
https://【テンプレート化したいサイトのURL】/_catalogs/solutions/Forms/AllItems.aspx
[ソリューションファイルのアップロード]を選択し、作成したwspファイルを選択します。
次に [アクティブ化]を選択し、ソリューションファイルをアクティブ化します。
アクティブ化することで、この後のステップでテンプレートとして選択可能になります。
サイトのホーム画面に戻り、テンプレートの選択で[ユーザー設定]タブ内に表示されたソリューションファイルを選択し、[OK]ボタンを選択します。
数分程度待つと、SharePointグループのセットアップ画面に遷移します。
基本は[既存のグループの利用]のまま[OK]ボタン選択で大丈夫です。
(別途、新規にSharePointグループを作成したい場合は[新しいグループの作成]を選択してください。)
これでサイトへのテンプレート適用完了です。
適用可能なサイトと注意点
旧サイトテンプレートを使用した方法を試したところ、欠落なく適用され、リストの書式設定(JSON)も含めて移植可能でした。
ただし、モダンUIで新しく追加された Web パーツでは欠落やエラーが発生する場合があるため、適用前に必ず検証を行うことをおすすめします。
さらに、サイトの種類によってはソリューションファイルを適用できないケースがあるため、注意が必要です。
ミュニケーションサイト … 利用可能
チームサイト(M365 と紐づいていない) … 利用可能
チームサイト(M365 と紐づく) … 利用可能
チームサイト(Teams と紐づく) … 利用不可
Teamsと紐づいたチームサイトで作成したソリューションファイルは、テンプレート適用先サイトのソリューションギャラリーにアップロードしても選択肢として表示されず、適用できませんでした。
適用元サイト(ソリューションファイルを作成するサイト)は、Teams と紐づいたチームサイトを避けて作成することを推奨します。
おわりに
いかがでしたでしょうか。
今回紹介した3つのテンプレート化方法には、それぞれのメリット・デメリットがあります。
機能制限があるものの公式の方法を使いたい場合「サイトテンプレート」
モダンUI対応の「PnP プロビジョニング」
画面操作(GUI)でテンプレート化できる「旧サイトテンプレート」
自社のニーズに最適なテンプレート方式を選ぶには、専門知識や実績に基づいた判断が不可欠です。弊社では、サイト設計からテンプレート作成、内製化の支援まで幅広く対応しています。
もしアーティサンへ興味を持たれた方は、ぜひ内製化支援サービスやSharePoint構築支援のページをご覧ください。
【こちらも合わせて読みたい】
小鷹 枝里子
🖊小鷹枝里子さんのブログ一覧はこちら2016年12月、メーカーの事務兼CADオペレーターから未経験のIT業界に飛び込もうとアーティサンに入社。
今は主に Power Platform(Power Automate、Power Apps)とSharePointの技術支援や開発を担当しております。
山形県出身、神奈川県在住。何となく海に近い所に住むのが好きです。インドア派なので滅多に海行かないんですけどね。
趣味はゲームで、最近はのんびりスマホゲームや某狩りゲームをやってます。
推しのうまい棒は納豆味。
こんにちは。アーティサンの小鷹です。