SharePoint Objekte verschieben mit PowerShell

Diejenigen die einen lokalen Sharepoint im Netzwerk betreiben, stehen manchmal vor einer Herausforderung. Legt man eine Dokumentbibliothek oder eine Liste an und möchte diese danach verschieben, hat man ein Problem. Denn der Sharepoint bietet spartanische bis keine Möglichkeiten eine solche Sharepoint Liste verschieben zu können, zumindest nicht in eine andere Unter-Website. Doch manchmal führt kein Weg daran vorbei. Leider kann man aber nicht hunderte Dokumente einzeln herunterladen und mit diesen eine neue Dokumentenbibliothek anlegen. PowerShell bietet uns Gottseidank die rettende Lösung! SharePoint Objekte verschieben mit PowerShell ist kein Problem.

200degrees / Pixabay

SharePoint Objekte verschieben mit PowerShell

Ehrlich gesagt ist auch ein SharePoint Objekte verschieben mit PowerShell nicht möglich. In PowerShell haben wir aber die Möglichkeit mit dem Befehl Export-SpWeb Listen und Dokumentenbibliotheken zu exportieren und mit dem Befehl Import-SpWeb diese zu importieren.

Wichtig ist im Vornherein zu sagen, dass man sich immer die korrekte URL der Seite, beziehungsweise Liste oder Bibliothek, kopieren sollte. Oft ist der Name der Seite verschieden zur URL.

Objekte exportieren aus Sharepoint

Als erstes müssen wir die Dateien, beziehungsweise die kompletten Listen oder Bibliotheken exportieren. Hierzu steht uns der Grundbefehl Export-SpWeb zur Verfügung, welcher aber mehrere Parameter benötigt. Hier ein Beispiel:

Export-spweb https://intranet.your.domain -ItemUrl "Lists/UrlDerListe/" -IncludeUserSecurity -IncludeVersions All -path "C:\DeinVerzeichnis\DeinName.cmp" -nologfile

Natürlich lässt sich der Befehl auch kürzen, in dem man die URL zum Objekt direkt angibt:

Export-SpWeb https://intranet.your.domain/deine-liste/ -IncludeUserSecurity -IncludeVersions all -Path "C:\DeinVerzeichnis\DeinName.cmp" -NoLogFile

Sharepoint Objekte verschieben mit PowerShell

Parameter

Beschreibung

Sharepoint Site

Als erstes muss die Sharepoint Seite angegeben werden.

Beispiel: “https://intranet.your.domain

ItemUrl

Hier wird die URL der Liste oder der Bibliothek angegeben, die verschoben werden soll. Hier wird aber nur den Teil nach der Sharepoint Adresse angegeben.

Beispiel: “/meineSeite/meineListe/

IncludeUserSecurity

Der MS Sharepoint speichert Meta-Daten. Mit diesem Parameter werden diese mit exportiert.

Beispiel: “Änderungsdatum, Benutzer, Version, etc.

IncludeVersion

Wenn die Versionierung aktivert wurde und genutzt wird, werden mit diesem Parameter auch die alten Versionen der Dokumente exportiert.

Path

Hier wird der Pfad angegeben, an dem die CMP-Datei gespeichert werden soll.

Beispiel: “C:\DeinPfad\DeineDatei.cmp

NoLogFile

Wenn dieser Parameter angegeben wird, wird zur Aktion keine Log-Datei erstellt.

Nachdem der Befehl erfolgreich ausgeführt wurde, haben wir nun die komplette Struktur in dieser cmp-Datei. Nun sind wir mit dem Exportieren aus dem Sharepoint fertig.

Objekte importieren in Sharepoint

Nachdem wir nun die CMP-Datei erstellt haben, kann diese an einer anderen Stelle im Sharepoint importiert werden. Dafür nutzen wir nun Import-SpWeb. Hier wieder der PowerShell Befehl:

Import-SpWeb https://intranet.your.domain/unterseite/ -IncludeUserSecurity -path "C:\DeinVerzeichnis\DeinName.cmp" -nologfile

Auch beim Importieren in Sharepoint gibt es wieder verschiedene Parameter.

Parameter

Beschreibung

Ziel URL

Hier wird die URL zur Sharepoint-Seite angegeben, in welche die CMP-Datei importiert werden soll.

Beispiel: “https://intranet.your.domain/unterseite/

IncludeUserSecurity

Ist dieser Parameter angegeben, werden Meta-Daten mit importiert. Das funktioniert natürlich nur, wenn diese beim Exportieren inkludiert wurden.

Path

Pfad zur CMP-Datei, welche im ersten Schritt exportiert wurde und nun importiert werden soll.

Beispiel: “C:\DeinPfad\DeineDatei.cmp

NoLogFile

Wenn dieser Parameter angegeben wird, wird zur Aktion keine Log-Datei erstellt.

Nach dem Absetzen des Befehls in der Management Shell, also in Powershell, wurde nun die zuvor exportierte Liste oder Dokumenten-Bibliothek in die gewünschte Seite importiert.

Alte Objekte löschen

Wir haben nun das Quell-Objekt exportiert, jedoch existiert diese noch immer in der Sharepoint Seite. Diese sollte natürlich gelöscht werden. Hier kann man zwei verschiedene Wege gehen. Natürlich ist es möglich diese per Web-Oberfläche zu löschen. Aber auch hier kann uns PowerShell weiterhelfen:

$spwebobject = Get-SPWeb QuellUrl
$spwebobject.Lists["DeineListe"].Delete()
$spwebobject.Dispose()

Das SharePoint Objekte verschieben ist also mit Hilfe von PowerShell, beziehungsweise der Sharepoint Management Shell gar nicht so schwer. Ich hoffe wir konnten euch weiterhelfen.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments