Upload file to SharePoint Online using powershell - Error : access to the path w

This topic contains 1 reply, has 2 voices, and was last updated by  Jon 3 weeks, 2 days ago.

  • Author
    Posts
  • #82822

    Olivier VILLEGENTE
    Participant

    Hi,

    I'm trying to upload files to sharepoint online using a powershell script. I get an error "access to the path ... was denied".

    I can upload my file using Internet Explorer but I can't do it using my script.

    The script is :

      $sourceDocumentPath = "C:\tests_onedrive\travail\ANGELA\SON\20151125_133740_resized-2.jpg" # Source document to spawn new documents from for the creation
      $User = "myemail@society.nc"

      $webUrl = "https://society-my.sharepoint.com/personal/me_society_nc/"
      $docLibraryName = "Documents"

      #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\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"
      #Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
      $Password = Read-Host -Prompt "Please enter your password" -AsSecureString

      # ————————- #Open web and library

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

      #Retrieve list
      $uploadfolder = $Context.Web.Lists.GetByTitle($docLibraryName)
      $Context.Load($uploadfolder)
      $Context.ExecuteQuery()

      $File = get-item $sourceDocumentPath
      $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.Name
      #$FileCreationInfo.URL = $File.Name

      write-host $FileCreationInfo.URL

      $Upload = $uploadfolder.RootFolder.Folders.GetByUrl("Folder").Files.Add($FileCreationInfo)

      $Context.Load($Upload)
      $Context.ExecuteQuery()

      $FileStream.Close()

    The error message :

      New-Object : Exception calling ".ctor" with "2" argument(s): ""Access to the path 'C:\tests_onedrive\travail\ANGELA\SON\20151125_133740_resized-2.jpg' was denied."
      At C:\Users\Administrateur\Desktop\tests_onedrive\Script\ESSAI.ps1:55 char:15
      + ... ileStream = New-Object IO.FileStream($File.FullName,[System.IO.FileMo ...
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
      + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

    Can you help me ?

    Thanks, Regards,

  • #82838

    Jon
    Participant

    "Access to the path 'C:\tests_onedrive\travail\ANGELA\SON\20151125_133740_resized-2.jpg' was denied."

    Your permissions error seems to be coming from your local drive. Are you using different credentials to run the script than you are using when you upload via IE? Are you running the script from an elevated shell or standard shell?

You must be logged in to reply to this topic.