所以我的构建中有一部分需要域权限并进行文件复制。
我的构建的另一部分运行一些程序,要求用户与桌面交互,这似乎只能由系统帐户完成。
解决这两个问题的最佳方法是什么?目前看起来我只能做其中一个......
答案 0 :(得分:3)
一种方法是执行net use s: \\<share path> <password> /user:<domain user> /savecred
,这将允许您的系统帐户模拟域用户以进行共享连接。
另一种方法是使用runas.exe /user:<your domain user> /savecred <program>
。请注意,这需要运行runas
的人从CC.Net用户的上下文输入域用户密码。您可以通过打开控制台作为系统帐户来执行此操作(由于CC.Net SVN集成,有许多关于此主题的文章)并手动运行runas /savecred
并提供密码。
另一种方法是创建一个单独的COM服务,该服务作为域帐户运行,并具有CC.Net调用该服务的命令行工具。
另一种替代方案是让CC.Net计划作为域用户运行的即时任务。您可以使用schtasks.exe
来执行此操作。您需要一个带有任务定义的xml文件,该文件需要包含域用户名和密码。