We are provisioning users Onedrives at the moment, and we would like to upload their current Documents folders up to onedrive for the end users, has any one done this or seen a good guide?


1 Answer 1


You have a few different options for migration. If you are rolling out the OneDrive for Business client, you can redirect the Documents folder. This would allow new documents to be uploaded, but some additional work would be required to move the existing files over to the sync folder.

Using the sync client also allows user to take a self service approach and decide what to upload and keep versus a full archival migration. During a migration, many people do data audits to determine what is worth saving and what may be tossed or moved to a team site.

There are also a variety of tools available to help with migrations. Microsoft provides a PowerShell option for migration, and there are a variety of third-party options as well. Your choice of provider depends on the complexity of the migration.

(Disclosure: I worked on the Microsoft PowerShell migration tool)

# Run from the SharePoint Online Management Shell 
$creds = (Get-Credential [email protected])

$sourceFiles = 'C:\users\sam\Documents'
$sourcePackage = '\\server\share\sam\package'

$targetPackage = '\\server\share\sam\packageTarget'
$targetWeb = 'https://contoso-my.sharepoint.com/personal/sam_contoso_com'
$targetDocLib = 'Documents'

# Create new package from file share
New-SPOMigrationPackage `
    -SourceFilesPath $sourceFiles  `
    -OutputPackagePath $sourcePackage `

# Convert package to a targeted one by looking up data in target site collection
$convertedPackage = ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles `
    -SourcePackagePath $sourcePackage `
    -OutputPackagePath $targetPackage `
    -TargetWebUrl $targetWeb `
    -TargetDocumentLibraryPath $targetDocLib `
    -Credentials $creds

# Encrypt, upload to Azure, and submit the migration
$report  = Invoke-SPOMigrationEncryptUploadSubmit -MigrationSourceLocations $convertedPackage `
    -TargetWebUrl $targetWeb `
    -Credentials $creds

# Get the progress of the migration job
Get-SPOMigrationJobProgress -AzureQueueUri $report.ReportingQueueUri `
    -TargetWebUrl $targetWebUrl `
    -JobIds $report.jobId `
    -EncryptionParameters $report.Encryption `
    -Credentials $creds
  • Is there any formal documentation on Invoke-SPOMigrationEncryptUploadSubmit -- such as where the data goes? Fees? What happens if it fails to import? Limits/Boundaries?
    – Taylor
    May 18, 2017 at 12:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.