【发布时间】:2016-07-14 22:57:31
【问题描述】:
这是我关于堆栈交换的第一个问题,所以我请求忍耐,以防违反社区礼仪。如果我可以澄清我的问题的任何部分,我将非常乐意为您这样做。
我正在为我的实习学习 powerShell,目前我正在编写一个从共享点站点提取 .csv 文件的脚本。我的目标是获取下载的文件,做一些事情,然后将其放回网站。在我做其他事情之前,我正在尝试下载文件,而我的根本问题在于 .net.webclient 的 .downloadfile() 方法。在执行时,我一直看到一个模糊的异常,我无法在网络上的任何地方或我的同事中找到信息。下面我将包括所涉及的 sn-p 和错误消息。下面我将向您介绍我已采取的故障排除步骤。
--------代码
## 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 显示为空。
如果你们有任何想法,我很乐意试一试!
【问题讨论】:
-
什么是
$spCreds?你是如何创建它的? -
$DownloadPath 的值是多少?它是否包含目标文件的完整路径名?
标签: powershell sharepoint webclient