Загрузить файл с помощью powershell

#html #powershell #sharepoint

#HTML #powershell #sharepoint

Вопрос:

Я пытаюсь загрузить файл с портала SharePoint.

Я смог успешно войти в систему и открыть файл, но не смог загрузить файл с помощью скрипта. Не могли бы вы, пожалуйста, посоветовать. Спасибо.

 $username= user_name
$password = password
$url = "https://share.mycompany.com/"

$ie = New-Object -ComObject InternetExplorer.Application
$ie.Visible = $true
$ie.navigate($url)


Start-Sleep -Milliseconds 10000

$ie.Document.getElementByID("Ecom_User_ID").value = $username
$ie.Document.getElementByID("Ecom_Password").value = $password
$ie.document.getElementById("loginBtn").click()

Start-Sleep -Milliseconds 10000
$source = "https://share.mycompany.com/sites/department/SomeExcelFile.xlsx"

$ie.navigate($source)
$obj = new-object -com WScript.Shell
$obj.AppActivate('Internet Explorer')
$obj.SendKeys('s')
$obj.SendKeys('{Enter}')

  

Ответ №1:

Предполагая, что вы используете SharePoint 2013 или более позднюю версию, я бы предложил использовать SharePoint Pnp PowerShell Framework для выполнения любых других операций в SharePoint.

В этом случае команда Get-pnpfile

https://learn.microsoft.com/en-us/powershell/module/sharepoint-pnp/get-pnpfile?view=sharepoint-ps

Пример:

 Get-PnPFile -Url /sites/project/_catalogs/themes/15/company.spcolor -Path c:temp -FileName company.spcolor -AsFile
  

Ответ №2:

Вы могли бы попробовать это.

 Function Download-File([string]$FileUrl,[string]$DownloadPath)
 {    
    $fileName = [System.IO.Path]::GetFileName($FileUrl)
    $downloadFilePath = [System.IO.Path]::Combine($DownloadPath,$fileName)
    $client = New-Object System.Net.WebClient 
    $client.Credentials = new-object System.Net.NetworkCredential("lee", "password", "domain")    
    $client.DownloadFile($FileUrl, $downloadFilePath)
    $client.Dispose()
}

Download-File -FileUrl http://sp:12001/MyDoc/test2.docx -DownloadPath "C:LeePSDownLoad"
  

Комментарии:

1. Привет, Ли, я получил приведенное ниже сообщение об ошибке. Пожалуйста, дайте совет. «Исключение, вызывающее «DownloadFile» с аргументами «2»: «Удаленный сервер вернул ошибку: (403) Запрещено».

Ответ №3:

В SharePoint 2010 вы можете либо использовать .Сетевые методы, на которые ссылается Lee_MSFT, но я считаю, что проще загружать файлы из SharePoint через Invoke-WebRequest, особенно если вы работаете в контексте учетной записи, имеющей доступ к файлу.

 Invoke-WebRequest -Uri 'https://some.site.org/sites/knowledge/documents/myfile.zip' `
                  -UseDefaultCredentials `
                  -OutFile c:tempmyfile.zip