Mittwoch, 1. April 2015

Powershell Script: Liste von Template zu allen bestehenden Websites hinzufügen


Websitetemplates sind ein geeignetes Werkzeug zur Anlage von gleich aufgebauten Websites im SharePoint. Die Erstellung solcher Vorlagen ist sehr einfach. Es wird eine Website mit allen benötigten Listen, Bibliotheken, Seiten und Webparts angelegt und anschließend als Vorlage gespeichert. Bei der Anlage einer neuen Website kann diese Vorlage ausgewählt werden und es wird eine entsprechend vorkonfigurierte Website angelegt. Das erleichtert zum Beispiel die Anlage von gleich aufgebauten Projektseiten in einem Projektportal ungemein.

Dies ist sehr praktisch, solange sich die Vorlage für die Projektseiten nicht ändert. Wird allerdings zu einem späteren Zeitpunkt festgestellt, dass auf allen Projektseiten noch eine zusätzliche Liste angelegt werden soll, entstehen zwei Probleme:

1.    Das aktuelle Websitetemplate ist veraltet. Auf neu anzulegenden Websites fehlt dementsprechend auch die Liste, solange das Template nicht aktualisiert wurde.

2.    Auf bereits angelegten Websites fehlt diese Liste natürlich auch

Problem eins lässt sich einfach lösen, indem das Websitetemplate aktualisiert wird. Von nun an angelegte Websites auf Basis des Templates enthalten die neue Liste. Bei bereits existierenden Websites ist es problematischer. Hier gibt es nur zwei Möglichkeiten: Die Liste kann natürlich auf vorhandene Websites manuell angelegt werden. Das ist, je nach Anzahl der vorhandenen Websites, sehr zeitaufwändig. Um Aufwand beim Anlegen der neuen Liste auf den einzelnen Websites zu sparen, ist eine automatisierte Lösung praktischer.

Die automatische Anlage von Listen auf einer Website und allen Unterwebsites kann zum Beispiel mit Hilfe eines PowerShell Skriptes erfolgen. Bevor das PowerShell Skript verwendet werden kann, muss von der anzulegenden Liste ein Template erstellt werden. List-Templates lassen sich über die Listeneinstellungen einer Liste einfach erstellen. Das erstellte Template wird in einer zentralen List-Template Bibliothek abgelegt.

Folgendes PowerShell Script erstellt auf einer angegebenen Website und allen Unterwebsites eine Link-Liste basierend auf einer Listenvorlage:

 
Abbildung 1 Automatische Anlage einer Liste auf eine Website und allen Unterwebsites
 

Im PowerShell Script wird zunächst festgelegt, unter welchen Namen und auf welcher Website die neue Liste angelegt werden soll. Weiterhin wird das zuvor angelegte Listtemplate angegeben.

In einer „For Each"-Schleife werden die angegebene Website sowie alle darunterliegenden Websites durchlaufen. Pro Website wird überprüft, ob bereits eine Liste mit dem Namen „LinkList" existiert. Ist dies nicht der Fall, wird eine neue Liste mit dem Namen „LinkList" auf des angegebenen Listtemplates angelegt.

Mit Hilfe dieses PowerShell Script lässt sich unter Umständen viel Zeit sparen, wenn eine Liste auf vielen bereits bestehenden Websites angelegt werden soll.
 
 

Keine Kommentare:

Kommentar veröffentlichen