SharePoint 2010 Deployment (Teil 1) – Erstellen einer SiteCollection

13. April 2012

Bei SharePoint 2010 Deployment handelt sich um eine Serie von Blogbeiträgen, die die verschiedenen Schritte für das Deployment von SiteCollection erläutert und ausführt. Dabei wird der Fokus auf das Einspielen einer Backup-Datei aus der Entwicklungsumgebung auf die Test- oder Produktivumgebung gelegt.

 

In diesem, sowie in den folgenden Beiträgen zu diesem Thema, werden die folgenden Punkte für das Deployment von SharePoint 2010 Seiten näher erläutert:

  1. Erstellen einer SiteCollection
  2. Wiederherstellen einer Backup-Datei
  3. Erstellen von SecureStore-Applikationen
  4. Importieren von Business Data Connectivity Models
  5. Deployen von SQL Server Reporting Services Reports

Im ersten Teil dieser Blogserie behandeln wir das Erstellen einer SiteCollection in SharePoint 2010 mit Hilfe von Powershell. Hierfür nutzen wir eine konfigurierbare Powershell-Datei, welche nach Belieben angepasst werden kann.

Für das Erstellen der Powershell-Datei sowie das nachträgliche Ausführen sind die folgenden Schritte notwendig:

  1. Erstellen einer Konfigurationsdatei
  2. Erstellen einer Powershell-Datei
  3. Einbinden der Konfigurationsdatei in die Powershell-Datei
  4. Ausführen

Konfigurationsdatei

Um ein unabhängiges Deployment zu erstellen, verwenden wir eine XML-Datei, die zur Konfiguration in dieser Blogserie verwendet wird.

Erstellen Sie hierfür eine neue Datei mit dem Namen Konfiguration.xml und fügen Sie den folgenden Teil in die Konfigurationsdatei.

   1: <?xml version="1.0" encoding="utf-8" ?>

   2: <Config_Content>

   3:   <!--Servername where the application will be installed/imported.-->

   4:   <Webapplication>http://<Servername></Webapplication>

   5:   

   6:   <!--Configuration for create and import SiteCollection-(Backup)-->

   7:   <!--Destination Url of the Site collection (Cannot be empty!!!)-->

   8:   <Url>/sites/mySite</Url>

   9:   <!--Title of the Site Collection (Cannot be empty!!!)-->

  10:   <Title>MySite</Title>

  11:   <!--Description of the Site Collection-->

  12:   <Description>This is a testpage for the blog.</Description>

  13:   <!--LanguageID are used for this Site Collection and their subsites (1033:English; 1031:German)-->

  14:   <LCID>1033</LCID>

  15:   <!--TemplateId from Microsoft (here: TeamSite Template)-->

  16:   <WebTemplate>STS#0</WebTemplate>

  17:   <!--Loginname of the Site Collection owner (Cannot be empty!!!)-->

  18:   <FirstOwnerLogin>Farm-Administrator</FirstOwnerLogin>

  19:   <!—Email address of the Site Collection owner (Cannot be empty!!!)-->

  20:   <FirstOwnerEmail>Thomas.Nissen@mySite.de</FirstOwnerEmail>

  21:   <!--Loginname of the Second Site Collection Administrator -->

  22:   <SecondaryOwnerLogin>Administrator</SecondaryOwnerLogin>

  23:   <!--Email address of the Second Site Collection Administrator -->

  24:   <SecondaryOwnerEmail>test.test@test.ag</SecondaryOwnerEmail>

  25: </Config_Content>

Eine Übersicht der Webtemplates können Sie mit dem Befehl

   1: Get-SPWebTemplate | Sort-Object „Name”

in der Microsoft SharePoint 2010 Management Shell abfragen.

Powershell-Datei

Im zweiten Schritt erstellen wir ein neues Powershell-Skript namens Deployment.ps1, welches die Konfigurationsdatei einliest und den Befehl zum Erstellen einer neuen SiteCollection ausführt.

