Скачать файл с помощью powershell - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь загрузить файл с портала 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}')

Ответы [ 4 ]

0 голосов
/ 05 апреля 2019

Я пробовал подобный код раньше, но я получаю 401 (несанкционированную) ошибку. Следовательно, я пошел по этому пути. Пожалуйста посоветуй. Спасибо

$source = "https://share.company.com/sites/Department/SomeExcelFile.xlsx"
$destination = "c:\temp\SomeExcelFile.xlsx"
$user = username
$pwd = password
$wc = new-object System.Net.WebClient

$wc.UseDefaultCredentials = $true


$credCache = new-object System.Net.CredentialCache
$creds = new-object System.Net.NetworkCredential($user,$pwd)
$credCache.Add($source, "Basic", $creds)
$wc.Credentials = $credCache
$browser = New-Object System.Net.WebClient
$browser.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials 

$wc.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
$wc.DownloadFile($source, $destination)
0 голосов
/ 05 апреля 2019

Вы можете попробовать это.

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:\Lee\PSDownLoad"
0 голосов
/ 05 апреля 2019

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

Invoke-WebRequest -Uri 'https://some.site.org/sites/knowledge/documents/myfile.zip' `
                  -UseDefaultCredentials `
                  -OutFile c:\temp\myfile.zip
0 голосов
/ 05 апреля 2019

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

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

https://docs.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...