Hochladen lokaler Inhalte in SharePoint mithilfe von PowerShell-CmdletsUpload on-premises content to SharePoint using PowerShell cmdlets

Hinweis

Das SharePoint-Migrationstool (SPMT) hilft bei der Vereinfachung Ihres Migrationsprozesses. Das SPMT funktioniert ähnlich wie ein Assistent und führt Sie durch den Migrationsprozess Ihrer SharePoint-Server-Teamwebsites oder Ihrer Netzwerk-Dateifreigaben nach Microsoft 365. Es ist für alle Benutzer von Microsoft 365 verfügbar. SPMT herunterladen.The SharePoint Migration Tool (SPMT) helps simplify your migration process. SPMT provides a wizard-like experience to guide you through migrating SharePoint Server team sites or network file shares to Microsoft 365. It is available to all Microsoft 365 users: Download SPMT.

Wichtig

Das SharePoint-Migrationstool steht nicht für Benutzer von Office 365, betrieben von 21Vianet in China, zur Verfügung.The SharePoint Migration Tool isn't currently available for users of Office 365 operated by 21Vianet in China.

In diesem Artikel wird die Verwendung von PowerShell-Cmdlets für die SharePoint-Migration zur Migration von Inhalten von einer lokalen Dateifreigabe nach Microsoft 365 erläutert.This article shows how to use SharePoint Migration PowerShell cmdlets to migrate content from an on-premises file share to Microsoft 365.

PowerShell-Cmdlets für die SharePoint-Migration dienen zum Verschieben von lokalen Inhalten aus Dateifreigaben.SharePoint Migration PowerShell cmdlets are designed to move on-premises content from file shares. Sie erfordern minimale CSOM-Aufrufe und verwenden den temporären Azure BLOB-Speicher, um große Datenmigrationen zu verarbeiten.They require minimal CSOM calls and use Azure temporary Blob Storage to handle large migrations of data.

VoraussetzungenPrerequisites

  • Unterstützte Betriebssysteme:Supported operating systems:

    • Windows 7 Service Pack 1Windows 7 Service Pack 1
    • Windows 8Windows 8
    • Windows Server 2008 R2 SP1Windows Server 2008 R2 SP1
    • Windows Server 2008 Service Pack 2Windows Server 2008 Service Pack 2
    • Windows Server 2012, Windows Server 2012 R2Windows Server 2012, Windows Server 2012 R2
  • Windows PowerShell 4.0Windows PowerShell 4.0

Hinweis

Berechtigungen: Sie müssen ein Websitesammlungsadministrator auf der Zielwebsite sein.Permissions: You must be a site collection administrator on the sit that you're targeting.

VorbereitungBefore you begin

Schritt 1: Installieren der SharePoint Online-VerwaltungsshellStep 1: Install the SharePoint Online Management Shell

  1. Deinstallieren Sie alle vorherigen Versionen der SharePoint Online-Verwaltungsshell.Uninstall all previous versions of the SharePoint Online Management Shell.

  2. Sie müssen die SharePoint Online-Verwaltungsshell herunterladen und installieren.Download and install SharePoint Online Management Shell.

  3. Öffnen Sie die SharePoint Online-Verwaltungsshell, und wählen Sie Als Administrator ausführen.Open SharePoint Online Management Shell, and select Run as Administrator.

Schritt 2: Einrichtung des ArbeitsverzeichnissesStep 2: Set up your working directory

Bevor Sie mit der Migration beginnen, müssen Sie Ihr Arbeitsverzeichnis mit zwei leeren Ordnern erstellen.Before you start the migration, you need to set up your working directory with two empty folders. Für diese Ordner ist nicht viel Speicherplatz erforderlich, da sie nur XML enthalten werden.These folders don't need much disk space, as they'll only contain XML.

  1. Erstellen Sie einen Ordner für temporäre Pakete.Create a temporary package folder.

  2. Erstellen Sie einen Ordner für endgültige Pakete.Create a final package folder.

Schritt 3: Festlegen der Speicherorte und AnmeldeinformationenStep 3: Determine locations and credentials

Ermitteln Sie Ihre Anmeldeinformationen und die Speicherorte der Quelldateien, der Zieldateien und für das Web.Identify your credentials and the locations of your source files, target files, and web.

