【发布时间】:2016-03-09 04:01:27
【问题描述】:
我正在从共享点下载文件。 我已经在 SQL 作业代理中安排了作业 当我使用以下代码时它工作正常
$UserName = "xxxx"
$PswdPath = "D:\securestring.txt"
$SecurePassword = cat $PswdPath| convertto-securestring
$fileName = [System.IO.Path]::GetFileName($FileUrl)
$DownloadPath = "D:\Excel\"
$downloadFilePath = [System.IO.Path]::Combine($DownloadPath,$fileName)
$client = New-Object System.Net.WebClient
$client.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
$client.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
$client.DownloadFile($FileUrl, $downloadFilePath)
$client.Dispose()
但我面临的问题是,每当我更新密码时,我也需要更新安全字符串
所以我想使用默认凭据
所以我使用了以下脚本
$webclient = New-Object System.Net.WebClient
$webclient.UseDefaultCredentials = $true
$webclient.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
$webclient.DownloadFile($FileUrl, $DownloadPath)
但由于以下错误而失败
Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (401) Unauthorized."
浏览了不同的博客,所有博客都提出了我所遵循的相同方法 有这方面的帮助吗?
【问题讨论】:
-
从什么看到你的第二个解决方案是好的,但你确定运行 sql 作业的帐户是否需要所有权限?.i联系你的 dba 并查看 sql server 上的哪个帐户运行 sql 作业更改它或给它良好的权限来访问您的网络客户端。 Agent Job 是一个服务帐户,它在 sql server 中没有太多权限
-
我们运行该作业的帐户也没有对 webclient 的管理员访问权限。我们现在提供的用户名(第一种方法),我们用来运行 sql 作业的帐户
-
你能在“servivce”下检查你有一个叫做“Agent SQL Server”的东西并检查运行它的会话吗?检查此帐户的域权限是管理员帐户吗?是否允许执行脚本写入磁盘(因为您似乎下载了一些东西?)尝试使用代理帐户从 sql server 启动您的 powershell 以检查是否发生相同的错误。
标签: powershell sharepoint sharepoint-2010 powershell-2.0 sql-job