使用PowerShell从Jenkins下载工件

 搜狐搜不到你的爱_276 发布于 2023-01-30 17:00

我尝试使用PowerShell从Jenkins下载工件,如下所示:

$webClient = new-object System.Net.WebClient 
$webClient.Credentials = New-Object System.Net.NetworkCredential ("username", "password")
$url = "http://jenkins/job/jobName/lastSuccessfulBuild/artifact/*zip*/archive.zip" 
$localfilename = "C:\Test\archive.zip"  
$webClient.DownloadFile($url, $localfilename)

我得到例外:

使用"2"参数调用"DownloadFile"的异常:"远程服务器返回错误:(403)禁止." 在C:\ ps2.ps1:20 char:28 + $ webclient.DownloadFile <<<<($ url,$ localfilename)+ CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException

如果我尝试使用wget下载工件,它可以工作:

wget --auth-no-challenge --http-user=username --http-password=password http://jenkins/job/jobName/lastSuccessfulBuild/artifact/*zip*/archive.zip

如果我使用没有参数的wget,--auth-no-challenge我会得到同样的错误 - Forbidden.

1 个回答
  • 在请求标头中使用此授权非常有效:

    # Create web client with authorization header
    $webClient = new-object System.Net.WebClient 
    $credentialAsBytes = [System.Text.Encoding]::ASCII.GetBytes($userName + ":" + $password)
    $credentialAsBase64String = [System.Convert]::ToBase64String($credentialAsBytes);
    $webClient.Headers[[System.Net.HttpRequestHeader]::Authorization] = "Basic " + $credentialAsBase64String;
    

    2023-01-30 17:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有