系统无法在Jenkins中找到指定的驱动器

问题描述 投票:6回答:7

我想从网络共享驱动器复制一些文件(作为驱动器Z安装在我的本地计算机上)。我写了一个批处理文件,将Z盘的内容复制到我的本地驱动器中。此批处理文件在cmd上成功运行,但是当我通过Jenkins触发它时,我遇到了问题。 Jenkins给出以下错误:

“系统无法找到指定的驱动器”

对此有任何帮助,将不胜感激。

谢谢,努曼。

batch-file jenkins cmd hudson jenkins-plugins
7个回答
8
投票

如果你不想使用Jenkins-plugins或schedule-Tasks,这里是一种“groovy”方式:

用手:

您可以使用Jenkins> Manage Jenkins> Script Console提供的Groovy Script-Console,并执行命令以在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()

2
投票

是Jenkins使用不同的登录凭据。要通过Jenkins映射驱动器,请在Jenkins命令提示符中使用以下命令:

Subst U:\ drive \ folder

之后你的查询。


1
投票

您可能会遇到权限问题。 Jenkins可能会使用不同的用户凭据执行;所以它不知道配置的Windows共享驱动器。我建议使用插件而不是使用shell脚本。有一组Publish-over插件,允许通过几个协议(ssh,cfis等)部署到远程系统。看看允许将工件发送到Windows共享的CFIS plugin。一旦配置了插件(即在Manage Jenkins部分中指定了主机),您就可以添加到后期构建步骤。将文件发送到Windows共享,您可以在其中指定将哪些文件发送到哪个位置。


0
投票

尝试将调试命令添加到该bat文件中,或者作为单独的构建步骤,例如net useset(注意像HOMEPATHUSERNAME这样的变量)和普通的dir Z:\

正如在另一个答案中所说,最可能的原因是Jenkins运行为SYSTEM用户,它具有不同的权限。一种方法是,转到服务(例如打开任务管理器,转到其中的服务选项卡,单击该选项卡右下角的服务按钮),找到Jenkins服务,打开它的属性,转到“登录“选项卡并将您的普通用户帐户设置为运行Jenkins的帐户。


0
投票

基本上,您可以使用servername或jenkins命令的IP访问网络共享驱动器(Z)。写\\192.168.x.xxx\Your_Folder而不是z:\Your_Folder。 例如:

mkdir \\192.168.x.xxx\Your_Folder

0
投票

我试图将文件从一台远程计算机复制到另一台,对我来说简单的解决方案是COPY iphone.exe \ 192.xx.xx.xx \ dev(dev是该IP地址中c驱动器上的文件夹名称)


0
投票

在这个documentation之后,在Windows Server 2008上设置的Jenkins奴隶上出现了类似的问题。即使在使用正确的用户凭据配置代理服务后,Jenkins代理也无法访问已装入的网络驱动器。

故障排除:

  1. 当通过JNLP代理(通过Java Web Start启动代理)连接时,Jenkins可以通过驱动器号访问已安装的网络驱动器。
  2. 在我们将代理安装为Windows服务后,它很快就会停止识别驱动器号。配置正确的用户凭据并重新启动代理无济于事。
  3. 我们仍然可以通过命令行访问驱动器,同时使用上述用户登录到计算机。
  4. services.msc停止代理服务,然后通过运行命令jenkins-slave.exe uninstall将其卸载。此时从站断开连接。
  5. 通过Java Web Start启动JNLP代理重新连接从站。代理现在可以再次访问网络驱动器。

概要:

不要将从属代理安装为Windows服务,以便使用驱动器号访问已安装的网络驱动器。但这非常不可靠,因为代理可能在机器重启后无法重启。或者,看看Jenkins是否可以通过\\<ip_address\of\network\drive>访问它们。

© www.soinside.com 2019 - 2024. All rights reserved.