如何从经过身份validation的Jenkins服务器上使用bitsadmin.exe(Windows)下载文件

我知道如果工作区是匿名访问使用以下命令从Jenkins服务器下载文件:

bitsadmin.exe /transfer replica /priority FOREGROUND http://1.1.1.1:8080/job/dump_data/ws/dump_data.zip %WORKSPACE%\dump_data.zip 

但是,如果jenkins服务器通过用户名/密码进行身份validation呢?

编辑:/ setcredentials工程,但一个问题是,我只能使用/创build,/ addfile,/恢复,然后/完成。 我如何等待转移完成,然后继续批处理脚本?

编辑:进一步testing显示/ setcredential没有工作。 以前的testing显示它的工作原理是因为我的jenkins当时允许匿名访问。 我使用bitadmin时捕获了数据包。 它显示http请求是HEAD,没有任何凭据信息。 如果我使用curl-win进行下载,那么http请求是基本身份validation用户名和密码的GET。

如果您需要在BITS作业上设置凭据,则可以使用/setcredentials开关。

  /SETCREDENTIALS job target scheme username password Adds credentials to a job. target may be either SERVER or PROXY scheme may be BASIC, DIGEST, NTLM, NEGOTIATE, or PASSPORT. 

BITSadmin的优秀ss64命令参考可以在这里find 。

这是与这个问题相对应的一个.bat脚本:

 bitsadmin /Create DownloadDumpData bitsadmin /SetCredentials DownloadDumpData target scheme username password bitsadmin /AddFile DownloadDumpData http://1.1.1.1:8080/job/dump_data/ws/dump_data.zip %WORKSPACE%\dump_data.zip bitsadmin /SetPriority DownloadDumpData "FOREGROUND" bitsadmin /Resume DownloadDumpData :WAIT_DUMP_DATA_DOWNLOAD_LOOP_START @rem state thanks to http://ss64.com/nt/bitsadmin.html & http://serverfault.com/a/646948/93281 call bitsadmin /info DownloadDumpData /verbose | find "STATE: TRANSFERRED" if %ERRORLEVEL% equ 0 goto WAIT_DUMP_DATA_DOWNLOAD_LOOP_END call bitsadmin /RawReturn /GetBytesTransferred DownloadDumpData @rem sleep thanks to http://stackoverflow.com/a/1672375/535203 timeout 2 goto WAIT_DUMP_DATA_DOWNLOAD_LOOP_START :WAIT_DUMP_DATA_DOWNLOAD_LOOP_END call bitsadmin /Complete DownloadDumpData