尝试在Jenkins中执行构建时出现以下错误:
Started by user anonymous
Building in workspace C:\Users\mryan\git\AML
[AML] $ cmd /c call C:\Users\MRYAN~1.ASA\AppData\Local\Temp\hudson3772834793680550098.bat
C:\Users\mryan\git\AML>asc-tree -v cs1 .
Array @filter_prune missing the @ in argument 1 of push() at C:\asc\asc\win2k/asc-tree. line 293.
asc-tree.: ASC (=Z:\asc) is not a directory!
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
当我打开正常的命令提示符并运行相同的命令(asc-tree -v cs1。)时,它可以正常工作。
我看了here并尝试在我的环境变量中使用UNC表示法而不是" Z:\"但这只是给了我与机器名称而不是驱动器相同的错误。
我还尝试更改服务以使用我的帐户登录详细信息而不是"本地系统帐户"但似乎并没有这样做。
有人有任何想法吗?
答案 0 :(得分:12)
在this回答之后,我设法让它发挥作用。
解决方案可以在Aspera支持的文章中找到:How to map network shares into drives to a Windows service permanently。
解决方案:
为了将网络共享映射到驱动器并可访问 在Windows服务中,您需要以NT AUTHORITY \ SYSTEM身份登录 帐户。
要执行此操作,请从Microsoft下载Sysinternals Suite,然后解压缩 它到一个目录,比如C:\ TEMP 以下步骤假定您已将SysInternals解压缩到C:\ TEMP,并且所有可执行文件都在那里。
- 以管理员身份启动命令提示符。
CD \TEMP
psexec -i -s cmd.exe
这将启动一个新的命令提示符窗口,并且应该在该新窗口中执行第4步。
net use Z: \\servername_OR_IP\sharedfolder /u:username /persistent:yes
提供有权访问的用户的凭据 共享文件夹。- 醇>
创建一个在只有第4行的计算机启动时运行的脚本 它符合微软的文章:Assign Computer Startup scripts。
答案 1 :(得分:0)
在Windows Server 2008上遇到了相同的问题。在Jenkins代理服务上配置了正确的用户凭据,然后重新启动了它,但这也无济于事。
最后有效的方法是通过Java Web Start 启动代理,而无需将其安装为Windows服务。
答案 2 :(得分:0)
不确定第 1 步到第 3 步对 TomSellek 的回答有何意义,您只需要第 4 步。在创建任务时,在安全选项中选择用户“系统”。