powershell System.Net.WebClient.DownloadFile(String,String)会引发神秘错误

时间:2016-07-14 22:57:32

标签: powershell sharepoint webclient

这是我关于堆叠交换的第一个问题,所以我在面对破坏社区礼仪时要求忍耐。如果我能澄清我问题的任何部分,我会非常乐意为你这样做。

我正在为实习学习powerShell,目前我正在编写一个从sharepoint站点提取.csv文件的脚本。我的目标是下载文件,做东西,然后把它放回网站上。在我可以做其他事情之前,我正在尝试下载该文件,我的根本问题在于.net.webclient的.downloadfile()方法。在执行时,我一直看到一个模糊的例外,我无法在网络上或我的同事中找到任何信息。下面我将包含所涉及的代码段和错误消息。在下面,我将向您介绍我已采取的故障排除步骤。

--------代码

  ## Download summary file from Sharepoint downloads new serverlist
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls
    $webclient = New-Object -TypeName System.Net.WebClient
    $webclient.Credentials = $spCreds ## defined earlier with import-clixml - also tried get-credential 
    $webclient.DownloadFile($URIaddress, $DownloadPath) ## defined earlier: $DownloadPath = "c:\temp\Summary.csv"

--------例外

Exception calling "DownloadFile" with "2" argument(s): "An exception 
occurred during a WebClient request."
At line:13 char:5
+     $webclient.DownloadFile($URIaddress, $DownloadPath)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

--------采取的行动 我提供的凭据应该是有效的,因为当我在浏览器中输入URI时,我可以下载$ URIaddress的内容。

我已经能够将.downloadFileAsync(string,string)哄到在指定的$ downloadPath上创建文件,但是下载似乎永远不会开始,并且文件保持为空。当尝试将.DownloadFile()变成随机变量($ foo)时, $ foo | gm 显示为null。

如果你们有任何想法,我很乐意给他们一个机会!

1 个答案:

答案 0 :(得分:0)

确实非常神秘。

查看异常和内部异常,它们可以为您提供有关所发生情况的更多见解: $ Exception = $ error [0] .Exception $ Exception.InnerException