サイト テンプレートとサイト スクリプトの作成を開始する

再利用可能なリスト、テーマ、レイアウト、カスタム アクションを提供するサイト テンプレートを作成できます。これにより、ユーザーは必要な機能を備えた新しい SharePoint サイトを迅速に作成することができます。

この記事では、顧客の注文を追跡するための SharePoint リストを追加する、シンプルなサイト テンプレートの作成方法について説明します。 サイト テンプレートを使用して、カスタム リストを含む新しい SharePoint サイトを作成します。 SharePoint PowerShell コマンドレットを使用して、サイト スクリプトとサイト テンプレートを作成する方法を説明します。 また、同じアクションを実行するのに REST API を使用することもできます。 参考のために、各ステップに対応する REST 呼び出しを明記しています。

JSON でサイト スクリプトを作成する

サイト スクリプトは、新しいサイトを作成する際に SharePoint で実行されるアクションのコレクションです。 アクションは、新しいリストの作成やテーマの適用など、新しいサイトに適用する変更について記述するものです。 アクションは、適用するすべてのアクションの一覧となる JSON スクリプトで指定されます。 スクリプトを実行すると、SharePoint はリストされた順に各アクションを完了します。

各アクションは、JSON スクリプト内の「動詞」の値で指定されます。 アクションに、サブアクションが付くこともあります。サブアクションも「動詞」の値です。 以下の JSON では、スクリプトで Customer Tracking という名前の新しいリストを作成するよう指定し、さらにサブアクションで説明を指定し、リストを定義する複数のフィールドを追加します。

  1. Download and install the SharePoint Online Management Shell. If you already have a previous version of the shell installed, uninstall it first and then install the latest version.

  2. SharePoint Online PowerShell に接続する」の説明に従って SharePoint テナントに接続します。

  3. 次の PowerShell コードで示すように、新しいスクリプトを記述する JSON を作成し、変数に割り当てます。 最新の JSON スキーマ ファイルは、https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json で確認および参照できます。

     $site_script = '
     {
         "$schema": "https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json",
             "actions": [
                 {
                     "verb": "createSPList",
                     "listName": "Customer Tracking",
                     "templateType": 100,
                     "subactions": [
                         {
                             "verb": "setDescription",
                             "description": "List of Customers and Orders"
                         },
                         {
                             "verb": "addSPField",
                             "fieldType": "Text",
                             "displayName": "Customer Name",
                             "isRequired": false,
                             "addToDefaultView": true
                         },
                         {
                             "verb": "addSPField",
                             "fieldType": "Number",
                             "displayName": "Requisition Total",
                             "addToDefaultView": true,
                             "isRequired": true
                         },
                         {
                             "verb": "addSPField",
                             "fieldType": "User",
                             "displayName": "Contact",
                             "addToDefaultView": true,
                             "isRequired": true
                         },
                         {
                             "verb": "addSPField",
                             "fieldType": "Note",
                             "displayName": "Meeting Notes",
                             "isRequired": false
                         }
                     ]
                 }
             ]
     }
     '
    

上記のスクリプトでは、Customer Tracking という名前の新しい SharePoint のリストを作成します。 これにより説明が設定され、リストに 4 つのフィールドが追加されます。 これらはそれぞれアクションとみなされます。 Invoke-SPOSiteDesign コマンドを使用してプログラム的にスクリプトを適用する場合は、サイト スクリプトで累積できるアクションは 30 までです (サイト テンプレートで呼び出される可能性のある 1 つまたは複数のスクリプト全体)。 UI または Add-SPOSiteDesignTask コマンドを使用してスクリプトを適用する場合は、累積できるアクションは 300 (または 100,000 文字) までです。

サイト スクリプトの追加

サイト スクリプトは、それぞれ SharePoint に登録して利用できるようにする必要があります。 Add-SPOSiteScript コマンドレットを使って新しいサイト スクリプトを追加します。 次の例では、先に説明した JSON スクリプトを追加する方法を説明します。

C:\> Add-SPOSiteScript
 -Title "Create customer tracking list"
 -Content $site_script
 -Description "Creates list for tracking customer contact information"

