SharePoint 2016 Site Collections super schnell erstellen
Microsoft hat uns mit SharePoint 2016 eine kleine aber feine Rafinesse zur Verfügung gestellt, wenn wir Site Collections erstellen möchten. Jeder Farmadministrator, der "mal schnell" eine Site Collection erstellen musste, kennt folgendes Szenario sicher: Nach dem Absenden der Erstellung holen wir uns erst einmal einen Kaffee, so wie wir es früher beim Start langsamer Computer gemacht haben. Denn eine Erstellung dauert ungefähr 40 (+/-) Sekunden, bis die Seite wirklich da ist.
Wenn ich nun in einem Unternehmen die Richtlinie verfolge, dass pro Projekt oder Mandant oder Kunde eine Site Collection erstellt werden muss, dann kann dies bei größeren Firmen zu sehr viel Wartezeit führen. Microsoft hat für dieses Szenario eine "Kopieren und Einfügen" Funktion für Site Collections eingebaut. Statt 40 Sekunden braucht dieser Prozess nur noch eine Sekunde. Um diese Funktion zu nutzen, benötige ich zwei Schritte:
- Eine Vorlage für das "Fast-Site-Creation" Verfahren aktivieren
Enable-SPWebTemplateForSiteMaster -Template "STS#0" -CompatibilityLevel 15 - Diese Vorlage dann als Master in einer ausgewählten Datenbank abspeichern
$DB = Get-SPContentDatabase -site https://WebApp/sites/TeamSite
New-SPSiteMaster -ContentDatabase $DB -Template "STS#0"
Ist dies erledigt, so sehe ich auch in meiner Zentraladministration, dass ein Site-Master als Site Collection angelegt wurde.
Als nächstes kann ich bereits mit dem richtigen PowerShell Befehl eine Site in Windeseile erstellen lassen.
New-SPSite https://WebApp/sites/Fast -Template "STS#0" -ContentDatabase "P_SP_Content_Intranet" -OwnerAlias "Contoso\administrator" -CreateFromSiteMaster
Was müssen wir berücksichtigen?
- Sie sehen an dem Befehl, dass der einzige Unterschied zu einem normalen Erstellungsprozess der Switch "-CreateFromSiteMaster" ist. Ohne diesen wird die Site nach dem Standard-Verfahren erzeugt. Auch das Erstellen über die Zentraladministartion verwendet den Standard-Prozess, sodass diese neue Funktion wirklich nur per PowerShell zur Verfügung steht.
- Dieser neue Prozess erstellt die Seite auf Datenbankebene. Damit ersparen wir uns einiges an "Hin und Her" zwischen SharePoint and SQL Server, weil eben nicht das SharePoint Object Model verwendet wird. ABER, dies bedeutet gleichzeitig, dass nicht alle Features aktiviert werden können. Microsoft weist aber freundlich beim Erstellen das Site-Masters darauf hin, dass basierend auf der verwendeten Vorlage (- auch angepasste Vorlagen sind möglich -) noch bestimmte Features nachträglich aktiviert werden müssen, weil dies nicht für alle möglich ist. Mit dem Get-SPSiteMaster Befehl kann dies auch nachträglich herausgefunden werden. Dies ist interessant für Entwickler, deren Anpassungen bestimmte Features benötigen. Solche müssen somit noch explizit nach der Kopie zu einer neuen Site Collection aktiviert werden.
Fassen wir die Befehle noch einmal zusammen:
Enable-SPWebTemplateForSiteMaster | Aktiviert die entsprechende Vorlage für denFast-Site-Creation Prozess |
Disable-SPWebTemplateForSiteMaster | Deaktiviert entsprechende Site Collection |
Get-SPWebTemplatesEnabledForSiteMaster | Zeigt alle Vorlagen an, die für denFast-Site-Creation Prozess aktiviert wurden |
Get-SPSiteMaster | Zeigt einen entsprechenden Site-Master an(um z.B. die zu aktivierenden features erneut zu identifizieren) |
New-SPSiteMaster | Erstellt einen neuen Site-Master |
Remove-SPSiteMaster | Löscht einen Site-Master |
Habe Sie beispielsweise ein "Self-Service-Portal" auf Basis von PowerShell zur Provisionierung von Site Collections, dann empfehle ich dieses Feature zu nutzen, weil die Endbenutzer so noch schneller ihre angeforderte Seite zur Verfügung gestellt bekommen.
Also viel Spaß beim "SharePointen"!