How to Copy OneDrive Files to Another OneDrive Account? Simplified Way

OneDrive for Business Migration Best Practices to Follow in 2022
Michael ~ Modified: January 9th, 2024 ~ OneDrive ~ 11 Minutes Reading

Summary: This article is specially curated for office 365 admins and users as it describes the top 3 ways that can be used to copy OneDrive files to another OneDrive account easily. With time this guide will be updated to reflect the latest development in this migration process. So, stay tuned!

Cloud storage services like OneDrive for business are becoming popular these days. And, why not? With a simple subscription, it can store crucial files and documents without killing the local storage space. However, OneDrive account management becomes challenging for admins in case of employee turnover and other transitions.

So, what to do when employees leave or get a new role? How to manage their accounts and copy OneDrive files to another OneDrive account? Moreover, is it the only scenario where OneDrive file transfer is required?

Honestly, these are not just questions but user concerns! And, through this technical guide, we will address these queries and provide different solutions for a smooth OneDrive migration.

Let’s start the discussion with the scenarios where OneDrive file transfer between different accounts becomes necessary.

Understand Various Situations Where Users Perform OneDrive Migration

As discussed earlier when an employee leaves or transits to another role, before deleting the existing OneDrive account the company has to create a new account & copy OneDrive files to the newly created OneDrive account.

Apart from that, it may sound unusual but sometimes users tend to have more than one OneDrive account to store photos, videos, files, etc. And, when they feel like the storage space of one account is about to reach its limit, they decide to move OneDrive files to Another OneDrive account. 

Also Read About – Office 365 Hybrid Migration Step By Step Procedure Explained

Another common reason for copying OneDrive data is to create a backup of important files. When you move a copy of your crucial files to another OneDrive account, it can certainly help you prevent situations like data loss or ransomware attacks.

Now, let’s move forward and get familiar with the different methods for carrying out OneDrive migration.

Different Ways to Copy OneDrive Files to Another OneDrive Account

There are 3 solutions available that you can choose from based on your requirements. 

  1. Use the Download & Upload Approach
  2. Move the OneDrive content via PowerShell
  3. Utilize a Professional Tool for the OneDrive File or Folder Transfer

Out of these 3 approaches, 1st two are manual approaches, and the last one is a tried and tested automated approach.

Let’s elaborate on these methods one by one.

  1. Use Download & Upload Method to Copy OneDrive Files to Another OneDrive Account

Follow the below steps:

  • Log in to your OneDrive account by providing the correct credentials.
  • Select the files you want to move to the new OneDrive account and click on “Download.”
  • Log out of the previous OneDrive account and log into the newly created OneDrive account.
  • After that, click on “Upload” and select the files you had initially downloaded. Wait for the upload process to complete to have all the files transferred to your new OneDrive account.

It seems to be an easy approach but comes with various downsides. Let’s have a look at them.

Must Read: How to Migrate Teams From One Tenant to Another? Complete Tutorial

Limitations of Manual Method in Moving OneDrive Files to Another OneDrive Account:

This method is suitable if you are using this for personal use which involves an account or two.

Further, to use the Download & Upload method, you should have sufficient space on your local drive to download the OneDrive files.

However, if you have files that are in GB(Gigabytes) to download then it is not going to be a very long process. Because it may take up to several days or even weeks to copy OneDrive files to another account.

Then again, after downloading the files, you have to manually organize the data before uploading it to the new OneDrive account.

Another issue with this method is that you should have a strong internet connection throughout the process. If you don’t have the same then you may receive error messages.

  1. Copy OneDrive Files to Another OneDrive Account PowerShell

This process is a relatively better approach than the previous one. You can copy a user’s entire OneDrive directory into a subfolder in another user’s OneDrive.

Follow the complete PowerShell script to move OneDrive files to another OneDrive account:

$departinguser = Read-Host “Enter departing user’s email”

$destinationuser = Read-Host “Enter destination user’s email”

$globaladmin = Read-Host “Provide the username of Global Admin account”

$credentials = Get-Credential -Credential $globaladmin

Connect-MsolService -Credential $credentials

$InitialDomain = Get-MsolDomain | Where-Object {$_.IsInitial -eq $true}

$SharePointAdminURL = “https://$($InitialDomain.Name.Split(“.”)[0])-admin.sharepoint.com”

$departingUserUnderscore = $departinguser -replace “[^a-zA-Z]”, “_”

$destinationUserUnderscore = $destinationuser -replace “[^a-zA-Z]”, “_”

$departingOneDriveSite = “https://$($InitialDomain.Name.Split(“.”)[0])-my.sharepoint.com/personal/$departingUserUnderscore”

