We have requirements to migrate our sharepoint 2013 content to SharePoint online. content size is around 700 GBs, and because of that we are getting many failures related to the throttling issue. my question is how we can write a powershell script to migrate failed document in the migration (knowing that each migration operation generates a log of failure documents). or any other advice would be very useful.

thank you,

3 Answers 3


There are many ways we can handle this migration (700 GB) :

  • With the combination of Azure VM and SPMT (SharePoint Migration Tool) to avoid the throttling issues.

MSDN documentation is here :


  • If you have Metalogix Migration tool, do a sample migration to SharePoint online, then automatically you can generate the equivalent powershell script from tool itself.... then for your all failure files run this extracted powershell script.

  • Write your own powershell script to upload multiple files... you can place all failure files in a particular local drive... then read all files from that location and upload to the SharePoint online library.

Here is custom working powershell script for the same job.



Migrating your organizational data to SharePoint Online requires careful planning to be successful. You could refer to this article:

What you need to think about when migrating files to SharePoint Online

To avoid the throttling issue in SharePoint Online, read this article for more:


  • throttling issue is cause because of migrating large data at once, how to migrate using smaller batches, Commented Feb 20, 2020 at 10:19

I had worked on a similar kind of migration last year and wrote a custom script that makes use of Share Gate Shell dLL's to pick up an Item ID mentioned in CSV ,migrate it to the destination and then log about it in a log file.

You can find the code and all the details at the blog below- https://kamdaryash.wordpress.com/2019/06/10/share-gate-desktop-and-pnp-to-customize-migration-using-cvss/

Basically this code was written so that we avoid the throttling issue and only mention the ID's that we want to migrate part by part.

All you need to do is create CSV's and mention the ID's that you want to migrate(in your case create seperate CSV's for seperate libraries) and schedule this script to migrate those libraries one by one.

Logging is preconfigured in my code so this should work great for you.

Only thing is that you will need a ShareGate license so that you can make use of it's dll's.

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.