如何使用sql job agent中的默认凭据运行powershell脚本

时间:2015-12-04 09:14:52

标签: powershell sharepoint sharepoint-2010 powershell-v2.0 sql-job

我正在从sharepoint下载文件。 我已经在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."

经历了不同的博客,所有人都提出了我所遵循的相同方法 在这方面有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

据我所知,默认凭据用户使用sql代理进程启动的帐户和密码,因为它与SharePoint在线帐户不匹配,所以它将失败。如果您创建一个在更改密码后更新所有安全字符串的PowerShell会更容易。