SharePoint サイト デザインとサイト スクリプトの概要SharePoint site design and site script overview

注意

サイト デザインとサイト スクリプトは、現在、SharePoint Online でのみサポートされています。Site designs and site scripts are currently only supported by SharePoint Online.

サイト デザインとサイト スクリプトを使用し、独自のカスタム構成を使用して新規または既存のモダン SharePoint サイトのプロビジョニングを自動化します。Use site designs and site scripts to automate provisioning new or existing modern SharePoint sites that use your own custom configurations.

組織内の人員が新しい SharePoint サイトを作成する場合、一定のレベルの一貫性を確保しなければならない場合があります。When people in your organization create new SharePoint sites, you often need to ensure some level of consistency. たとえば、新しいサイトごとに適切なブランドとテーマを適用する必要があります。For example, you may need proper branding and theming applied to each new site. PnP プロビジョニング エンジンの使用など、新しいサイトが作成されるたびに適用する必要がある、詳細なサイト プロビジョニング スクリプトを作成することもできます。You may also have detailed site provisioning scripts, such as using the PnP provisioning engine, that need to be applied each time a new site is created.

この記事では、サイト デザインとサイト スクリプトを使用して、新しいサイトを作成したときに適用するカスタム構成を提供する方法について説明します。This article describes how you can use site designs and site scripts to provide custom configurations to apply when new sites are created.

サイト デザインのしくみHow site designs work

サイト デザインはテンプレートのようなものです。Site designs are like a template. 新しいサイトを作成するたびにこれを使用して、一貫性のある一連のアクションを適用することができます。They can be used each time a new site is created to apply a consistent set of actions. また、既存のモダン サイト (グループに接続されたチームおよびコミュニケーション サイト) に適用することもできます。They can also be applied to existing modern sites (group-connected Team and Communication sites). 通常、ほとんどのアクションは、テーマの設定やリストの作成など、そのサイト自体に影響します。Most actions typically affect the site itself, such as setting the theme or creating lists. しかし、サイト デザインには、新しいサイトの URL をログに記録したり、ツイートを送信したりするなど、他のアクションを含めることもできます。But a site design can also include other actions, such as recording the new site URL to a log, or sending a tweet.

サイト デザインを作成し、SharePoint でそれらをモダン テンプレート サイトの 1 つ、つまりチーム サイトまたはコミュニケーション サイトに登録します。You create site designs and register them in SharePoint to one of the modern template sites: the Team site or the Communication site. 次の手順で、このしくみを確認できます。You can see how this works in the following steps.

  1. 開発者テナントで SharePoint の開始ページに進みます。Go to the SharePoint start page on your developer tenant.

  2. [サイトの作成] を選択します。Choose Create site.

    2 つのモダン テンプレート サイトであるチーム サイトコミュニケーション サイトが表示されます。You'll see the two modern template sites: Team site and Communication site.

  3. コミュニケーション サイト を選択します。Choose Communication site.

コミュニケーション サイトには [デザインの選択] ボックスがあり、以下のサイト デザインが利用できます。The Communication site has a Choose a design box, which comes with the following site designs:

  • トピックTopic
  • ショーケースShowcase
  • 空白Blank

これらは既定のサイト デザインです。These are the default site designs. 各サイト デザインに、タイトル、説明、および画像があります。For each site design, there is a title, description, and image.

コミュニケーション サイト テンプレート上の既定のサイト デザインのタイトル、説明、画像

チーム サイト テンプレートを選択した場合、「チーム サイト」という名前の既定のサイト デザインが 1 つだけ含まれています。Had you chosen the Team site template, it contains only one default site design named Team site.

既定のサイト デザインの変更方法の詳細については、「既定のサイト デザインのカスタマイズ」を参照してください。For more information about how you can change the default site designs, see Customize a default site design.

サイト デザインを選択すると、SharePoint は新しいサイトを作成し、サイト デザインのサイト スクリプトを実行します。When a site design is selected, SharePoint creates the new site, and runs site scripts for the site design. サイト スクリプトは、新しいリストの作成やテーマの適用など、作業の詳細を規定します。The site scripts detail the work such as creating new lists or applying a theme. これらのスクリプト アクションは、バックグラウンドで実行されます。These script actions are run in the background. 通知バーが表示され、サイト作成者はこれをクリックして適用中のアクションのステータスを表示できます。A notification bar will be displayed, which the site creator can click to view the status of the actions being applied.

