05.08.2008 | Autor / Redakteur: Markus Widl / Andreas Donner
Um nun alle in der Website enthaltenen Listen und Bibliotheken zu ermitteln, wird die Eigenschaft Lists des SPWeb-Objekts ausgewertet:
Über das Cmdlet format-table wird nur der jeweilige Titel ausgegeben. Es lohnt sich aber zur genaueren Analyse diese Filterung wegzulassen. Das Ergebnis ist eine umfangreiche Ausgabe der SPWeb-Eigenschaften.
Als Nächstes sollen bestimmte Felder (Spalten) einer Liste ausgegeben werden. Im Beispiel wird auf die in jeder Team-Website standardmäßig vorhandene Liste „Announcements“ zugegriffen und von den Listenelementen die Felder Titel und Body (der Ankündigungstext) geliefert.
In der ersten Zeile wird ein SPList-Objekt der gewünschten Liste erzeugt. Die folgende Zeile wertet von diesem Objekt die Eigenschaft Items aus. Über die Schleife erfolgt die Ausgabe.
Beim Anlegen eines neuen Listenelements kommt wieder die eben verwendete Items-Eigenschaft zum Einsatz. Darüber hinaus kann mit der Add-Methode ein neues Listenelement erzeugt werden (Klasse SPListItem). In diesem Objekt werden alle gewünschten Eigenschaften gesetzt und zum Schluss über die Update-Methode gespeichert. Der Aufruf dieser Methode darf nicht vergessen werden, da sonst das neue Element nicht angelegt wird. Im Beispiel wird eine neue Ankündigung samt Ablaufdatum angelegt, die neue Ankündigung ist sofort in der Liste ersichtlich.
Vorhandene Listenelemente ändern und löschen
Über einen ähnlichen Weg können vorhandene Listenelemente geändert werden. Zunächst wird das betroffene Element ermittelt. Dies kann etwa durch eine Filterung mit dem Cmdlet where-object erfolgen.
Danach folgen die Änderung und ebenfalls ein abschließendes Update:
In einem abschließenden Beispiel sollen alle Dateien eines Ordners in der Dokumentenbibliothek „Shared Documents“ abgelegt werden. Hierbei kommt keine SharePoint-Klasse zum Einsatz, sondern die Klasse Net.WebClient des .NET-Frameworks. Das Beispiel ist dadurch auch von Clients aus verwendbar. Zunächst wird ein WebClient-Objekt angelegt:
Um den Dateiupload durchführen zu können, muss eine Authentifizierung erfolgen. Mit diesem Befehl werden die „Credentials“ des aktuellen Benutzers verwendet:
Dann folgt der eigentliche Upload. Zunächst werden alle Dateien des aktuellen Ordners über das PowerShell-Cmdlet get-childitem ermittelt und in der Pipeline über eine Schleife verarbeitet. Für jede Datei wird die Methode UploadFile der WebClient-Klasse aufgerufen:
Mit diesen Befehlszeilen lassen sich schnell viele Dateien in einer Dokumentenbibliothek ablegen.
Die gezeigten Beispiele decken nur einen kleinen Teil der Funktionalität des SharePoint-Objektmodells ab. Geneigte Leser finden unter dem unten angegeben Link die Dokumentation der Klassen und viele Anregung für den weiteren Einsatz.
Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 2014459)