我想从网络共享驱动器复制一些文件(在我的本地计算机上安装为驱动器Z)。我写了一个批处理文件,将Z盘的内容复制到我的本地驱动器中。此批处理文件在cmd上成功运行,但是当我通过Jenkins触发它时,我遇到了问题。 Jenkins给出了以下错误:
“系统无法找到指定的驱动器”
对此有任何帮助,将不胜感激。
谢谢, Nouman。
答案 0 :(得分:8)
如果您不想使用Jenkins-plugins或schedule-Tasks,这里的方式是“groovy”:
手动
您可以使用Jenkins提供的Groovy脚本控制台>管理Jenkins>脚本控制台并执行命令以在Jenkins服务中映射网络驱动器。 (一旦Jenkins服务停止,必须重复)
<强>自动化:强>
将Groovy命令写入名为“init.groovy”的文件,并将其放在JENKINS_HOME目录中。所以网络驱动器映射到Jenkins-startup。
Groovy命令 - Windows:
使用脚本控制台检查可用的网络驱动器:
println "net use".execute().getText()
你的init.groovy看起来像这样:
def mapdrive = "net use z: \\\\YOUR_REMOTE_MACHINE\\SHARED_FOLDERNAME"
mapdrive.execute()
答案 1 :(得分:1)
您可能会遇到权限问题。 Jenkins可能会使用不同的用户凭据执行;所以它不知道配置的Windows共享驱动器。我建议使用插件而不是使用shell脚本。有一组Publish-over插件允许通过几个协议(ssh,cfis等)部署到远程系统。查看允许将工件发送到Windows共享的CFIS plugin。一旦配置了插件(即主机在 Manage Jenkins 部分中指定),您就可以添加到后期构建步骤将文件发送到Windows共享,您可以在其中指定文件应发送到哪个位置。
答案 2 :(得分:1)
是Jenkins使用不同的登录凭据。要通过Jenkins映射驱动器,请在Jenkins命令提示符下使用以下命令:
Subst U:\ drive \ folder
然后是你的查询。
答案 3 :(得分:0)
尝试向该bat文件添加调试命令,或者作为单独的构建步骤,例如net use
,set
(注意像HOMEPATH
和USERNAME
这样的变量和普通dir Z:\
。
正如另一个回答所说,最有可能的原因是Jenkins以SYSTEM
用户身份运行,该用户具有不同的权限。一种方法是,转到服务(例如打开任务管理器,转到其中的服务选项卡,单击该选项卡右下角的服务按钮),找到Jenkins服务,打开它的属性,转到“登录“选项卡并将您的普通用户帐户设置为运行Jenkins的帐户。
答案 4 :(得分:0)
基本上,您可以使用jenkins命令中的服务器名或IP使用网络共享驱动器(Z)。写\\192.168.x.xxx\Your_Folder
而不是z:\Your_Folder
。
例如:
mkdir \\192.168.x.xxx\Your_Folder
答案 5 :(得分:0)
我试图将文件从一台远程计算机复制到另一台,对我有用的简单解决方案是COPY iphone.exe \ 192.xx.xx.xx \ dev(dev是该ip中c驱动器上的文件夹名称地址)
答案 6 :(得分:0)
在此documentation之后,在Windows Server 2008上设置的Jenkins从属服务器上也出现了类似的问题。即使使用正确的用户凭据配置了代理服务,Jenkins代理仍无法访问已安装的网络驱动器。
故障排除:
services.msc
停止代理服务,然后通过运行命令jenkins-slave.exe uninstall
将其卸载。此时,从属服务器已断开连接。简介:
请勿将从属代理安装为Windows服务,以继续使用驱动器号访问已安装的网络驱动器。但这非常不可靠,因为代理可能在计算机重新启动后无法重新启动。或者,查看詹金斯是否可以通过\\<ip_address\of\network\drive>
访问它们。
答案 7 :(得分:0)
只需在cmd提示符下使用命令
按下“ \ sharedDrive \ Folder1 \ DestinationFolder”
mkdir FolderName
弹出
pushd >>通过创建虚拟驱动器导航到共享驱动器。 popd >>让您回到本地目录
答案 8 :(得分:0)
出现此问题,我的詹金斯工作无法读取网络驱动器上存在的文件。 我通过在预构建步骤中添加“ net use”命令来解决此问题。即
打开您的工作。 转到预备步骤 从下拉菜单中选择“执行Windows批处理命令” 输入以下命令: 净用途E:\ [服务器名称] [文件夹名称]“ [密码]” /用户:“ [用户ID]” 点击保存 执行作业
通过执行上述步骤,我能够从网络驱动器中读取文件。
这似乎是一次活动,因为在初次运行后,我从工作中删除了批处理命令,并且似乎还记得映射的驱动器命令。