我在 Windows Server 2008 R2 上使用 Cruise Control.Net。Windows 服务 (ccnet) 配置为在 MYDOMAIN\unittest 下运行。当我以 MYDOMAIN\unittest 身份登录时,我没有权限删除由 ccnet 构建过程创建的文件。
其中一个不可删除文件的安全设置为系统和本地管理员提供完全访问权限,并为本地用户提供只读访问权限。域帐户 DFW\unittest 无权删除或覆盖这些文件。
构建过程中的流程链相当复杂。以 MYDOMAIN\unittest 运行的 ccnet 服务会启动 nant.exe,nant.exe 会启动 msbuild.exe,msbuild.exe 会运行 C# 编译器和相关程序。
我希望能够以 MYDOMAIN\unittest 身份登录我们的构建机器,以重新运行构建的部分内容并调查问题。但是,我总是遇到这些不属于 MYDOMAIN\unittest 的文件的问题。顺便说一句,我已经将 MYDOMAIN\unittest 添加到构建机器上的本地管理员组。我仍然被迫以管理员身份运行 cmd.exe,然后才能覆盖或删除文件。
我应该改变哪些配置,以便我们的自动构建创建的文件可以被 unittest 标识覆盖?
答案1
你检查过吗
1)该服务当前以 \mydomain\unittest 的身份运行,即如果它最近已被更改,则该服务是否已重新启动。
2)服务在以 \mydomain\unittest 运行时创建的文件
3) 这不是某种 UAC 问题,即您可能有权访问文件或目录,但必须提升您的权限。请参阅微软技术网了解更多信息。
4) ccnet 运行或使用的任何进程也作为 MYDOMAIN\unittest 运行。(例如,您提到使用 nant,如果它作为作为系统运行的服务安装,您可能会遇到您提到的问题)。