Zum Inhalt springen

Daniel Mettler SharePoint Migration einer SharePoint Website auf eine andere Websitevorlage

Migration einer SharePoint Website
auf eine andere Websitevorlage

Im Microsoft SharePoint ist es grundsätzlich nicht möglich, bei einer bestehenden Website die Website-Vorlage auszutauschen. Der einzige Weg dies zu erreichen, ist eine neue Website mit der gewünschten Vorlage zu erstellen und den gewünschten Inhalt irgendwie übernommen. In diesem Beitrag zeige ich, welche Möglichkeiten es gibt und wie dieser Schritt mit zwei PowerShell-Scripts sehr einfach automatisiert werden kann.

Wird im SharePoint beispielsweise eine Teamwebsite erstellt, bleibt diese für immer eine Team-Site. Soweit so gut. Wenn aber z.B. im früheren SharePoint 2010 ein Besprechungsarbeitsbereich (Meeting-Workspace) erstellt wurde, kann diese im SharePoint 2013 zu einer Herausforderung werden, da diese Website schlicht nicht mehr funktioniert. Wenn die Website also noch benötigt wird, muss diese auf eine andere Vorlage migriert werden.

Ein anderes Praxisbeispiel ist, dass früher einmal mit dem Project Server experimentiert wurde und darauf produktiver Inhalt erstellt wurde. Jetzt will man aber den Project Server nicht mehr betreiben. So müssen alle noch benötigten Project-Websites migriert werden auf andere Websites. Ähnliches trifft zu, wenn man ein Downgrade von SharePoint Standard auf SharePoint Foundation durchführen will.

Zur Unterstützung der Datenmigration gibt es entweder umfangreiche Enterprise-Lösungen von Drittherstellern wie MetaLogix, AvePoint oder Sharegate. Über PowerShell können diese Schritte aber auch sehr leicht automatisiert werden, ohne Dritthersteller-Tools.

Schritt 1: Alle Listen exportieren auf das Datei-System

Als ersten werden von einer Website alle Listen und Bibliotheken einzeln exportiert auf das Dateisystem. Falls gewünscht kann der Export jetzt oder später noch gefiltert werden, sodass z.B. versteckte Listen wie die Benutzerinformationsliste ausgeschlossen werden. Der Befehl Export-SPWeb erstellt standardmässig komprimierte cmp-Dateien. In Einzelfällen empfehle ich aber -NoFileCompression zu verwenden, weil das Export-Format für den Menschen lesbarer ist. Der Export-Vorgang dauert aber dann ca. 30% länger.

$sourceWebUrl = "https://contoso.ch/alte_website"
$backupFolder = "C:\Backup\alte_website\"
$sourceWeb = Get-SPWeb $sourceWebUrl
$sourceWeb.Lists | ForEach-Object {
$list = $PSItem
$backupPath = $backupFolder + $list.Title + ".cmp"
$itemUrl = "/" + $list.RootFolder.Url
Write-Host "Will Backup $($list.Title) URL $itemUrl" -ForegroundColor Yellow
Export-SPWeb $sourceWeb -Path $backupPath -ItemUrl $itemUrl -IncludeVersions All -IncludeUserSecurity -NoFileCompression
}

Schritt 2: Importieren der gewünschten Listen

Mit dem vorherigen Script wurden alle Listen exportiert auf das Dateisystem. Von Dateisystem werden sie nun wieder importiert auf der neuen Ziel-Website. Falls einige Listen nicht importiert werden sollen, empfehle ich einfach die entsprechende Backup-Datei zu löschen (bzw. den Backup-Ordner bei der NoFileCompression-Methode).

$backupFolder = "C:\Backup\alte_website\"
$targetWebUrl = "https://contoso.ch/neue_website"
Get-ChildItem "$backupFolder\*.cmp" | ForEach-Object {
$backupPath = $PSItem.FullName
Write-Host "Will Restore $($PSItem.Name)" -ForegroundColor Yellow
Import-SPWeb $targetWebUrl -Path $backupPath -IncludeUserSecurity -NoFileCompression
}

Vorteile dieses Lösungsansatzes

  • Sehr schlanke und schnelle Lösung
  • Spart im Vergleich zu einer manuellen Migration der Listen und Bibliotheken mehrere Stunden Arbeit
  • Alle Versionen und Berechtigungen können übernommen werden
  • Es wird ein Standard-Tool von Microsoft verwendet
  • Es muss keine zusätzliche Software evaluiert, installiert oder lizenziert werden
  • Da alle Listen als XML-Dateien abgebildet werden, können, falls gewünscht, kleinere Korrekturen durchgeführt werden, die sonst umständlich bis unmöglich wären (z.B. löschen von beschädigten Spalten oder fehlenden Feldtypen am Zielort) – mit entsprechender Vorsicht!

Einschränkungen dieses Lösungsansatzes

  • Unterwebsites (Subsites) müssen einzeln exportiert und wieder importiert werden
  • Website-Einstellungen und Workflow-Verlauf werden nicht übernommen
Dominic Büchler
Dominic Büchler

SharePoint Consultant

Langäulistrasse 62
9470 Buchs SG, Schweiz

Telefon +41 81 750 67 84
dominic.buechler@2sic.com

 

Daniel Mettler

Der Lebensweg, wie auch der berufliche Werdegang von Daniel Mettler ist ungewöhnlich. Er ist im Dschungel von Indonesien aufgewachsen und erlernte bereits im jugendlichen Alter von 12 die Programmiersprache Basic. Heute, mit erst 40 Jahren, kann er zurückblicken auf bereits 20 Jahre Erfolgsgeschichte – er ist der Inhaber (Gründer) der 2sic Internet Solutions GmbH (CH und FL), CEO von einem 20-köpfigen Team von Web-Spezialisten mit über 1000 DNN Projekten. Nennenswert ist auch, dass er der leitende Architekt von 2sxc ist, einem Open-Source Modul für die Erstellung von attraktivem Inhalt und DNN Applikationen.

Lesen Sie mehr Beiträge von Daniel Mettler

Buschtrommeln Erhalte wertvolle Tipps, Anleitungen und Infos

Einfach E-Mail-Adresse eingeben und die neusten Nachrichten, Updates, Anleitungen und Tipps von 2sic und rund um den digitalen Dschungel erhalten.

Social Network Oder/und folge uns auf unseren anderen sozialen Kanälen