Einbinden der Konfigurationsdatei

   1: #Read XML Configuration files

   2: $configurationElement = Get-Content "Konfiguration.xml"

   3: #----- Variables -----

   4: $SiteCollectionURL = $configurationElement.Config_Content.Url

   5: $Title = $configurationElement.Config_Content.Title

   6: $Description = $configurationElement.Config_Content.Description

   7: $LCID = $configurationElement.Config_Content.LCID

   8: $WebTemplate = $configurationElement.Config_Content.WebTemplate

   9: $FirstOwnerLogin = $configurationElement.Config_Content.FirstOwnerLogin

  10: $FirstOwnerEmail = $configurationElement.Config_Content.FirstOwnerEmail

  11: $SecondOwnerLogin = $configurationElement.Config_Content.SecondaryOwnerLogin

  12: $SecondOwnerEmail = $configurationElement.Config_Content.SecondaryOwnerEmail

  13: $Webapplication = $configurationElement.Config_Content.Webapplication

  14:  

  15: $newCollectionSite = $Webapplication + $SiteCollectionURL

In den kommenden zwei Schritten überprüfen wir vorab, ob eine SiteCollection mit dem Namen MySites schon unter /sites/mySite">/sites/mySite">/sites/mySite">/sites/mySite">/sites/mySite">/sites/mySite">/sites/mySite">http://<Servername>/sites/mySite existiert. Falls ja, soll diese gelöscht werden.

   1: #----- Delete the Site Collection if exist -----

   2: $CollectionSiteExist = Get-SPSite -Identity $newCollectionSite -EA 0

   3: if($CollectionSiteExist -ne $null)

   4: {

   5:   Remove-SPSite -Identity $newCollectionSite -Confirm:$False

   6: }

Anschließend erstellen wir unsere neue SiteCollection.

   1: #----- Create the Site Collection ----

   2: Write-Host "Create Site Collection Start"

   3: New-SPSite -URL $newCollectionSite -Name $Title -Description $Description -Language $LCID -Template $WebTemplate -OwnerAlias $FirstOwnerLogin -OwnerEmail $FirstOwnerEmail -SecondaryOwnerAlias $SecondOwnerLogin -SecondaryEmail $SecondOwnerEmail 

   4: Write-Host "Create Site Collection End"

Mit dem Befehl Write-Host können Sie eine Zeile im Shell-Fenster ausgeben (gleich dem echo-Befehl im CMD-Kommandofenster).

Ausführen

Öffnen Sie nun auf dem Server das Microsoft SharePoint 2010 Management Shell und navigieren zum dem Verzeichnis, in dem Sie die neu erstellten Dateien gespeichert haben.

Sie können das Skript auch mit dem von Windows Server mitgelieferten Powershell-Fenster ausführen. Hierzu müssen Sie jedoch noch die SharePoint spezifischen Methoden einbinden. Geben Sie dafür folgenden Befehl ein, bevor Sie das Deployment-Skript ausführen:

   1: Add-PsSnapin Microsoft.SharePoint.PowerShell

Um die SharePoint spezifischen Methoden auch dauerhaft im Windows Server mitgelieferten Powershell-Fenster nutzen zu können, finden Sie hier einen interessanten Blogeintrag von Kirk Evans.

Führen Sie das Powershell-Skript Deployment.ps1 aus. Anschließend sollte folgendes Fenster erscheinen:

image

Fazit

Zusammenfassend kann man sagen, dass sich mit Hilfe von Powershell in SharePoint 2010 einfach administrative und konfigurierbare Schritte ausführen lassen. Dieses bedeutet, insbesondere für Administratoren und Entwickler, eine erhebliche Zeitersparnis.

Im zweiten Teil dieser Blogserie SharePoint 2010 Deployment beschäftigen wir uns mit dem Thema Wiederherstellen einer Backup-Datei (erscheint in Kürze).

Hier finden Sie eine Übersicht aller Blogbeiträge zu dieser Blogserie.

Teil 1                    Teil 2                    Teil 3                     Teil 4                    Teil 5