SearchNetworking PowerShell-Corner

SharePoint-Zugriff mit der PowerShell

05.08.2008 | Autor / Redakteur: Markus Widl / Andreas Donner

Mit der PowerShell kann auch auf SharePoint-Inhalte zugegriffen werden

Mit Microsofts universeller Administrationskonsole PowerShell ist dank der möglichen Verwendung von .NET-Klassen auch ein Zugriff auf SharePoint-Inhalte wie Listen und Dokumentenbibliotheken möglich. SearchNetworking zeigt das Vorgehen anhand verschiedener Beispiele.

Microsoft hat für den Zugriff auf SharePoint-Inhalte im Wesentlichen zwei Schnittstellen vorgesehen. Da ist auf der einen Seite ein leistungsfähiges Objektmodell, das ohne großen Lernaufwand eingesetzt werden kann. Auf der anderen Seite steht eine ganze Palette verschiedener Webservices bereit, die es ebenfalls ermöglichen SharePoint-Inhalte zu verwalten.

Zwar kann das Objektmodell nicht von einem beliebigen Client im Netzwerk aus sondern ausschließlich auf dem SharePoint-Server selbst verwendet werden, doch führt es zu schnellen Ergebnissen und ist bei der SharePoint-Automatisierung sehr nützlich.

In diesem Artikel steht der Begriff „SharePoint“ sowohl für die kostenlosen Windows SharePoint Services (WSS) als auch die kostenpflichtigen Editionen des Microsoft Office SharePoint Servers (MOSS).

Wichtige SharePoint-Klassen

Die Abbildung zeigt eine Übersicht einiger wichtiger SharePoint-Klassen. In den folgenden Beispielen werden folgende Klassen eingesetzt:

  • SPSite: repräsentiert eine Websitesammlung
  • SPWeb: eine Website innerhalb einer Websitesammlung
  • SPList: eine Liste oder Dokumentenbibliothek
  • SPListItem: ein Eintrag innerhalb einer Liste oder Dokumentenbibliothek

Im ersten Beispiel soll auf eine bestimmte Website aus einer Websitesammlung zugegriffen werden. Anschließend werden die dort vorhandenen Listen und Dokumentenbibliotheken ausgewertet.

Damit von der PowerShell aus auf das SharePoint-Objektmodell zugegriffen werden kann, ist das Laden eines bestimmten SharePoint-Assemblies erforderlich. Dieser Vorgang wird mit einer Befehlszeile erledigt:

[System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SharePoint“)

Nun kann mit den oben angesprochenen Klassen gearbeitet werden. Es folgt der Zugriff auf eine Websitesammlung. Dabei kommt das Cmdlet new-object zur Erstellung eines .NET-Objekts zum Einsatz.

$site = new-object -typename Microsoft.SharePoint.SPSite(„http://localhost“)

Ausgehend von dem hier erzeugten SPSite-Objekt kann nun auf eine bestimmte Website zugegriffen werden. Hier ein Beispiel in dem ein SPWeb-Objekt erzeugt wird:

$web = $site.OpenWeb(„WEBNAME“)

Im Parameter der OpenWeb-Methode wird der Name der gewünschten Website angegeben. Alternativ dazu kann die Namensangabe auch entfallen und es wird die in der Hierarchie an oberster Stelle stehende Website aus der Websitesammlung zurückgegeben.

$web = $site.OpenWeb()

weiter mit: Vorhandene Listen und Bibliotheken ermitteln

Kommentar zu diesem Artikel

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)



Spamschutz 

Bitte geben Sie das Resultat dieser Rechenaufgabe (Addition) ein:
Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 2014459)