PowerShell script to upload bulk documents

  1. #Specify user Id and site URL  
  2.   
  3. $User = "______"  
  4. $SiteURL = "https://______"  
  5. $Folder = "C:\test"  
  6. $DocLibName = "Uploads"#Add references to SharePoint client assemblies and authenticate to Office 365 site - required  
  7. for CSOM  
  8. Add - Type - Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"  
  9. Add - Type - Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"  
  10. $Password = Read - Host - Prompt "Please enter your password" - AsSecureString#Bind to site collection  
  11. $Context = New - Object Microsoft.SharePoint.Client.ClientContext($SiteURL)  
  12. $Creds = New - Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User, $Password)  
  13. $Context.Credentials = $Creds#Retrieve list  
  14. $List = $Context.Web.Lists.GetByTitle($DocLibName)  
  15. $Context.Load($List)  
  16. $Context.ExecuteQuery()  
  17. Write - Host "starting"#Upload file  
  18. Foreach($File in (dir $Folder - File))   
  19. {  
  20.     Write - Host "Loading "  
  21.     $file.FullName  
  22.     $FileStream = New - Object IO.FileStream($File.FullName, [System.IO.FileMode]::Open)  
  23.     $FileCreationInfo = New - Object Microsoft.SharePoint.Client.FileCreationInformation  
  24.     $FileCreationInfo.Overwrite = $true  
  25.     $FileCreationInfo.ContentStream = $FileStream  
  26.     $FileCreationInfo.URL = $File#$FileCreationInfo["Year"] = "2010"  
  27.     $Upload = $List.RootFolder.Files.Add($FileCreationInfo)  
  28.     $Context.Load($Upload)  
  29.     $Context.ExecuteQuery()  
  30. }