Powershell zur SharePoint Administration

Auch für den Entwickler ist es nützlich einige Tasks automatisieren zu können. Im Exchange-Umfeld ist die Powershell bereits seit der Version 2007 etabliert, für die SharePoint-Welt hat sie mich noch nicht so wirklich entdeckt. Es gibt jedoch auf Codeplex eine schöne Erweiterung die es möglich macht SharePoint-Objekte (z:B. Sites) zu instantiieren und deren Metadaten auszulesen oder zu setzen.

Zunächst einmal PowerShell 1.0 downloaden: PowerShell und auf einem Web-Frontend-Server installieren.

In der Powershell folgende Befehle ausführen:

 set-executionpolicy RemoteSigned
[System.Reflection.Assembly]::Load(”Microsoft.SharePoint, 
Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”)
[System.Reflection.Assembly]::Load(”Microsoft.SharePoint.Portal, 
Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”) 

oder besser die Zeilen in eine eigene Datei unter:

 C:\Documents and Settings\username\My Documents\Microsoft.PowerShell_profile.ps1

ablegen, dann werden diese automatisch beim Start der Powershell ausgeführt.

Was kann ich nun damit machen ?

Eigentlich das ganze WSS Objektmodell verwenden. Eine Site kann man wie folgt instanttieren:

 $SiteName = “https://moss.litwareinc.com/”
$WebName = “/proposal/”
$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];

Die Metadaten der Site bekommt man dann wie folgt:

 $item.Fields | format-table InternalName

Und wenn ich mir jetzt vorstelle wie ich die leistungsfähige Powershell mit dem WSS Objektmodell kombinieren kann .... dann wird die SharePoint Administration nicht zum Kinderspiel aber mal eben einige Metadaten aus Objekten auslesen oder setzen kann dann auch mal ohne Visual Studio geschehen

viel Spass beim Probieren

Sven