Öffnen Sie auf Ihrem lokalen Computer die SharePoint Online-Verwaltungsshell.On your local computer, open SharePoint Online Management Shell. Führen Sie die folgenden Befehle aus, fügen Sie jedoch Ihre eigenen Werte ein:Run the following commands, but insert your values:

$cred = (Get-Credential admin@contoso.com)
$sourceFiles = '\\fileshare\users\charles'
$sourcePackage = 'C:\migration\CharlesDocumentsPackage_source'
$targetPackage = 'C:\migration\CharlesDocumentsPackage_target'
$targetWeb = 'https://contoso-my.sharepoint.com/personal/charles_contoso_com'
$targetDocLib = 'Documents'

New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters

Schritt 4: Erstellen eines neuen Inhaltspakets aus einer lokalen DateifreigabeStep 4: Create a new content package from an on-premises file share

In diesem Schritt erstellen Sie ein neues Migrationspaket aus einer Dateifreigabe.In this step, you create a new migration package from a file share. Um ein Inhaltspaket aus einer Dateifreigabe zu erstellen, liest der New-SPOMigrationPackage-Befehl die Liste der Inhalte aus, die vom Quellpfad verwendet werden, und erstellt eine XML zum Durchführen der Migration.To create a content package from a file share, the New-SPOMigrationPackage command reads the list of content targeted by the source path and generates XML to do the migration.

Die folgenden Parameter sind erforderlich, sofern sie nicht als optional gekennzeichnet sind:The following parameters are required unless marked optional:

  • SourcefilesPath: Verweist auf den Inhalt, den Sie migrieren möchten.SourcefilesPath: Points to the content you plan to migrate.

  • OutputPackagePath: Verweist auf den temporären Ordner.OutputPackagePath: Points to your Temporary folder.

  • TargetWebUrl: Verweist auf Ihre Zielwebsite.TargetWebUrl: Points to your destination web.

  • TargetDocumentLibraryPath: Verweist auf die Dokumentbibliothek innerhalb der Website.TargetDocumentLibraryPath: Points to the document library inside the web.

  • IgnoreHidden: Ausgeblendete Dateien überspringen (optional).IgnoreHidden: Skip hidden files (optional).

  • ReplaceInvalidCharacters: Korrigiert nach Möglichkeit ungültige Zeichen (optional).ReplaceInvalidCharacters: Fix invalid characters when possible (optional).

Beispiel:Example:

Das folgende Beispiel zeigt, wie ein neues Paket aus einer Dateifreigabe erstellt wird.The following example shows how to create a new package from a file share. Dabei werden ausgeblendete Dateien ignoriert und nicht unterstützte Zeichen in einem Datei- oder Ordnernamen ersetzt.It ignores hidden files and replaces unsupported characters in file/folder names.

    New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters`

Schritt 5: Konvertieren des Inhaltspakets für die ZielwebsiteStep 5: Convert the content package for your target site

Verwenden Sie den Befehl ConvertTo-SPOMigrationTargetedPackage, um das in Ihrem temporären Ordner generierte SML zu konvertieren.Use the ConvertTo-SPOMigrationTargetedPackage command to convert the SML generated in your temporary folder. Dadurch wird ein neuer Satz gezielter Migrationspaket-Metadatendateien im Zielverzeichnis gespeichert.It saves a new set of targeted migration package metadata files to the target directory. Dies ist das letzte Paket.This is the final package.

Hinweis

Die Anmeldeinformationen Ihres Zielwebsitesammlungs-Administrators dienen zum Sammeln von Daten, mit denen eine Verbindung zur Datenwebsitesammlung hergestellt wird.Your target site collection administrator credentials are used to gather data to connect to the data site collection.

Es gibt sechs erforderliche Eingabeparameter (andere sind optional):There are six required parameters to enter (others are optional):

  • ParallelImport: Weist das Tool zur Optimierung der Leistung durch Verwendung paralleler Threads an.ParallelImport: Instructs the tool to use parallel thread optimize performance.

  • SourceFiles: Verweist auf den Verzeichnisort, an dem sich die Quellinhaltsdateien des Pakets befinden.SourceFiles: Points to the directory location of the package's source content files.

  • SourcePackagePath: Verweist auf den temporären Paketordner.SourcePackagePath: Points to your temporary package folder.

  • OutputPackagePath: Verweist auf den endgültigen Paketordner.OutputPackagePath: Points to your final package folder.

  • Credentials: SharePoint-Anmeldeinformationen, die Administratorrechte auf der Zielwebsite besitzen.Credentials: SharePoint credential that has admin rights to the destination site.

  • TargetWebUrl: URL der Zielwebsite.TargetWebUrl: URL of your destination web.

  • TargetDocumentLibraryPath: Pfad zu Ihrer Zielbibliothek.TargetDocumentLibraryPath: Path to your destination library.

Beispiel:Example:

In diesem Beispiel wird gezeigt, wie ein Paket in ein Zielpaket konvertiert wird, indem Daten in der Zielwebsitesammlung nachgeschlagen werden.This example shows how to convert a package to a targeted one by looking up data in the target site collection. Zur Steigerung der Leistung der Dateifreigabemigration wird dabei der Parameter -ParallelImport verwendet.To boost file share migration performance, it uses the -ParallelImport parameter.

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -ParallelImport -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib`

