Clouded SharePoint certainly helps on a number of fronts, not least of which is anywhere access out of the box. However, if you are moving from a traditional file share environment, you may wish to automate some of the heavy lifting of document transfer. Enter stage right – Powershell.

Powershell has the ability to solve a myriad of problems, but beware- it does not have any built in fail-safes. It is an under-the-hood operation, and best built and constructed by developers and engineers. Oh, and do not forget to have them test it to destruction on their site before using it on yours.

Disclaimers aside, it can really speed up an implementation. Just recently The 848 Group helped one of its clients transfer a large folder with multiple folder levels to SharePoint Online.

So, what do you need to think of:

  • Before even starting, does this information all belong in one site? Perhaps a lot of it is due for archive, so you might consider a records centre.
  • Do not just use folders even though it makes the Powershell easier. If in any doubt, read the SharePoint guidance on Document management, design and implementation, or seek guidance from a SharePoint consultant.
  • So, you are going to create a site and/or subsite in Powershell. Ensure you test your settings in SharePoint. Consider check-out required, navigation inheritance, and permissions.
  • Powershell out of the box SharePoint Online functionality is limited. You will need to use other methods such as those from the Microsoft / SharePoint client namespace.
  • Write your script so that it can run in report mode. In other words, it simply prints to screen what it is going to do- not do it. Great for testing.
  • Parse names! File shares allow characters that SharePoint does not. Write a function to remove them.
  • Catch errors and send to a file. You do not want to stop at every small blip. Process the vast majority of the site and fix the rest after. Writing reams of code to fix 1% of files is a waste of effort.
  • TEST! Most developers hate this, so make sure you ensure it is done. Create a test site and let them use it. Deleting the whole site is easier than unpicking a nightmare migration from your lovingly crafted production site collection.

Bottom line, if you are unsure, get a contractor to help out. Would you try and change the engine in your car yourself?