我正在从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."
经历了不同的博客,所有人都提出了我所遵循的相同方法 在这方面有任何帮助吗?
答案 0 :(得分:0)
据我所知,默认凭据用户使用sql代理进程启动的帐户和密码,因为它与SharePoint在线帐户不匹配,所以它将失败。如果您创建一个在更改密码后更新所有安全字符串的PowerShell会更容易。