#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