Schritt 6: Übermitteln der zu importierenden InhalteStep 6: Submit content to import

In diesem Schritt erstellt der Befehl Invoke-SPOMigrationEncryptUploadSubmit einen neuen Migrationsauftrag in der Zielwebsitesammlung und gibt dann eine GUID zurück, die die JobID darstellt. In this step, the Invoke-SPOMigrationEncryptUploadSubmit command creates a new migration job in the target site collection and then returns a GUID that represents the JobID. Mit diesem Befehl werden auftragsbezogene verschlüsselte Quelldateien und Manifeste in temporären Azure-Blobspeicher hochgeladen.This command uploads encrypted source files and manifests into temporary Azure Blob Storage per job.

Es müssen vier erforderliche Parameter eingegeben werden.There are four required parameters to enter. Andere sind optional.Others are optional.

  • TargetwebURL: Verweist auf die Zielwebsite.TargetwebURL: Points to the web of the destination.

  • SourceFilesPath: Verweist auf die zu importierenden Dateien.SourceFilesPath: Points to the files to import.

  • SourcePackagePath: Verweist auf das endgültige Manifest der zu importierenden Dateien.SourcePackagePath: Points to the final manifest of the files to import.

  • Credentials: die SharePoint-Anmeldeinformationen, die Websitesammlungsadministrator-Rechte auf der Zielwebsite besitzen.Credentials: The SharePoint credentials that have Site Collection Administrator rights to the destination site.

Beispiel 1:Example 1:

Dieses Beispiel zeigt, wie Paketdaten zum Erstellen eines neuen Migrationsauftrags übermittelt werden.This example shows how to submit package data to create a new migration job.

 $job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb

Beispiel 2:Example 2:

Dieses Beispiel zeigt, wie Paketdaten zum Erstellen neuer Migrationsaufträge für den parallelen Import übermittelt werden.This example shows how to submit package data to create new migration jobs for parallel import.

$jobs = $finalPackages | % {Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $_.FilesDirectory.FullName -SourcePackagePath $_.PackageDirectory.FullName -Credentials $cred -TargetWebUrl $targetWeb}

Für jeden übermittelten Auftrag gibt das Invoke-Cmdlet diese Eigenschaften als Teil eines Auftrags zurück:For each submitted job, the Invoke cmdlet returns these properties as part of a job:

  • JobId: ID des Auftrags in SharePoint Online.JobId: ID of the job in SPO.

  • ReportingQueueUri: SharePoint Azure-Warteschlange, in der die Echtzeitstatusmeldungen der Migration gespeichert werden.ReportingQueueUri: SharePoint Azure queue that stores the real-time progress messages of the migration.

  • Encryption: der Verschlüsselungsschlüssel und die Methode, die zum Hochladen der Inhalte nach Azure verwendet werden.Encryption: Encryption key and method used for uploading the content to Azure. Dieser Schlüssel ist erforderlich, wenn Sie die Warteschlangenmeldungen entschlüsseln und Protokolle importieren.This key is required when you decrypt the queue messages and import logs.

