[英]Using Powershell to download files from Google Drive
因此,我目前正試圖找到一種快速的解決方案,以將文件從Google雲端硬盤(共享文件,而不是我擁有的文件)下載到服務器/網絡驅動器上的某個位置。
我正在使用:
$client = new-object System.Net.WebClient
$client.Credentials = Get-Credential
$client.DownloadFile("https://docs.google.com/a/domainname.co.uk/spreadsheets/d/1in0m8PhfiYhu4qCWO1dxNc3OS3p8prF7HWRZ-bjnKBI/export?format=xlsx","W:\Corp\Comp Serv\Comp Op\OB\Dep Data\Call\Google backup")
但是,它返回以下消息:帶有“ 2”自變量的異常調用“ DownloadFile”:“遠程服務器返回錯誤:(407)需要代理身份驗證。”
因此,我在憑據和DownloadFile之間添加了以下行:
$client.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials
這已經解決了(407)代理身份驗證必需的問題,但是現在我得到了錯誤:
帶有“ 2”參數的異常調用“ DownloadFile”:“在WebClient請求期間發生異常。”
在線:1字符:21
- $ client.DownloadFile <<<<(“ https://docs.google.com/a/domainname.co.uk/spreadsheets/d/1in0m8PhfiYhu4qCWO1dxNc3OS3p8prF7HWRZ-bjnKBI/export?format=xlsx ”,“ W:\\ Corp \\ Comp Serv \\ Comp Op \\ OB \\ Dep Data \\ Call \\ Google備份”)
- CategoryInfo:未指定:(:) [],MethodInvocationException
- FullyQualifiedErrorId:DotNetMethodException
而且,由於我是Powershell的完全入門者,所以我不知道為什么收到此消息。
最終,我需要它總共下載4/5個文件,並將它們全部下載到同一位置...此外,理想情況下,我還需要通過批處理命令或等效命令來運行它,因此它可以是(幾乎)一鍵式解決方案...
任何幫助將不勝感激! 謝謝〜
DownloadFile中的第二個參數應該是文件路徑,而不是目錄路徑。
請參見此處: 在Powershell腳本中使用$ client.DownloadFile時出錯
編輯:要解決代理例外,您需要為您的呼叫設置代理身份驗證。 例:
$source = "https://docs.google.com/a/domainname.co.uk/spreadsheets/d/1in0m8PhfiYhu4qCWO1dxNc3OS3p8prF7HWRZ-bjnKBI/export?format=xlsx"
$dest = "W:\Corp\Comp Serv\Comp Op\OB\Dep Data\Call\Google backup\download.xlsx"
$WebClient = New-Object System.Net.WebClient
$WebProxy = New-Object System.Net.WebProxy("http://myproxy.com:1111",$true)
$Credentials = New-Object Net.NetworkCredential("user,"","domain.local")
$Credentials = $Credentials.GetCredential("http://myproxy.com","1111", "KERBEROS");
$WebProxy.Credentials = $Credentials
$WebClient.Proxy = $WebProxy
$WebClient.DownloadFile($source,$dest)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.