進行中のスクリプト アクションを表示する通知バー

スクリプトが完了すると通知バーのメッセージが変わり、サイト作成者はページを更新して適用されたスクリプトの結果を表示したり、サイト スクリプトの詳細を表示したりできます。When the scripts are complete the notification bar message will change - allowing the site creator to either refresh the page to see the results of the applied scripts or to view the site script details.

スクリプト アクションの適用が完了したこと表示する通知バー

サイト所有者はサイト デザイン情報パネルをいつでも呼び出すことができ、どのサイト デザインが適用されたのかを確認でき、サイト デザインの追加や更新も行えます。The site design information panel can be invoked by a site owner at any time to see what site designs have been applied to the site (and their script details) as well as to apply new or updated site designs.

スクリプト内のアクションが完了すると、SharePoint の進捗状況ウィンドウにそのアクションの詳細な結果が表示されます。When the actions in the scripts are completed, SharePoint displays detailed results of those actions in a progress pane.

サイト デザイン情報パネル

注意

サイト デザインは、以前に作成したモダン サイト コレクションに適用できるようになりました。Site designs can now be applied to previously created modern site collections. 詳細については、「REST API」 と 「PowerShell」の記事を参照してください。For more information, see the REST API and PowerShell articles.

サイト スクリプトの構造Anatomy of a site script

サイト スクリプトは、新しいサイトを作成するときに実行するアクションの番号付きリストを指定した JSON ファイルです。Site scripts are JSON files that specify an ordered list of actions to run when creating the new site. アクションは、リストされている順序で実行されます。The actions are run in the order listed.

最上位レベルの 2 つのアクションを含むスクリプトの例を以下に示します。The following example is a script that has two top-level actions. 最初に、「Contoso Explorers」という名前で以前に作成されたテーマを適用します。First, it applies a theme that was previously created named Contoso Explorers. 次に、顧客追跡リストを作成します。It then creates a Customer Tracking list.

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json",
  "actions": [
    {
      "verb": "applyTheme",
      "themeName": "Contoso Explorers"
    },
    {
      "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
        }
      ]
    }
  ],
  "version": 1
}

サイト スクリプトの各アクションは、JSON で動詞の値で指定されます。Each action in a site script is specified by a verb value in the JSON. 前述のスクリプトでは、最初のアクションは applyTheme 動詞で指定されます。In the previous script, the first action is specified by the applyTheme verb. 次に、createSPList 動詞でリストを作成します。Next, the createSPList verb creates the list. createSPList 動詞には、リストだけに追加のアクションを実行する独自の動詞セットが含まれています。Notice that the createSPList verb contains its own set of verbs that run additional actions on only the list.

使用可能なアクションは次のとおりです。Available actions include:

  • 新しいリストまたはライブラリの作成 (またはサイトで作成された既定の変更)Creating a new list or library (or modifying the default one created with the site)
  • サイト列の作成、コンテンツ タイプ、およびその他のリスト設定の構成Creating site columns, content types, and configuring other list settings
  • ナビゲーション レイアウト、ヘッダー レイアウト、ヘッダーの背景などのサイトのブランドのプロパティを設定するSet site branding properties like navigation layout, header layout and header background
  • テーマの適用Applying a theme
  • サイト ロゴの設定Setting a site logo
  • クイック起動またはハブ ナビゲーションにリンクを追加するAdding links to quick launch or hub navigation
  • Microsoft Flow のトリガーTriggering a Microsoft Flow
  • アプリ カタログから展開されたソリューションのインストールInstalling a deployed solution from the app catalog
  • サイトの地域設定の設定Setting regional settings for the site
  • SharePoint の役割にプリンシパル (ユーザーとグループ) を追加するAdding principals (users and groups) to SharePoint roles
  • サイトの外部の共有機能の設定Setting external sharing capability for the site

使用可能なアクションとそのパラメーターの完全な一覧については、「JSON スキーマ」を参照してください。For a complete list of available actions and their parameters, see the JSON schema.

注意

