在CruiseControl .NET中使用PSExec

时间:2010-03-17 17:27:02

标签: cruisecontrol.net nant psexec

我正试图从CC.NET调用PSExec任务并遇到一些困难。

这是CC项目

<project name="Test">
  <tasks>
    <exec>
      <executable>C:\Utilities\psexec.exe</executable>
      <buildArgs>-u [UNAME] -p [PWD] "C:\Utilities\Joel.bat"</buildArgs>
    </exec>
   </tasks>
 </project>

这是Joel.bat的来源

CLS
@ECHO OFF

当我第一次强制构建项目时,它会成功运行。启动PSExec任务并执行Joel.bat文件。我在构建日志中获得了一些关于退出代码的信息,但任务成功了。

这是构建日志输出。

PsExec v1.97 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\Utilities\Joel.bat exited with error code 0.

第二次强制构建时,我得到了可怕的“应用程序无法正确初始化(0xc0000142)”错误消息。我不能多次运行构建

更重要的是,如果我尝试从服务MSC内关闭巡航控制.net服务,它就不能。这就像某个地方有一个锁定,而不是被释放。我可以杀死该服务的唯一方法是杀死ccservices.exe进程。

我尝试了使用nant任务的完全相同的东西,得到了完全相同的结果。它第一次工作,第二次失败,我无法关闭该过程。

我不确定这是CC.NET或PSEXEC(当然还是我)的问题。

有人有任何想法吗?我也在CC.NET论坛上发帖。

我正在使用最新最好的PS.NETe和1.4.4的CC.NET。

Thx,Joel

3 个答案:

答案 0 :(得分:2)

在管理员帐户下运行CruiseControl服务

答案 1 :(得分:0)

您是否尝试过任何其他psexec options

-d Don't wait for application to terminate. Only use this option for non-interactive applications.

答案 2 :(得分:0)

也许是旧的eula问题,请尝试psexec的/ accepteula选项