使用Powershell从Google云端硬盘下载文件

时间:2015-03-11 11:28:45

标签: powershell download google-drive-api

因此,我正在尝试找到一种快速解决方案,将文件从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)需要代理验证。”

所以我在Credentials和DownloadFile之间添加了以下行:

$client.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials

这解决了(407)需要代理身份验证的问题,但现在我收到了错误:

  

使用“2”参数调用“DownloadFile”的异常:“异常   在WebClient请求期间发生。“

     

在行:1字符:21

     

而且,因为我几乎是Powershell的初学者,所以我不知道为什么我会收到这条消息。

最终,我需要它下载总共4/5个文件,所有文件都在同一个位置...理想情况下,我需要通过批处理命令或类似的东西来运行它所以它可以是(几乎) 1单击解决方案...

任何帮助将不胜感激!感谢〜

1 个答案:

答案 0 :(得分:1)

DownloadFile中的第二个参数应该是文件路径,而不是目录的路径。

见这里: Error using $client.DownloadFile in Powershell script

编辑:要解决代理例外,您需要为呼叫设置代理身份验证。 例如:

$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)

https://social.technet.microsoft.com/Forums/windowsserver/en-US/1a05b90b-ce12-4974-b578-0c1e22d03f10/download-file-through-proxy-server