如何在Windows Server 2008中以管理员身份运行CruiseControl任务

时间:2012-05-15 15:03:15

标签: windows-server-2008 cruisecontrol.net keil

我目前正在使用CruiseControl.NET来自动构建。我们有两种不同的方法可以在我的构建环境中构建解决方案 - 一种是通过Keil uVision4 IDE,另一种是通过Visual Studio 2008。

我已成功使用CruiseControl.NET正确构建Visual Studio解决方案并创建了一个批处理文件,该文件正确使用Keil的uVision命令行界面来编译我的uvproj项目(compilation details here )。

问题描述

1)如果我使用管理员权限创建命令提示符,我可以在Windows 2008服务器上成功执行构建脚本并构建项目(我手动执行此操作 - 开始 - >运行 - > cmd with ctrl-shift-enter以管理员身份运行。

2)但是,如果我创建一个没有管理员权限的命令提示符,并尝试执行批处理文件,批处理文件将无法正常工作,除非我接受提示要求我确认管理员权限是运行批处理脚本所必需的。

如何通过CruiseControl以管理员身份自动执行批处理文件?

这是否可以使用RunAs命令自动生成?


技术细节

1)正在执行的批处理文件非常简单 - 删除旧输出并重新输出,在下面的位置创建构建日志文件。

set BuildLogLocation=BuildLog\BuildLog.txt

echo on
cd ../..
cd PTM
rmdir /s /q output
mkdir output
mkdir BuildLog
C:\Keil\UV4\UV4.exe -r myProj.uvproj -o %BuildLogLocation%

echo ErrorLevel of build is %ERRORLEVEL%
echo build complete, see %BuildLogLocation%

2)目前我正在寻求使用Exec功能来运行上面的Keil构建脚本:

<Exec>
    <Command>C:\myProject\Build\KeilBuild\BuildScript.bat<Command/>
    <buildTimeoutSeconds>600<buildTimeoutSeconds/>
    <!-- Details about error codes can be found here:
    http://www.keil.com/support/man/docs/uv4/uv4_commandline.htm -->
    <successExitCodes>0,1</successExitCodes>
<Exec/>

相关问题:

4 个答案:

答案 0 :(得分:1)

您是否可以作为具有管理权限的用户运行CCService(CruiseControl.NET Windows服务)?我先试试。

如果这不起作用,我会使用runas来运行你的脚本。您必须在调用runas的脚本中嵌入管理用户的密码。

答案 1 :(得分:1)

我知道这已经过时了但是,你是否通过巡航控制获得了一种正式的方式?

通常我创建它并调用它来调用其他进程“作为管理员”。

在内容中使用This创建一个“.VBS”脚本:

  

Dim strBatchPath

     

strBatchPath =“PATH-TO-FILE.EXE

     

设置runBatch = CreateObject(“shell.application”)

     

runBatch.shellexecute strBatchPath ,,,“runas”,1

对于那些找不到正式方式的人来说,这可能是一种选择

答案 2 :(得分:0)

您可以尝试使用sysinternals中的psExec。如果您不需要作为nt-authority帐户运行,那么您应该能够以与runas相同的方式使用它。 它允许您传递用户名/密码作为开关(如果内存服务)

答案 3 :(得分:0)

我发现当使用PSEXEC并使用-h开关时,它会在目的地“以管理员身份运行”

e.g。

  

psexec -h \ ServerToRunOn / accepteula -u DOMAIN \ USER -p PASSWORD“PATH-TO-FILE”

我正在使用CC.Net来调用上面的批处理文件。这将以管理员身份运行该文件