ライブラリおよびリストの場合は、PowerShell コマンド [Get-SPOSiteScriptFromList] を使用して、既存の SharePoint リストからサイト スクリプト構文を作成します。For libraries and lists, use the PowerShell command Get-SPOSiteScriptFromList to create the site script syntax from an existing SharePoint list.

サイト スクリプトは、プロビジョニング後に同じサイトで再度実行できます。Site scripts can be run again on the same site after provisioning. サイト スクリプトは破壊的ではないため、再度実行された場合でも、サイトはスクリプト内の設定と一致することが保証されます。Site scripts are non-destructive, so when they run again, they ensure that the site matches the configuration in the script.

たとえば、サイト スクリプトが作成しているのと同じ名前のリストがサイトに既に存在する場合、サイト スクリプトは不足しているフィールドのみを既存のリストに追加します。For example, if the site already has a list with the same name that the site script is creating, the site script will only add missing fields to the existing list.

サイト スクリプト アクションの数の上限は以前に 30 に制限されました。We'd previously capped the limit of site script actions to 30. Invoke-SPOSiteDesign コマンドを使用してスクリプトを同期的に適用する場合は引き続きこの上限が適用されますが、お客様からのフィードバックと追加のアクションのサポートに基づき、UI または Add-SPOSiteDesignTask コマンドを使用してスクリプトを非同期的に適用する場合のアクション数の上限は 300 (または100,000 文字) に引き上げられました。This remains the limit for scripts applied synchronously using the Invoke-SPOSiteDesign command, but based on customer feedback and support for additional actions we have bumped this limit to 300 actions (or 100,000 characters) when the scripts are applied asynchronously (either through the UI or using the Add-SPOSiteDesignTask command).

また、サイト スクリプト数の上限は 100、1 テナントあたりのサイト数の上限は 100 に制限されています。There is also a limit of 100 site scripts and 100 site designs per tenant.

PowerShell または REST を使用したサイト デザインとサイト スクリプトの操作Using PowerShell or REST to work with site designs and site scripts

PowerShell または REST API を使用して、サイト デザインとサイト スクリプトを作成できます。You can create site designs and site scripts by using PowerShell or the REST API. 次の例では、サイト スクリプトと、サイト スクリプトを使用するサイト デザインを作成します。The following example creates a site script and a site design that uses the site script.

