2012-02-21 185 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