$destinationOneDriveSite = “https://$($InitialDomain.Name.Split(“.”)[0])-my.sharepoint.com/personal/$destinationUserUnderscore”

Write-Host “`nConnecting to SharePoint Online” -ForegroundColor Blue

Connect-SPOService -Url $SharePointAdminURL -Credential $credentials

Write-Host “`nAdding $globaladmin as site collection admin on both OneDrive site collections” -ForegroundColor Blue

# Set current admin as a Site Collection Admin on both the OneDrive Site Collections

Set-SPOUser -Site $departingOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $true

Set-SPOUser -Site $destinationOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $true  

Write-Host “`nConnecting to $departinguser’s OneDrive via SharePoint Online PNP module” -ForegroundColor Blue

Connect-PnPOnline -Url $departingOneDriveSite -Credentials $credentials 

Write-Host “`nGetting display name of $departinguser” -ForegroundColor Blue

# Obtain the name of the departing user for creating a folder name.

$departingOwner = Get-PnPSiteCollectionAdmin | Where-Object {$_.loginname -match $departinguser}  

# If there’s an issue arises retrieving the departing user’s display name, set the below one.

if ($departingOwner -contains $null) {

    $departingOwner = @{

        Title = “Departing User”

    }

}  

# Specify relative folder locations for respective OneDrive source and destination

$departingOneDrivePath = “/personal/$departingUserUnderscore/Documents”

$destinationOneDrivePath = “/personal/$destinationUserUnderscore/Documents/$($departingOwner.Title)’s Files”

$destinationOneDriveSiteRelativePath = “Documents/$($departingOwner.Title)’s Files”

Write-Host “`nGetting all items from $($departingOwner.Title)” -ForegroundColor Blue

# Obtain all items from source OneDrive

$items = Get-PnPListItem -List Documents -PageSize 1000 

$largeItems = $items | Where-Object {[long]$_.fieldvalues.SMTotalFileStreamSize -ge 261095424 -and $_.FileSystemObjectType -contains “File”}

if ($largeItems) {

    $largeexport = @()

    foreach ($item in $largeitems) {

        $largeexport += “$(Get-Date) – Size: $([math]::Round(($item.FieldValues.SMTotalFileStreamSize / 1MB),2)) MB Path: $($item.FieldValues.FileRef)”

        Write-Host “File too large to copy: $($item.FieldValues.FileRef)” -ForegroundColor DarkYellow

    }

    $largeexport | Out-file C:\temp\largefiles.txt -Append

    Write-Host “A list of files too large to be copied from $($departingOwner.Title) have been exported to C:\temp\LargeFiles.txt” -ForegroundColor Yellow

}

  

$rightSizeItems = $items | Where-Object {[long]$_.fieldvalues.SMTotalFileStreamSize -lt 261095424 -or $_.FileSystemObjectType -contains “Folder”}  

Write-Host “`nConnecting to $destinationuser via SharePoint PNP PowerShell module” -ForegroundColor Blue

Connect-PnPOnline -Url $destinationOneDriveSite -Credentials $credentials 

Write-Host “`nFilter by folders” -ForegroundColor Blue

# Filter by Folders for creating a directory structure

$folders = $rightSizeItems | Where-Object {$_.FileSystemObjectType -contains “Folder”}

Write-Host “`nCreating Directory Structure” -ForegroundColor Blue

foreach ($folder in $folders) {

    $path = (‘{0}{1}’ -f $destinationOneDriveSiteRelativePath, $folder.fieldvalues.FileRef).Replace($departingOneDrivePath, ”)

    Write-Host “Creating folder in $path” -ForegroundColor Green

    $newfolder = Ensure-PnPFolder -SiteRelativePath $path

}

Write-Host “`nCopying Files” -ForegroundColor Blue

$files = $rightSizeItems | Where-Object {$_.FileSystemObjectType -contains “File”}

$fileerrors = “”

foreach ($file in $files) {

    $destpath = (“$destinationOneDrivePath$($file.fieldvalues.FileDirRef)”).Replace($departingOneDrivePath, “”)

    Write-Host “Copying $($file.fieldvalues.FileLeafRef) to $destpath” -ForegroundColor Green

    $newfile = Copy-PnPFile -SourceUrl $file.fieldvalues.FileRef -TargetUrl $destpath -OverwriteIfAlreadyExists -Force -ErrorVariable errors -ErrorAction SilentlyContinue

    $fileerrors += $errors

}

$fileerrors | Out-File c:\temp\fileerrors.txt

# Detach Global Admin from Site Collection Admin role for both users

Write-Host “`nRemoving $globaladmin from OneDrive site collections” -ForegroundColor Blue

Set-SPOUser -Site $departingOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $false

Set-SPOUser -Site $destinationOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $false