C:\> Get-Content 'c:\scripts\site-script.json' `
     -Raw | `
     Add-SPOSiteScript `
    -Title "Contoso theme and list"

Id          : 2756067f-d818-4933-a514-2a2b2c50fb06
Title       : Contoso theme and list
Description :
Content     :
Version     : 0

C:\> Add-SPOSiteDesign `
  -Title "Contoso customer tracking" `
  -WebTemplate "64" `
  -SiteScripts "2756067f-d818-4933-a514-2a2b2c50fb06" `
  -Description "Creates customer list and applies standard theme"

前の例では、Add-SPOSiteScript コマンドレットまたは CreateSiteScript REST API はサイト スクリプト ID を返します。これは、それ以降の Add-SPO-SiteDesign コマンドレットまたは CreateSiteDesign REST API の呼び出しで SiteScripts パラメーターに使用されます。In the previous example, the Add-SPOSiteScript cmdlet or CreateSiteScript REST API returns a site script id. This is used for the SiteScripts parameter in the subsequent call to the Add-SPOSiteDesign cmdlet or CreateSiteDesign REST API.

値 64 に設定された WebTemplate パラメーターは、このサイト デザインをチーム サイト テンプレートに登録することを示します。The WebTemplate parameter set to the value 64 indicates registering this site design with the Team site template. モダン グループ作成を無効にしている場合は、WebTemplate 1 を使用してサイト デザインを公開し、そのサイト デザインが "グループの少ない" チーム サイト テンプレート用に表示されるようにします。If you have disabled modern Group creation, then publish your site designs using WebTemplate 1 so that they display for the "Group-less" Team site template. 値 68 は、コミュニケーション サイト テンプレートに登録することを示します。The value 68 would indicate registering with the Communication site template. Title および Description パラメーターは、ユーザーが新しいチーム サイトを作成してサイト デザインを表示するときに表示されます。The Title and Description parameters are displayed when a user views site designs as they create a new Team site.

注意

サイト デザインは複数のスクリプトを実行できます。A site design can run multiple scripts. スクリプト ID が配列に渡され、リストされている順序で実行されます。The script IDs are passed in an array, and they run in the order listed.

サイト デザインを作成するステップごとの手順については、「サイト デザインの作成を開始する」を参照してください。For step-by-step information about creating a site design, see Get started creating site designs.

Microsoft Flow を使用した PnP プロビジョニングおよびカスタマイズPnP provisioning and customization using Microsoft Flow

サイト スクリプトによって提供される 1 つのアクションは、Microsoft Flow をトリガーする機能です。One action provided by site scripts is the ability to trigger a Microsoft Flow. これにより、サイト スクリプトでネイティブに提供されるアクション以外に、必要なカスタム アクションを指定することができます。This allows you to specify any custom action that you need beyond the actions provided natively in site scripts.

PnP プロビジョニング エンジンを使用してサイト作成を自動化する場合は、Microsoft Flow を使用してサイト デザインと統合できます。If you use the PnP provisioning engine to automate site creation, you can use a Microsoft Flow to integrate with site designs. この手法を使用して、既存のプロビジョニング スクリプトをすべて維持しながら、新しいカスタム プロビジョニング スクリプトを作成することができます。You can maintain all your existing provisioning scripts as well as create new custom provisioning scripts by using this technique.


Microsoft Flow のトリガー プロセス

プロセスは次のように動作します。The process works as follows:

  1. このスクリプトは、URL を使用して Microsoft Flow を追加の詳細とともにインスタンス化します。The script instantiates your Microsoft Flow using a URL with additional details.

  2. このフローは、ユーザーが構成した Azure ストレージ キューにメッセージを送信します。The flow sends a message to an Azure storage queue that you have configured.

  3. このメッセージは、ユーザーが構成した Azure 関数の呼び出しをトリガーします。The message triggers a call to an Azure function that you have configured.

  4. Azure 関数は、PnP プロビジョニング エンジンなどのカスタム スクリプトを実行して、カスタム構成を適用します。The Azure function runs your custom script, such as the PnP provisioning engine, to apply your custom configurations.

PnP プロビジョニングを使用して独自の Microsoft Flow を構成する方法のステップごとのチュートリアルについては、「PnP プロビジョニング エンジンを使用して完全なサイト デザインを作成する」を参照してください。For a step-by-step tutorial about how to configure your own Microsoft Flow with PnP provisioning, see Build a complete site design using the PnP provisioning engine.

スコープScoping

組織内の特定のグループまたは人員にのみ表示するサイト デザインを構成できます。You can configure site designs to only appear for specific groups or people in your organization. これにより、対象となる人々だけがそのサイト デザインを見ることができるようになります。This is useful to ensure that people only see the site designs intended for them. たとえば、会計部門には、会計部門用の特別なサイト デザインのみを表示することができます。For example, you might want the accounting department to only see site designs specifically for them. 会計部門以外の人にとって、会計のサイト デザインは重要度が低い可能性があります。And the accounting site designs may not make sense to show to anyone else.

既定では、作成時にすべてのユーザーがそのサイト デザインを表示できます。By default, a site design can be viewed by everyone when it is created. スコープは、Grant-SPOSiteDesignRights コマンドレットまたは GrantSiteDesignRights REST API を使用して適用されます。Scopes are applied by using the Grant-SPOSiteDesignRights cmdlet or the GrantSiteDesignRights REST API. ユーザーごとに、またはメールが有効なセキュリティ グループで、スコープを指定することができます。You can specify the scope by user or a mail-enabled security group.

Nestor (架空の Contoso サイトに所属するユーザー) のサイト デザインに対する表示権限を追加する方法の例を次に示します。The following example shows how to add Nestor (a user at the fictional Contoso site) view rights on a site design.

Grant-SPOSiteDesignRights `
  -Identity 44252d09-62c4-4913-9eb0-a2a8b8d7f863 `
  -Principals "nestorw@contoso.onmicrosoft.com" `
  -Rights View

スコープの処理方法の詳細については、「サイト デザインへのアクセスのスコープ」を参照してください。For more information about working with scopes, see Scoping access to site designs.

関連項目See also