我目前正在使用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/>
相关问题:
答案 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来调用上面的批处理文件。这将以管理员身份运行该文件