PnP 预配租户模板
可将租户模板看作 PnP 预配或网站模板之上的一个扩展。 你现可创建网站和团队,还可预配 Azure AD 条目和分类等等,而不是只将项目预配到网站。
注意
租户模板的一个很好的资源是 PnP 预配模板存储库 ,其中包含以前在 lookbook 服务中使用的所有模板, () 不再可用。 你将找到一个租户文件夹,里面有多个文件夹,每个文件夹包含一个模板。 在子文件夹中,你将找到源文件夹。 在源文件夹中,你将找到 template.xml 文件,这就是租户模板。
序列
序列是用于创建网站集和可选子网站的驱动程序。 请注意,序列仅可用于创建所谓的“新式网站”,即通信网站、连接了 O365 组的新式团队网站,或者未连接 O365 组的新式团队。
<pnp:Sequence ID="sequence">
<pnp:SiteCollections>
<pnp:SiteCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="pnp:CommunicationSite" ProvisioningId="MAIN" SiteDesign="Topic" Title="My New Site" Description="" Url="/sites/mynewsite" IsHubSite="false" Owner="user@domain.com">
<pnp:Templates>
<pnp:ProvisioningTemplateReference ID="MAIN-TEMPLATE"/>
</pnp:Templates>
</pnp:SiteCollection>
</pnp:SiteCollections>
</pnp:Sequence>
在上述片段中,你会看到我们要在应用模板时创建一个通信网站。
必须在 <pnp:SiteCollection>
元素中包含 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
属性,因为这样才能使架构弄清楚哪些属性应用于哪些元素。 与团队网站实例相比,通信网站具有不同的属性。
<pnp:SiteCollection>
元素的子元素为 <pnp:Templates>
,你可用它来引用 1 个或更多模板。 虽然可将这些模板保留在单独的文件中,但建议一开始就将模板放在同一文件中。
引擎在分析模板时,首先会创建网站集,即带 URL /sites/mynewsite
的网站。 创建网站后,它将查找 ID 为 MAIN-TEMPLATE
的模板,并将该模板应用到刚创建的网站。
团队
可轻松配置要创建的团队:
<pnp:Teams>
<pnp:Team DisplayName="My Test Team" Description="" Visibility="Private" Photo="TeamData/TEAM_ef3020c6-1953-4367-b7c5-a6da8e24d049/photo_ef3020c6-1953-4367-b7c5-a6da8e24d049_432X432.jpg" Specialization="None">
<pnp:FunSettings />
<pnp:GuestSettings AllowCreateUpdateChannels="false" />
<pnp:MembersSettings />
<pnp:MessagingSettings />
<pnp:Security>
<pnp:Owners>
<pnp:User UserPrincipalName="user@domain.com" />
</pnp:Owners>
<pnp:Members>
<pnp:User UserPrincipalName="user@domain.com" />
</pnp:Members>
</pnp:Security>
<pnp:DiscoverySettings ShowInTeamsSearchAndSuggestions="false" />
<pnp:Channels>
<pnp:Channel DisplayName="General" Description="test" ID="19:796d063baf3fad3ffa2231aeaf092c8fb9b44e@thread.skype">
<pnp:Tabs>
<pnp:Tab DisplayName="Lists and Pages" TeamsAppId="2a527703-1f6f-4559-a332-d8a7d288cd88"/>
<pnp:Tab DisplayName="Docs" TeamsAppId="com.microsoft.teamspace.tab.files.sharepoint">
<pnp:Configuration EntityId="" ContentUrl="https://tenant.sharepoint.com/sites/mynewsite/Shared%20Documents" RemoveUrl="" WebsiteUrl="" />
</pnp:Tab>
</pnp:Tabs>
</pnp:Channel>
</pnp:Channels>
</pnp:Team>
</pnp:Teams>
上面的示例创建了一个团队、添加了一个频道,还向该频道添加了两个选项卡。
使用 PnP PowerShell 预配包含团队的租户模板
由于以编程方式创建团队的唯一方法是使用 Microsoft Graph,因此在使用 PnP PowerShell 预配其中包含 Teams 元素的模板时,我们需要你提供 Graph 的访问令牌。 PnP PowerShell 可以自动为你获取此类访问令牌,但是,你需要先征得租户的同意。
可以通过执行如下操作实现上述目的:
Register-PnPManagementShellAccess
这仅是一次性操作。 执行此同意步骤后,你可以按照常规方法与 PnP PowerShell 连接。
预配引擎使用的流程如下:
- 使用凭据登录
Connect-PnPOnline <tenant>.sharepoint.com -Interactive
- 使用 应用模板
Invoke-PnPTenantTemplate -Path yourtemplate.pnp
- 预配引擎将开始预配其在该模板中找到的任何 SharePoint 工件。
- 引擎遇到需要 Microsoft Graph 访问令牌的工件时,将回调 PnP PowerShell 以获取此类令牌
- PnP PowerShell 将尝试按照上文所述,使用你在步骤 1 中使用的凭据以及你之前提供的同意,使用 PnP 命令行管理程序多租户 Azure 应用程序注册来获取令牌。 成功获取令牌后,它会将此令牌返回给预配引擎,后者将使用该令牌对 Microsoft Graph API 进行适当的调用。
如果以后要删除此同意,请登录到 Azure 门户,然后导航到 Azure Active Directory。 在“企业应用程序”部分中,你将找到一个名为“PnP 命令行管理程序”的条目,其客户端 ID 为 31359c7f-bd7e-475c-86db-fdb8c937548e。 删除此条目可清除许可。