コマンドレットを実行すると、追加したスクリプトのサイト スクリプト ID をリストする結果が得られます。 この ID は後でサイト テンプレートを作成するときに必要になりますので、どこかに記録しておいてください。

新しいサイト スクリプトを追加する REST API は CreateSiteScript です。

サイト テンプレートを作成する

次に、サイト テンプレートを作成する必要があります。 サイト テンプレートは、ユーザーがいずれかのテンプレートから新しいサイトを作成すると、ドロップダウン リストに表示されます。 既に追加されているサイト スクリプトの 1 つまたは複数を実行できます。

  • 新しいサイト テンプレートを追加するには、次のコマンドレットを実行します。 <ID> を、サイト スクリプトを追加したときのサイト スクリプト ID と置き換えます。
C:\> Add-SPOSiteDesign
 -Title "Contoso customer tracking"
 -WebTemplate "64"
 -SiteScripts "<ID>"
 -Description "Tracks key customer data in a list"

上記のコマンドレットは、"Contoso customer tracking" という名前の新しいサイト テンプレートを作成します。

パラメーター サイト テンプレートの種類
WebTemplate 64 チーム サイト テンプレート
WebTemplate 1 チーム サイト (グループの作成は無効)
WebTemplate 68 コミュニケーション サイトのテンプレート
WebTemplate 69 チャネル サイト テンプレート

JSON 応答は、新しいサイト テンプレートの ID を表示します。 サイト テンプレートを更新または変更するために、後続のコマンドレットでこの ID を使用します。

新しいサイト テンプレートを追加する REST API は CreateSiteDesign です

新しいサイト テンプレートの使用

サイト スクリプトとサイト テンプレートを追加すると、そのテンプレートは、セルフサービスのサイト作成エクスペリエンスから新しいサイトの作成に使用することも、PowerShell の Invoke-SPOSiteDesign コマンドを使用して既存のサイトに適用することもできます。 ハブ サイトを使用している場合は、ハブにサイト テンプレートを関連付けることで、すべての参加サイトにテンプレートを適用できます。

サイトの作成

  1. 開発に使っている SharePoint のサイトのホーム ページに移動します。
  2. [サイトの作成] を選択します。
  3. Choose the type of site you need to use. SharePoint will create a team site using the Microsoft Team collaboration template or a communication site using the Microsoft Topic template unless another custom site template is set as default.
  4. [次へ]を選択します。
  5. [サイト名]に、新しいサイトの名前「顧客の注文履歴管理」を入力します。
  6. [完了] を選択します。
  7. 次に、[設定] に移動してから、[サイト テンプレートを適用する] を選択します。
  8. 作成したサイト テンプレートを選択します。
  9. 適用されると、新しいテンプレートが [組織から] というタイトルのテンプレート ビューアーのタブの下に表示されます。
  10. 新しいテンプレートが適用されると、ページにカスタム リストが表示されます。

既存のサイトへの適用

You can also apply a published site template to existing sites. On the home page of the site, site owners can navigate to Settings and then Apply a site template to browse and apply templates provided by your organization and Microsoft.

Invoke-SPOSiteDesign コマンドレットを使用して、テンプレートを既存のサイト コレクションに一括で適用することができます。

公開済みサイト テンプレート適用先:

  1. グループ接続のチーム サイト
  2. Microsoft 365 グループに接続されていないチーム サイト
  3. コミュニケーション サイト
  4. チャネル サイト
  5. 従来のチーム サイト
  6. 従来の公開済みサイト

既存サイト コレクションにサイト テンプレートを適用できる REST API は、ApplySiteDesign です。

ハブ サイトへの関連付け

公開済みサイト テンプレートを新しいハブ サイトまたは既存のハブ サイトに適用します。 そうすると、関連付けられているすべてのサイトではハブ サイトのテンプレートとテーマが継承されます。 ハブのホーム ページまで移動して、[設定][サイト テンプレートを適用する] の順に移動します。 ハブ サイトでサイトの関連付けを有効にする 方法の詳細情報を参照します。

Set-SPOHubSite コマンドレットを使用することもできます。 SharePoint ハブ サイト用の PowerShell コマンドレット に関する記事を確認します。

注意

チャネル サイト はハブ サイトへの参加が自動的にブロックされます。

関連項目