Write-Host “`nComplete!” -ForegroundColor Green

Though it’s better than the previous one but not the best you can say. Because after executing the script, some users got the following error message.

Out-File: Could not find a part of the path ‘C:\temp\fileerrors.txt’.

At line:86 char:15

+ $fileerrors | Out-File c:\temp\fileerrors.txt

+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : OpenError: (:) [Out-File], DirectoryNotFoundException

    + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

Besides the above, there are other downsides or you can say restrictions of this method as well.

Limitations of Migrating OneDrive Files to Another OneDrive Account Using PowerShell:

  1. The Process could take a while: Each file or folder takes at least some time, a second or two,  to process. If your departing user has tens of thousands of files, then this is not the method for you. You may opt for another method.
  2. It uses your connection: This method also downloads the files before uploading them to another OneDrive. If you have a slow connection, and you’re moving large files then you might want to leave this running on a cloud-hosted server.
  3. It can’t transfer files larger than 250MB: Another limitation of this PowerShell method is that it can’t move files larger than 250 MB. 
  4. No provision of Two Factor Authentication: Unfortunately, this script doesn’t work with multifactor authentication on the admin account. 

However, don’t get disappointed cause we’re still left with another method. This next method overcomes the challenges of the manual method. Let’s have a look at the same.

  1. Use a Professional Tool to Copy Files to Another OneDrive Account

Just like the heading suggests, this method involves using a professional tool i.e. Migrator Wizard OneDrive for Business Migration Tool. The best part of this approach is that it’s completely automated and doesn’t involve any complex PowerShell scripts.

Download Now Purchase Now

So, this makes it possible for even a non-tech person to execute the process efficiently. 

Without further ado let’s walk through the working steps of the tool.

Step 1. Go to the ‘Set up’ section and select ‘Office 365’ as both Source and destination.

step-1

Step 2. Then, remain on the same page, and click on the ‘Documents’ checkbox to copy OneDrive files to another OneDrive account.

step-2

Step 3. You can also perform a selective data transfer.  Just click on the ‘Date Filter’ option, select the From & To dates and that’s it.

Step 4. Next, navigate to the ‘Source’ tab then enter the Admin email and Application ID for the same.

step-3

Step 5. Then, ‘Validate’ the required source permissions and click ‘Next’.

Step 6. After that, navigate to the ‘Destination’ tab and provide the Admin email and Application ID.

Step 7. Then, ‘Validate’ the required destination permissions and click ‘Next’.

Step 8. Next, define the source user emails through either ‘Fetch User’, ‘Import User’, or ‘Download Template’.

step-4

Step 9. Then, perform the source and destination mapping to transfer OneDrive files to another account.

step-5

Step 10. Finally, validate the permissions one last time and click on ‘Start Migration.

Related: Quick Fix for Microsoft Teams Chat Disappeared Issue – Complete Explanation

Advanced Characteristics of The Tool: 

  • Whether you have a single user or multiple accounts to migrate, this tool allows you to do the same.
  • For any reason, if some items are skipped from migration, then the tool facilitates a  Re-run migration option that allows you to re-do the process again.
  • With the Stop & Start feature of the tool, you can easily pause the process and resume the same as per your requirements. In this way, even if you have weak network connectivity your migration process will be accomplished without any errors.
  • This trustworthy tool lets you perform account-based priority migration to move OneDrive files to another OneDrive account.

To Conclude

For various reasons (mentioned in the article), users prefer to perform OneDrive migration between accounts. So, to guide those users, we’ve come up with this write-up and explained 3 different methods to copy OneDrive files to Another OneDrive account. Now, it’s up to you to choose the easy, reliable, and effective method to execute the migration.

FAQs

Q1. How can I quickly copy large OneDrive files to another OneDrive account

  • Step 1. Download the Software and Launch it on your PC
  • Step 2. Choose Office 365 as the Source and Destination. 
  • Step 3. Enable Documents from Workload and Set Date Filter.
  • Step 4. Login with Office 365 Credentials and Click on Validate.
  • Step 5. Select OneDrive Accounts and Click on the Start button.

Q2. How Can I merge two OneDrive accounts?

According to Microsoft, it is not possible to merge two OneDrive for Business accounts. However, you can use the above software to migrate OneDrive for Business files to another OneDrive account hassle-free.

Q3. How do I transfer ownership of OneDrive files to another OneDrive account? 

You can easily transfer the ownership of OneDrive files by following the below steps:

  • Step 1. Log in and locate the folder.
  • Step 2. Click on the folder, then select “Details”.
  • Step 3. Inside the Details pane, click “Manage access” under “Has Access”.
  • Step 4. Make a list of all sharing permissions for the folder.
  • Step 5. Pass on this list to the new folder owner for reference.