2012-02-21 190 views
2

由于因为我们的团队建设的MSBuild脚本的一部分,我们有,我需要在远程服务器上执行部署批处理文件挂起没有错误不是权限或防火墙:如果bat命令更改为运行iisreset或calc.exe,则该命令将工作。的MSBuild PSEXEC执行批处理文件

我已经尝试了-s和> nul标志,并且还将该批处理文件包装到调用cmd中。我已经尝试过和没有引号围绕蝙蝠cmd。

我尝试过的所有选项都可以在构建服务器上的cmd行上正常工作,但是没有一个会从构建脚本本身中工作。

任何想法?

+0

什么是操作系统在目标机器上?是否启用UAC? 另外,如果您将RDP加入生成机器并使用生成服务帐户执行相同的命令“psexec -accepteula \\ servername D:\ Build_Drop \ DeploySites.bat”会发生什么?您应该获得与作为Team Build一部分运行时相同的行为。当您在RDP会话中尝试它时,您可能会收到一些错误消息,当它作为构建的一部分运行时,您不会看到它。团队建设有一个“吃”异常消息的习惯。 – 2012-02-21 16:07:08

回答

5

向psexec中添加-i参数似乎奏效了。

奇怪的是,我们现在得到的错误信息:

The command "psexec -accepteula \\server -i cmd /c "D:\Build_Drop\DeploySites.bat"" exited with code 5. Please verify that you have sufficient rights to run this command. 

但该命令不会实际工作

+0

已使用-i参数及其停止的msbuild psexec挂起,谢谢,它也没有显示代码5错误。我们有一些psexec调用,并且当我将另一个psexec调用应用到-i修复程序时,我得到了代码5错误。但对于psexec调用取出-i它工作正常。所以建议只在挂起时使用-i开关。我怀疑它与被调用的可执行文件是否与控制台进行交互,然后期待它的响应,导致它挂起,除非psexec也与控制台交互。 – 2014-01-22 09:28:02