Wenn Sie Ihr eigenes Azure-Speicherkonto nutzen, um Inhalte in Ihren Speicher hochzuladen, verwenden Sie Set-SPOMigrationPackageAzureSource und Submit-SPOMigrationJob.If you're using your own Azure Storage account to upload content into your storage, use Set-SPOMigrationPackageAzureSource and Submit-SPOMigrationJob.

Wichtig

Denken Sie bei der Verwendung Ihres Azure-Speichers daran, dass möglicherweise Bandbreitengebühren anfallen.If you choose to use your Azure Storage, you could incur Bandwidth charges. Die Gebühren hängen vom Typ Ihres Azure-Angebots und vom Migrationsumfang ab.Charged would depend on your Azure offer type and migration size. Allgemeine Preisangaben finden Sie unter Bandbreiten-Preise.For general prices, refer to bandwidth pricing.

(Optional) Schritt 7: Verarbeiten und Überwachen Ihrer SharePoint-Migration(Optional) Step 7: Process and monitor your SharePoint migration

Nachdem der Auftrag übermittelt wurde, interagieren nur Azure und SharePoint zum Abrufen und Migrieren der Inhalte ans Ziel.After the job is submitted, only Azure and SharePoint interact to fetch and migrate the content to the destination. Dieser Vorgang basiert auf Zeitgeberaufträgen, was bedeutet, dass eine Einreihung in eine Warteschlange auf Grundlage des Eingehens erfolgt.This process is timer-job based, which means it's in a queue on a first-come, first-served basis. Durch diesen Vorgang wird nicht verhindert, dass die gleiche Person andere Aufträge in die Warteschlange setzt.This process doesn't prevent the same person from queuing other jobs.

Wenn keine anderen Aufträge ausgeführt werden, kann es zu einer Verzögerung von 1 Minute kommen.If no other jobs running are running, there may be a 1-minute delay.

Auftragsstatus überprüfenCheck job status

Sie können den Status eines Auftrags überprüfen, indem Sie das in Schritt 6 zurückgegebene EncryptionKey-Element verwenden, um die im Azure-Speicherkonto veröffentlichten Echtzeit-Updates anzuzeigen.To check the status of your job, use the EncryptionKey returned in step 6 to view the real-time updates posted in the Azure Storage account.

Protokolle anzeigenView logs

Wenn Sie Ihr eigenes Azure Storage-Konto verwenden, können Sie die Protokolle aller Ereignisse anzeigen, die im Manifest-Container im Azure-Speicher aufgetreten sind.If you're using your own Azure Storage account, you can view logs of everything that happened in the manifest container in the Azure Storage. Zu diesem Zeitpunkt können diese Containern sicher gelöscht werden, wenn Sie sie nicht als Sicherung in Azure beibehalten möchten.At this stage, it's safe to delete those containers, if you don't want to keep them as backup in Azure.

Wenn Fehler oder Warnungen aufgetreten sind, werden .err- oder .won-Dateien im Manifest-Container erstellt.If there were errors or warnings, .err or .won files are created in the manifest container.

Wenn Sie den temporären Azure-Speicher verwenden, der mit Invoke-SPOMigrationEncryptUploadSubmit in Schritt 6 erstellt wurde, kann die SAS-URL des Importprotokolls durch Entschlüsseln der Azure-Warteschlangennachricht mit dem "Event"-Wert JobLogFileCreate abgerufen werden.If you're using the temporary Azure Storage created by Invoke-SPOMigrationEncryptUploadSubmit in step 6, you can get the import log SAS URL by decrypting the Azure queue message with the "Event" value JobLogFileCreate. Sie können die SAS-URL des Importprotokolls verwenden, um die Protokolldatei herunterzuladen und sie mit dem Verschlüsselungsschlüssel zu entschlüsseln, der in Schritt 6 zurückgegeben wurde.You can use the import log SAS URL to download the log file and decrypt it with the encryption key returned in step 6.

Skripting-Szenarien zur WiederverwendungScripting scenarios for reuse

Verwenden Sie das folgende Beispielskript.Use the following sample script. Es umfasst die Schritte von der Ermittlung der Speicherorte und Anmeldeinformationen über die Übermittlung der Paketdaten bis hin zum Erstellen eines neuen Migrationsauftrags.It includes the steps from determining your locations and credentials, to submitting your package data, to creating a new migration job.

