因此,我目前正在寻找一种快速解决方案,以将文件从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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句