Mithilfe von PowerShell zu Microsoft Office SharePoint Online migrieren
In diesem Artikel werden die neuen PowerShell-Cmdlets behandelt, die auf der Migrations-Engine des SharePoint-Migrationstools (SPMT) basieren. Sie können verwendet werden, um Dateien aus lokalen SharePoint 2010- und SharePoint 2013-Dokumentbibliotheken und Listenelementen sowie Dateifreigaben nach Microsoft 365 zu verschieben. Informationen zu allen aktuellen PowerShell-Cmdlets im Zusammenhang mit der SharePoint-Migration finden Sie in der Cmdlet-Referenz zum Microsoft SharePoint-Migrationstool.
Die PowerShell-Cmdlets weisen dieselbe Funktionalität wie das SharePoint-Migrationstool auf.
Hinweis
Diese PowerShell-Cmdlets sind derzeit nicht für Benutzer von Office 365 verfügbar, die von 21Vianet in China betrieben werden.
Systemanforderungen
Empfohlene Anforderungen für optimale Leistung*
Beschreibung | Empfehlung |
---|---|
CPU | 64-Bit-Prozessor mit vier Kernen oder besser |
RAM | 16 GB |
Lokaler Speicher | Festplatte: 150 GB freier Speicherplatz |
Betriebssystem | Windows Server 2016 Standard oder Datacenter Windows Server 2012 R2 Windows 10-Client .NET Framework 4.6.2 |
Microsoft Visual C++ 2015 Redistributable | Für OneNote-Migration erforderlich. |
Wichtig
PowerShell 5.0x und .NET Framework 4.6.2 oder höher sind erforderlich, um die Migration von Dateipfaden mit bis zu 400 Zeichen zu unterstützen.
Mindestanforderungen (Leistungseinbußen sind zu erwarten)
Beschreibung | Mindestanforderung |
---|---|
CPU | 64-Bit-Prozessor mit 2 Kernen und 1,4 GHz oder besser |
RAM | 8 GB |
Lokaler Speicher | Festplatte: 150 GB freier Speicherplatz |
Netzwerkkarte | Hochgeschwindigkeits-Internetverbindung |
Betriebssystem | Windows Server 2008 R2 Windows 7 Windows 8 oder 8.1 .NET Framework 4.6.2 |
Microsoft Visual C++ 2015 Redistributable | Für OneNote-Migration erforderlich. |
PowerShell | PowerShell 5.x ist erforderlich, um die Migration von Dateipfaden mit bis zu 400 Zeichen zu unterstützen. PowerShell 6.0 oder höher wird nicht unterstützt. |
Bevor Sie beginnen:
Stellen Sie Ihr Microsoft 365 entweder mit Ihrem vorhandenen Active Directory oder einer der anderen Optionen zum Hinzufügen von Konten zu Microsoft 365 bereit. Weitere Informationen finden Sie unter Microsoft 365-Integration in lokale Umgebungen und Hinzufügen von Benutzern zu Microsoft 365 Apps for Business.
Öffnen Sie den Ordner:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell
Stellen Sie sicher, dass Sie DLLs besitzen. Wenn Sie OneDrive verwenden, müssen Sie möglicherweise den WindowsPowershell-Ordner in OneDrive/Dokumente kopieren.
Führen Sie von diesem Ort aus den folgenden PowerShell-Befehl aus.
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Erstellen und Initialisieren einer Migrationssitzung
- Register-SPMTMigration
Dieses Cmdlet erstellt und initialisiert dann eine Migrationssitzung. Die Initialisierung konfiguriert Migrationseinstellungen auf Sitzungsebene. Wenn keine bestimmten Einstellungsparameter definiert sind, werden Standardeinstellungen verwendet. Nachdem eine Sitzung registriert wurde, können Sie der Sitzung eine Aufgabe hinzufügen und die Migration starten.
Hinzufügen einer Migrationsaufgabe
- Add-SPMTTask
Verwenden Sie dieses Cmdlet, um der registrierten Migrationssitzung eine neue Migrationsaufgabe hinzuzufügen. Derzeit sind drei verschiedene Arten von Aufgaben zulässig: Dateifreigabeaufgabe, SharePoint-Aufgabe und JSON-definierte Aufgabe. Hinweis: Doppelte Aufgaben sind nicht zulässig.
Entfernen einer Aufgabe
- Remove-SPMTTask
Verwenden Sie dieses Cmdlet, um eine vorhandene Migrationsaufgabe aus der registrierten Migration zu entfernen.
Starten der Migration
- Start-SPMTMigration
Dieses Cmdlet startet die registrierte SPMT-Migration.
Zurückgeben des Objekts der aktuellen Sitzung
- Get-SPMTMigration
Gibt das -Objekt der aktuellen Sitzung zurück. Dieses Cmdlet enthält die status der aktuellen Aufgaben und aktuellen Einstellungen auf Sitzungsebene. Aktuelle status umfasst Folgendes:- Anzahl gescannter Dateien
- Anzahl migrierter Dateien
- Migrationsfehlermeldungen
Beenden der aktuellen Migration
- Stop-SPMTMigration
Durch dieses Cmdlet wird die aktuelle Migration abgebrochen.
Anzeigen der Migrationsstatusdetails in der Konsole
- Show-SPMTMigration
Wenn Sie die Migration im NoShow-Modus starten, werden beim Ausführen des Cmdlets Show-SPMTMigration die Aufgaben-ID, der Speicherort der Datenquelle, der Zielspeicherort und der migrationsbasierte status in der Konsole angezeigt. Durch Drücken von STRG+C wird in den NoShow-Modus zurückgerufen.
Entfernen der Migrationssitzung
- Unregister-SPMTMigration
Verwenden Sie dieses Cmdlet, um die Migrationssitzung zu löschen.
Beispielszenarien
Beispiel 1: DER IT-Administrator fügt eine lokale SharePoint-Aufgabe hinzu und startet die Migration im Hintergrund.
#Define SharePoint 2013 data source#
$SourceSiteUrl = "http://YourOnPremSite/"
$OnPremUserName = "Yourcomputer\administrator"
$OnPremPassword = ConvertTo-SecureString -String "OnPremPassword" -AsPlainText -Force
$SPCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $OnPremUserName, $OnPremPassword
$SourceListName = "SourceListName"
#Define SharePoint target#
$SPOUrl = "https://contoso.sharepoint.com"
$UserName = "admin@contoso.onmicrosoft.com"
$PassWord = ConvertTo-SecureString -String "YourSPOPassword" -AsPlainText -Force
$SPOCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $PassWord
$TargetListName = "TargetListName"
#Define File Share data source#
$FileshareSource = "YourFileShareDataSource"
#Import SPMT Migration Module#
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
#Register the SPMT session with SharePoint credentials#
Register-SPMTMigration -SPOCredential $SPOCredential -Force
#Add two tasks into the session. One is SharePoint migration task, and another is File Share migration task.#
Add-SPMTTask -SharePointSourceCredential $SPCredential -SharePointSourceSiteUrl $SourceSiteUrl -TargetSiteUrl $SPOUrl -MigrateAll
Add-SPMTTask -FileShareSource $FileshareSource -TargetSiteUrl $SPOUrl -TargetList $TargetListName
#Start Migration in the console. #
Start-SPMTMigration
Beispiel 2: Der IT-Administrator möchte die Migration aus dem Hintergrund "NoShow-Modus" in den Vordergrund stellen und unter dem Cmdlet ausführen, damit der Migrationsfortschritt in der Konsole angezeigt wird.
Show-SPMTMigration
Beispiel 3: IT-Admin möchte eine Massenmigration durchführen, indem eine .csv-Datei geladen wird. In diesem Beispiel ist die Beispieldatei „SPMT.csv“.
Load CSV;
$csvItems = import-csv "C:\spmt.csv" -Header c1,c2,c3,c4,c5,c6
ForEach ($item in $csvItems)
{
Write-Host $item.c1
Add-SPMTTask -FileShareSource $item.c1 -TargetSiteUrl $item.c4 -TargetList $item.c5 -TargetListRelativePath $item.c6
}
In der Datei „spmt.csv“ sind zwei Migrationsaufgaben definiert.
D:\MigrationTest\Files\Average_1M\c,,,https://SPOSite.sharepoint.com,Documents,Test
C:\work\Powershell\negative,,,https://SPOSite.sharepoint.com/,Documents,DocLibrary_SubfolderName
Code-Schnipsel für Massenmigration durch Laden einer JSON-Datei:
#Load JSON:
$jsonItems = Get-Content -Raw -Path "C:\spmt.json" | ConvertFrom-Json
ForEach ($taskItem in $jsonItems.Tasks)
{
$jsonString = ConvertTo-Json $taskItem -Depth 100
Add-SPMTTask -JsonDefinition $jsonString -SharePointSourceCredential $onpremCredential
}
In der Datei „spmt.json“ sind drei Migrationsaufgaben definiert.
{
"Tasks":[
{
"SourcePath":"http://On-prem/sites/test",
"TargetPath":"https://YourSPO.sharepoint.com",
"Items":{
"Lists":[
{
"SourceList":"list-01",
"TargetList":"list-01"
}
],
"SubSites":[
]
}
},
{
"SourcePath":"http://On-prem/sites/test",
"TargetPath":"https://YourSPO.sharepoint.com",
"Items":{
"Lists":[
{
"SourceList":"list-02",
"TargetList":"list-02"
}
],
"SubSites":[
]
}
},
{
"SourcePath":"http://On-prem/sites/test",
"TargetPath":"https://YourSPO.sharepoint.com",
"Items":{
"Lists":[
{
"SourceList":"doclib-01",
"TargetList":"doclib-01"
}
],
"SubSites":[
]
}
}
]
}
Beispiel 4: Migrationsfortschritt anzeigen
Diese Beispiele zeigen, wie Sie den Fortschritt Ihres Migrationsprojekts anzeigen. Get-SPMTMigration gibt das Objekt der aktuellen Sitzung zurück. Es enthält den aktuellen Aufgabenstatus und die aktuellen Einstellungen auf Sitzungsebene. Der Status der aktuellen Aufgaben umfasst Folgendes:
- Die Anzahl der gescannten Dateien.
- Die Anzahl der herausgefilterten Dateien.
- Die Anzahl der migrierten Dateien.
- Die Anzahl der fehlerhaften Dateien.
- Der Migrationsfortschritt der aktuellen Aufgabe (0 ~ 100).
- Die aktuelle Aufgabe status.
- Migrationsfehlermeldungen, falls vorhanden.
# Start migration in the background
Start-SPMTMigration -NoShow
# Get the object of current migration
$session = Get-SPMTMigration
# Query migration status every 5 seconds until migration is finished
while ($session.Status -ne "Finished")
{
Write-Host $session.Status
# Query migration progress of each tasks
Foreach ($taskStatus in $session.StatusOfTasks)
{
$taskStatus.MigratingProgressPercentage
}
Start-Sleep -Seconds 5
}