Forum Discussion
Uday Kiran Reddy
Dec 12, 2017Copper Contributor
How to uploads files to OneDrive for Business using Powershell
I tried the sample powershell code in below link, getting error as path not found.
https://community.spiceworks.com/topic/2001221-powershell-script-to-upload-file-to-onedrive-business
Sam...
Manidurai Mohanamariappan
Dec 15, 2017Iron Contributor
you can try this modified script and this script support sub folder in document library
$User = "testuser@domainname.com" $SiteURL = "https://test-my.sharepoint.com/personal/testuser_domainame_com"; $Folder = "C:\Users\Desktop\New folder" #DocDocLibName is document libary name $DocLibName = "Documents" $foldername = "Attachments" #Add references to SharePoint client assemblies and authenticate to Office 365 site – required for CSOM Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" $Password = ConvertTo-SecureString ‘test1234’ -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.Load($List.RootFolder) $Context.ExecuteQuery() $ServerRelativeUrlOfRootFolder = $List.RootFolder.ServerRelativeUrl $uploadFolderUrl= $ServerRelativeUrlOfRootFolder+"/"+$foldername #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 if($foldername -eq $null) { $Upload = $List.RootFolder.Files.Add($FileCreationInfo) } Else { $targetFolder = $Context.Web.GetFolderByServerRelativeUrl($uploadFolderUrl) $Upload = $targetFolder.Files.Add($FileCreationInfo); } #$Upload = $List.RootFolder.Files.Add($FileCreationInfo) $Context.Load($Upload) $Context.ExecuteQuery()
- javier_perezSep 20, 2019Copper Contributor
thanks for your code...
but, how can i do the same uploading to folders instead of lists?
regards
- Anupama22May 16, 2019Copper Contributor
Hi, I tried this script but getting below error:
Exception calling “ExecuteQuery” with “0” argument(s): “The sign-in name or password does not match one in the Microsoft account system.”
But the account do exists.
The account is working if I login through webportal.
- Gerhard_WesselsJun 04, 2019Copper Contributor
Hello, I get the same error.
This worked 'previously' ( until about February this year ).
I am having the same issue with uploading to sharepoint teams sites.
I have tried every piece of code and uploader I could find in the last 2 weeks and nothing is working.
- FlinxDec 18, 2019Copper Contributor
I had to modify this line to make it work
$FileCreationInfo.URL = $File
to this
$FileCreationInfo.URL = $ServerRelativeUrlOfRootFolder + "/" + $File.NameThis needs to be a web relative url and not the file path.
Its should equate to something like:
/personal/your_name_domain_com/Documents/Filename.txt
- Uday Kiran ReddyDec 15, 2017Copper Contributor
And also I am getting below error if I am uploading files larger than 200 MB.
Exception calling "ExecuteQuery" with "0" argument(s): "The operation has timed out"
At C:\Users\uday-\Desktop\New Text Document (2).ps1:55 char:1
+ $Context.ExecuteQuery()
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException- Manidurai MohanamariappanDec 16, 2017Iron Contributor
Yes, this script only support upto 250 mb size for single file so if you want to upload more than 250mb file size of single file, you can refer the below link.
https://gist.github.com/asadrefai/ecfb32db81acaa80282d
- Uday Kiran ReddyDec 16, 2017Copper Contributor
UploadFileInSlice ($ctx, $libraryName, $fileName, $fileChunkSizeInMB)
What is the $ctx we need to pass?
- Uday Kiran ReddyDec 15, 2017Copper Contributor
Thank you,
I will try this script.
And also if we share a folder internally with other team members, or if I open a shared folder by someone else, How to upload to that folder?