fafbac3569b28641f6b3784f6f6974df6f526b23
Start-SPMigration
PowerShell-Skript fuer die Migration von SharePoint On-Premise Inhalten ueber das serverseitige Objektmodell.
Das Skript kann:
- Dokumentbibliotheken exportieren
- Dateien inklusive Metadaten exportieren
- normale SharePoint-Listen und deren Eintraege exportieren
- exportierte Inhalte wieder in ein Ziel-Web importieren
- Feldwerte ueber eine Mapping-CSV von Quell- auf Ziel-InternalNames abbilden
Voraussetzungen
- SharePoint On-Premise Server
- Ausfuehrung auf einem Server mit installiertem SharePoint PowerShell-Modul
- Berechtigungen auf Quell- und Ziel-Web
- PowerShell mit Zugriff auf
SharePointServer
Das Skript laedt intern:
Import-Module SharePointServer
Dateien im Projekt
Start-SPMigration.ps1: Hauptskript fuer Export und optionalen ImportFieldMapping.sample.csv: Beispiel fuer das Feldmapping
Exportierte Struktur
Beim Export entsteht unter -OutputPath folgende Struktur:
OutputPath
|-- Files
| |-- <Bibliothek>
| | |-- Unterordner
| | | |-- Dokument.pdf
| | | |-- Dokument.pdf.properties.json
|-- Lists
| |-- ListeA.json
|-- manifest.csv
Dateien
- Die Originaldatei wird in
Files\<Bibliothek>\...gespeichert. - Die Metadaten liegen direkt daneben als Sidecar-Datei:
Dateiname.ext.properties.json
Listen
- Pro Liste wird genau eine JSON-Datei unter
Lists\erzeugt. - Die Eintraege enthalten insbesondere:
ContentTypeIdFieldValuesFieldTextValuesFields
Wichtige Metadaten
Fuer den Import sind vor allem diese Informationen relevant:
FieldValuesFieldTextValuesContentTypeId- interne Feldnamen (
InternalName)
Der Name des Inhaltstyps wird bewusst nicht als fuehrende Importinformation verwendet, da er sich im Zielsystem unterscheiden kann.
Mapping-CSV
Format:
SourceInternalName;TargetInternalName
DHS2016Persdat;Persdat
DHS2016Dienstgrad;Dienstgrad
DHS2016SecurityClearance;SecurityClearance
Bedeutung:
SourceInternalName: interner Feldname aus dem ExportTargetInternalName: interner Feldname im Zielsystem
Parameter
Pflichtparameter
WebUrl: Quell-Web fuer den ExportOutputPath: Ausgabeordner fuer den Export
Exportparameter
IncludeHiddenLibraries: exportiert auch versteckte BibliothekenIncludeHiddenLists: exportiert auch versteckte ListenExportOnly: fuehrt nur den Export aus
Importparameter
TargetWebUrl: Ziel-Web fuer den ImportMappingCsvPath: CSV fuer FeldmappingImportFiles: importiert nur Dateien/BibliothekenImportLists: importiert nur ListenOverwriteFiles: ueberschreibt vorhandene Dateien beim Import
Hinweis:
- Wenn weder
ImportFilesnochImportListsgesetzt sind, werden beim Import beide Bereiche verarbeitet. - Wenn
ExportOnlygesetzt ist, wird kein Import gestartet.
Beispiele
Nur Export
.\Start-SPMigration.ps1 `
-WebUrl "http://sharepoint/sites/Quelle" `
-OutputPath "C:\Temp\SP-Export" `
-ExportOnly
Export und danach Import
.\Start-SPMigration.ps1 `
-WebUrl "http://sharepoint/sites/Quelle" `
-OutputPath "C:\Temp\SP-Export" `
-TargetWebUrl "http://sharepoint/sites/Ziel" `
-MappingCsvPath ".\FieldMapping.sample.csv"
Nur Dateien importrelevant ausfuehren
.\Start-SPMigration.ps1 `
-WebUrl "http://sharepoint/sites/Quelle" `
-OutputPath "C:\Temp\SP-Export" `
-TargetWebUrl "http://sharepoint/sites/Ziel" `
-MappingCsvPath ".\FieldMapping.sample.csv" `
-ImportFiles `
-OverwriteFiles
Nur Listen importrelevant ausfuehren
.\Start-SPMigration.ps1 `
-WebUrl "http://sharepoint/sites/Quelle" `
-OutputPath "C:\Temp\SP-Export" `
-TargetWebUrl "http://sharepoint/sites/Ziel" `
-MappingCsvPath ".\FieldMapping.sample.csv" `
-ImportLists
Aktuelles Verhalten beim Import
Dokumentbibliotheken
- Dateien werden in die gleichnamige Zielbibliothek importiert.
- Unterordner werden bei Bedarf angelegt.
- Metadaten werden anschliessend ueber das CSV-Mapping gesetzt.
Listen
- Listeneintraege werden neu angelegt.
- Feldwerte werden ueber
FieldValuesundFieldTextValuesgemappt.
Bekannte Einschraenkungen
- Zielbibliotheken und Ziellisten werden aktuell ueber den Titel aufgeloest.
- Listenanhaenge werden derzeit noch nicht physisch mit importiert.
- Ordner in normalen Listen werden beim Import derzeit uebersprungen.
- Sehr spezielle Feldtypen koennen je nach Farm-Konfiguration zusaetzliche Anpassungen benoetigen.
- Das Skript ist fuer SharePoint On-Premise mit serverseitigem Objektmodell gedacht, nicht fuer SharePoint Online.
Empfehlung
Zuerst immer mit -ExportOnly testen und die exportierten *.properties.json sowie die Listen-JSONs pruefen. Danach das Feldmapping vervollstaendigen und erst dann den kombinierten Export/Import gegen das Zielsystem laufen lassen.
Description
Languages
PowerShell
100%