Загрузка файлов Powershell в SharePoint: исключение, вызывающее «ExecuteQuery» с ошибкой аргументов «0» - PullRequest
0 голосов
/ 06 мая 2020

Я хочу загрузить все файлы .csv из C: / в SharePoint. Скрипт запускается до $ Ctx.ExecuteQuery () и возвращает эту ошибку. Я могу запускать другие сценарии PowerShell на сайте, и я являюсь владельцем сайта, я подозреваю, что это что-то другое, кроме привилегий доступа.

Где мне начать поиск?

Исключение, вызывающее "ExecuteQuery" "с" 0 "аргументом (ами):" Удаленный сервер возвратил ошибку: (403) Запрещено. " + $ Ctx.ExecuteQuery () + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: WebException


   Get-ChildItem "c:\users\xxx\downloads" -Filter *.csv | % {

        $eachFile =Get-ChildItem "c:\users\xxxx\downloads\" -Filter *.csv
        $eachFile | ForEach-Object{

       #parameters
            $SiteURL = "https://xxx.sharepoint.com/sites/nrg"
            $LibraryName="Audit History"
            $UserName = "xxxx@x.onmicrosoft.com"
            $Password = "xx"
            $SecurePassword= $Password | ConvertTo-SecureString -AsPlainText -Force

            #Setup the Context
            $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
            $Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
            $Ctx.Credentials = $Credentials


        #Get the Library
        $Library =  $Ctx.Web.Lists.GetByTitle($LibraryName)

        #Get the file from disk
        $FileStream = ([System.IO.FileInfo] (Get-Item $OutputFile)).OpenRead()

        #Get File Name from source file path
        $SourceFileName = Split-path $eachFile -leaf

         #sharepoint online upload file powershell
        $FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
        $FileCreationInfo.Overwrite = $true
        $FileCreationInfo.ContentStream = $FileStream
        $FileCreationInfo.URL = $SourceFileName
        $FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)

        #powershell upload single file to sharepoint online
        $Ctx.Load($FileUploaded)
        $Ctx.ExecuteQuery()

        #Close file stream
        $FileStream.Close()

        write-host "File has been uploaded!"

        }
        }

1 Ответ

0 голосов
/ 06 мая 2020

Решением было удалить учетные данные до ForEach-Object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...