Smarter Business Solutions Logo
SMARTER Business Solutions
Office365 SharePoint Blog

ShareGate-Attribute nach Migration wiederherstellen

Nach einer ShareGate-Migration setzt dieses PowerShell-Skript die Attribute "Erstellt" und "Geändert" auf einem lokalen FileShare zuverlässig wieder zurück.

5 Min Read

Viele kennen das Problem: Eine ShareGate-Migration steht an, doch nach dem Kopieren auf ein lokales FileShare tragen alle Dateien das aktuelle Migrationsdatum. Die Attribute „Erstellt“ und „Geändert“ spiegeln damit nicht mehr den tatsächlichen Bearbeitungsstand wider. Mit einem schlanken PowerShell-Skript lässt sich der ursprüngliche Zeitstempel jedoch schnell wiederherstellen.

Warum ShareGate die Zeitstempel überschreibt

Beim Export von Dateien aus SharePoint Online oder OneDrive werden die ursprünglichen Metadaten zwar in einem CSV gespeichert, aber nicht automatisch auf das Zielsystem übertragen. Kopierst du die Dateien schlicht via Explorer oder Kopier-Job, vergibt NTFS neue Zeitstempel. Genau hier setzt das ShareGate-CSV an, weil es alle benötigten Informationen für „Erstellt“ und „Geändert“ enthält.

CSV aus ShareGate exportieren

ShareGate CSV mit Erstellungs- und Änderungsdaten

Das CSV listet pro Datei den Zielpfad sowie die ursprünglichen Zeitstempel. Mit PowerShell lässt sich diese Tabelle bequem zeilenweise lesen und den lokalen Dateien zuordnen.

PowerShell-Skript für Erstellt- und Geändert-Attribute

Vorbereitung

Lege das ShareGate-CSV auf dem Fileserver ab und notiere dir den Wurzelordner, in dem die migrierten Dateien liegen. Passe anschließend die beiden Pfade im Skript an deine Umgebung an.

Skript ausführen

$csv = Import-Csv "E:\Export\ShareGateAttributes.csv" -Delimiter ';'
$RootFolder = "E:\ShareGate Export\"

# Process each line from the CSV
$csv | ForEach-Object {
    # Normalize the ShareGate destination path for NTFS
    $filePath = $RootFolder + $_.DestinationPath.Replace("/", "\")

    try {
        (Get-Item $filePath).CreationTime = Get-Date $_.Created
        (Get-Item $filePath).LastWriteTime = Get-Date $_.Modified
    }
    catch {
        Write-Error $_ -BackgroundColor Red
    }
}

Das Skript liest jede Zeile, rechnet den ShareGate-Zielpfad in einen gültigen Windows-Pfad um und weist anschließend die ursprünglichen Zeitstempel zu.

Funktionsweise im Detail

  1. Import-Csv lädt die Datei und macht die Spalten als Eigenschaften verfügbar.
  2. Im ForEach-Object wird pro Zeile das lokale File mit Get-Item geholt.
  3. CreationTime und LastWriteTime bekommen die Werte aus den Spalten Created und Modified.
  4. Fehler, etwa bei fehlenden Dateien, landen in der Konsole und können gezielt behoben werden.

Mit wenigen Zeilen PowerShell bringst du damit die ursprünglichen Metadaten zuverlässig zurück und erfüllst Auditing- oder Compliance-Anforderungen nach einer Migration.

Schlagwörter

#FileShare #Migration #O365 #PowerShell #SharePoint

Bereit, Ihr SharePoint zu transformieren?

Lassen Sie unsere Experten Ihnen helfen, die in diesem Artikel besprochenen Lösungen umzusetzen.