Jenkins在映射驱动器上调用批处理文件

时间:2012-06-21 17:50:25

标签: windows-7 batch-file jenkins clearcase

我有一个Jenkins作业,它调用ClearCase驱动器上的批处理文件(V :)。

我的Jenkins slave代理使用本地管理员帐户作为服务运行。 Jenkins的工作如下:

cleartool startview MY_VIEW
cd /d "V:\MY_VIEW\Build"
call PrepareBuild.bat

当我运行Jenkins工作时,我不断收到“访问被拒绝”。在控制台输出中尝试调用批处理文件时。但是,如果我在命令提示符下手动运行上面的命令,它会成功完成。

我在Windows XP下没有这个问题。有人知道为什么会在Windows 7(32位)上发生这种情况吗?

感谢。

2 个答案:

答案 0 :(得分:3)

V:\是使用windows command subst获得的虚拟驱动器 它是动态视图(M:\yourView)的根目录与虚拟驱动器之间的快捷方式 (即,V:\与ClearCase没有特别的关联。它只是用户希望与某个ClearCase视图根目录关联的驱动器号)

但是,ClearCase在注册表HKCU/software/atria/...中注册了该关联。

这意味着在Jenkins的本地管理员帐户下运行的ClearCase会话不会知道所述关联以及恢复该虚拟驱动器的需要。

解决方法是使用 psubst 使该驱动器永久化 这会在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]中注册路径,并且HKLM可以从所有帐户访问 见" How to make SUBST mapping persistent across reboots?"

答案 1 :(得分:1)

我遇到了同样的问题。有一个更简单的解决方案。

Jenkins无法访问只有用户有权访问的文件夹(即使它由用户运行)。因此,获取访问权限的文件夹您需要为每个人而不是用户设置文件夹权限