$userName = "admin@contoso.onmicrosoft.com"
$sourceFiles = "d:\data\documents"
$packagePath = "d:\data\documentPackage"
$spoPackagePath = "d:\data\documentPackageForSPO"
$targetWebUrl = "https://contoso.sharepoint.com/sites/finance"
$targetLibrary = "Documents"
$cred = Get-Credential $userName
  
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $packagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -IgnoreHidden -ReplaceInvalidCharacters

Konvertieren eines Pakets in ein Zielpaket, indem Daten in der Zielwebsitesammlung nachgeschlagen werdenConvert the package to a targeted one by looking up data in target site collection

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $packagePath -OutputPackagePath $spoPackagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -Credentials $cred

Übermitteln der Paketdaten zum Erstellen eines neuen MigrationsauftragsSubmit the package data to create the migration job

$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $spoPackagePath -Credentials $cred -TargetWebUrl $targetWebUrl
  
This sample shows how to get the returned information of a job, which comes in the form of a GUID.
  
```powershell
$job = $jobs[0]
$job.JobId
Guid
----
779c4b3b-ec24-4705-bb58-c38f4329418c

Dieses Beispiel zeigt, wie Sie $job.ReportingQueueURi.AbosoluteUri abrufen können.This sample shows how to get the $job.ReportingQueueURi.AbosoluteUri.

# To obtain the $job.ReportingQueueUri.AbsoluteUri
https://spodm1bn1m013pr.queue.core.windows.net/953pq20161005-f84b9e51038b4139a179f973e95a6d6f?sv=2014-02-14&sig=TgoUcrMk1Pz8VzkswQa7owD1n8TvLmCQFZGzyV7WV8M%3D&st=2016-10-04T07%3A00%3A00Z&se=2016-10-26T07%3A00%3A00Z&sp=rap

In diesem Beispiel wird veranschaulicht, wie Sie den Verschlüsselungsschlüssel und die Beispielrückgabe abrufen können.This sample shows how to obtain the encryption key and the sample return.

$job.Encryption
EncryptionKey                                       EncryptionMethod
-----------------------                            ------------------
{34, 228, 244, 194...}                              AES256CBC

Wichtig

Alle Nachrichten werden in der Warteschlange verschlüsselt.All messages are encrypted in the queue. Zum Auslesen von ReportingQueue benötigen Sie den EncryptionKey.To read from the ReportingQueue, you must have the EncryptionKey.

Bewährte Methoden und EinschränkungenBest practices and limitations

BeschreibungDescription EmpfehlungRecommendation
PaketgrößePackage size 10–20 GB10-20 GB
Verwenden Sie die -ParallelImport-Option für die Migration von Dateifreigaben, bei der große Pakete automatisch in kleinere aufgeteilt werden.Use the -ParallelImport switch for file share migration, which automatically splits the large package into smaller ones.
DateigrößeFile size
2 GB2 GB
ZielgrößeTarget size
Die Zielwebsite sollte für Benutzer nicht zugänglich sein, bis die Migration abgeschlossen ist.The target site should remain non-accessible to users until migration is complete
SharePoint-BeschränkungenSharePoint limits
Dienstbeschränkungen in SharePoint für Microsoft 365Service limits in SharePoint for Microsoft 365

Azure-BeschränkungenAzure limits

RessourceResource Standard/BeschränkungDefault/Limit
TB pro SpeicherkontoTB per storage account
500500
Max. Größe einzelner Blob-Container, Tabellen oder Warteschlangen.Max size of single blob container, table, or queue.
500500
Maximale Anzahl von Blob-Containern, Blobs, Dateifreigaben, Tabellen, Warteschlangen, Entitäten oder Nachrichten pro Speicherkonto.Max number of blob containers, blobs, file shares, tables, queues, entities, or messages per storage account.
Die einzige Beschränkung beseht in der Kapazität von 500 TB des Speicherkontos.The only limit is the 500-TB storage account capacity.
Zieldurchsatz für einzelne BlobsTarget throughput for single blob
Bis zu 60 MB pro Sekunde, oder bis zu 500 Abfragen pro Sekunde.Up to 60 MB or 500 requests per second.

Cmdlet-Verweise sind für SharePoint OnlineCmdlet references are for SharePoint Online