10

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

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

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

谢谢,努曼。

4

9 回答 9

8

如果您不想使用 Jenkins-plugins 或 schedule-Tasks 这是一种“常规”方式:

用手:

您可以使用 Jenkins>Manage Jenkins>Script Console 提供的 Groovy Script-Console 并执行命令在 Jenkins-service 中映射网络驱动器。(必须重复,一旦 Jenkins 服务停止)

自动化:

将 Groovy 命令写入名为“init.groovy”的文件,并将其放在 JENKINS_HOME 目录中。所以网络驱动器被映射到 Jenkins-startup 上。

Groovy 命令 - Windows:

使用 Script-Console 检查可用的网络驱动器:

println "net use".execute().getText()

你的 init.groovy 看起来像这样:

def mapdrive = "net use z: \\\\YOUR_REMOTE_MACHINE\\SHARED_FOLDERNAME"
mapdrive.execute()
于 2013-06-05T09:32:49.653 回答
2

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

替代 U:\驱动器\文件夹

然后你的查询。

于 2016-06-28T05:41:06.010 回答
1

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

于 2012-11-29T12:32:55.403 回答
0

尝试将调试命令添加到该 bat 文件,或作为单独的构建步骤,例如net use, set(注意像HOMEPATH和这样的变量USERNAME)和 plain dir Z:\

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

于 2012-12-03T21:00:15.910 回答
0

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

例如:

mkdir \\192.168.x.xxx\Your_Folder
于 2018-11-22T11:39:06.930 回答
0

为了访问您的远程驱动器

只需在 cmd 提示符下使用命令


  • pushd "\sharedDrive\Folder1\DestinationFolder"

  • mkdir 文件夹名称

  • 流行音乐


pushd >> 它通过创建虚拟驱动器导航到共享驱动器.. popd >> 让您回到本地目录

于 2020-03-20T12:51:55.990 回答
0

在本文档之后,我们在 Windows Server 2008 上设置的 Jenkins slave 上出现了类似的问题。即使在使用正确的用户凭据配置代理服务后,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>.

于 2019-04-19T11:08:08.890 回答
0

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

于 2019-01-22T15:45:24.110 回答
0

有这个问题,我的詹金斯工作无法读取网络驱动器上存在的文件。我通过在预构建步骤中添加“net use”命令解决了这个问题。IE

打开你的工作。转到 Pre Steps 从下拉列表中选择 Execute Windows Batch Command 输入以下命令:net use E:\[server name][Folder name] "[password]" /user:"[userid]" 点击 Save 执行作业

按照上面提到的步骤,我能够从我的网络驱动器中读取文件。

这似乎是一次活动,因为在初次运行之后,我已经从我的工作中删除了批处理命令,它似乎记住了映射的驱动器命令。

于 2020-08-18T06:45:37.130 回答