Upload files to SPOnline using Powershell (Win2008R2)

Upload files to SPOnline using Powershell (Win2008R2):
#Specify tenant admin and site URL
#Requires Sharepoint license and access to site/doclib
$User = "user@tennant.onmicrosoft.com"
$password_clear_text = "MyPassword" 
$SiteURL = "https://tennant.sharepoint.com/sites/projectX"
$Folder = "C:\FilesToUpload"
$DocLibName = "Shared Documents"

#Add references to SharePoint client assemblies and authenticate to Office 365 site - required for CSOM
# SharePoint Online CSOM - http://www.microsoft.com/en-us/download/details.aspx?id=42038
# WMF 3.0                - http://www.microsoft.com/en-us/download/details.aspx?id=34595
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

# Use clear text password to authenticate
$Password = ConvertTo-SecureString $password_clear_text -AsPlainText -Force 

#Bind to site collection
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password)
$Context.Credentials = $Creds

#Retrieve list
$List = $Context.Web.Lists.GetByTitle($DocLibName)
$Context.Load($List)
$Context.ExecuteQuery()

#Upload file
Foreach ($File in (dir $Folder -File))
{
$FileStream = New-Object IO.FileStream($File.FullName,[System.IO.FileMode]::Open)
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $File
$Upload = $List.RootFolder.Files.Add($FileCreationInfo)
$Context.Load($Upload)
$Context.ExecuteQuery()
}

No comments: