Freigeben über


PNP-Bereitstellen von Mandantenvorlagen

Stellen Sie sich die Mietervorlagen als eine Erweiterung der PnP-Bereitstellung oder der Websitevorlagen vor. Statt nur Artefakte für eine Website bereitzustellen, können Sie jetzt Websites erstellen, Teams erstellen, Azure AD-Einträge bereitstellen, eine Taxonomie bereitstellen usw.

Hinweis

Das PnP-Bereitstellungsframework & PnP-Bereitstellungsmodul sind Open-Source-Lösungen mit aktiver Community, die unterstützung dafür bereitstellt. Es gibt keine SLA für den Support des Open-Source-Tools durch Microsoft.

Hinweis

Eine gute Ressource für Mandantenvorlagen ist das PnP Provisioning Templates Repository, das alle Vorlagen enthält, die im Lookbook-Service unter https://lookbook.microsoft.com verwendet wurden. Sie finden einen Mandanten Ordner und darin mehrere Ordner, die jeweils eine Vorlage enthalten. In den Unterordnern finden Sie einen Quellordner. Im Quellordner finden Sie eine XML-Vorlagendatei, bei der es sich um eine Mandanten Vorlage handelt.

Die Sequenz

Eine Sequenz ist ein Treiber zum Erstellen von Websitesammlungen und optionalen Unterwebsites. Beachten Sie, dass eine Sequenz nur die so genannte "moderne Website" erstellen kann: eine Kommunikationswebsite, eine moderne Teamwebsite mit einer verbundenen O365-Gruppe oder ein modernes Team ohne verbundenes O365-Team.

<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>

Im obigen Ausschnitt sehen Sie, dass wir eine Kommunikationswebsite erstellen, wenn Sie die Vorlage anwenden.

Es ist wichtig, ein xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"-Attribut im <pnp:SiteCollection>-Element zu haben, da es dem Schema ermöglicht, herauszufinden, welche Eigenschaften auf welches Element zutreffen. Eine Kommunikationswebsite hat andere Eigenschaften als beispielsweise eine Team Website.

Ein untergeordnetes Element des <pnp:SiteCollection> Elements ist <pnp:Templates>, das Ihnen erlaubt, auf 1 oder mehrere Vorlagen zu verweisen. Obwohl es möglich ist, dass Sie diese Vorlagen in separaten Dateien speichern, empfehlen wir, die Vorlagen zunächst in der gleichen Datei zu speichern.

Wenn das Modul die Vorlage analysiert, erstellt es zuerst die Websitesammlungen, in diesem Fall die Website mit URL /sites/mynewsite. Nachdem die Website erstellt wurde, findet es die Vorlage mit einer ID von MAIN-TEMPLATE und wendet diese auf die soeben erstellte Website an.

Teams

Sie können auf einfache Weise ein zu erstellendes Team konfigurieren:

 <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>

Im obigen Beispiel wird ein Team erstellt, ein Kanal hinzugefügt und 2 Registerkarten werden zum Kanal hinzugefügt.

Bereitstellen einer Mandantenvorlage mit einem Team mit PnP PowerShell

Da die einzige Möglichkeit, ein Team programmatisch zu erstellen, die Verwendung von Microsoft Graph ist, benötigen wir ein Zugriffstoken für Graph, wenn Sie PnP PowerShell verwenden, um eine Vorlage mit einem Team-Element darin bereitzustellen. PnP PowerShell kann automatisch ein solches Zugriffstoken für Sie erwerben, allerdings müssen Sie dafür zunächst die Zustimmung Ihres Mandanten einholen.

Gehen Sie wie folgt vor:

Register-PnPManagementShellAccess

Dies ist nur eine einmalige Aktion. Nachdem Sie diesen Zustimmungsschritt ausgeführt haben, können Sie wie gewohnt die normalen Verbindungsmöglichkeiten mit PnP PowerShell verwenden.

Der Ablauf, den das Bereitstellungsmodul verwendet, ist wie folgt:

  1. Melden Sie sich mit Ihren Anmeldeinformationen bei Connect-PnPOnline <tenant>.sharepoint.com -Interactive an
  2. Sie wenden die Vorlage mit Invoke-PnPTenantTemplate -Path yourtemplate.pnp
  3. Das Bereitstellungsmodul beginnt mit der Bereitstellung aller Microsoft Office SharePoint Online-Artefakte, die es in dieser Vorlage findet.
  4. Sobald das Modul auf ein Artefakt trifft, das ein Zugriffstoken für Microsoft Graph erfordert, ruft es die PNP-PowerShell auf, um ein solches Token zu erwerben.
  5. PnP PowerShell versucht, unter Verwendung der in Schritt 1 verwendeten Anmeldedaten und der von Ihnen zuvor wie oben beschrieben erteilten Zustimmung, ein Token unter Verwendung der PnP-Verwaltungsshell eine Multimandantenanmeldung für Azure zu erwerben. Sobald das Token erfolgreich erworben wurde, wird es in das Bereitstellungsmodul zurückgesetzt, das dieses Token verwendet, um die entsprechenden Aufrufe der Microsoft Graph-API auszuführen.

Wenn Sie zu einem späteren Zeitpunkt diesen Status entfernen möchten, melden Sie sich bei Ihrem Azure-Portal an und navigieren Sie zum Azure Active Directory. Im Abschnitt Unternehmensanwendungen finden Sie einen Eintrag namens "PnP Management Shell" mit der Client-ID 31359c7f-bd7e-475c-86db-fdb8c937548e. Entfernen Sie diesen Eintrag, um die Zustimmung zu löschen.

Siehe auch