如何删除在域用户身份下运行的Windows 2008服务创build的文件?

我在Windows Server 2008 R2上使用Cruise Control.Net。 Windows服务(ccnet)configuration为在MYDOMAIN \ unittest下运行。 当我以MYDOMAIN \ unittest身份login时,我没有权限删除由ccnet构build过程创build的文件。

这些不可移动的文件之一的安全设置提供了对SYSTEM和本地pipe理员的完全访问权限以及对本地用户的只读访问权限。 域帐户DFW \ unittest没有删除或覆盖这些文件的权限。

构build过程中的stream程链中存在相当多的复杂性。 以MYDOMAIN \ unittest身份运行的ccnet服务启动nant.exe,启动运行C#编译器和朋友的msbuild.exe。

我希望能够在我们的构build机器上以MYDOMAIN \ unittest身份login,重新运行部分构build和调查问题。 但是,我总是碰到这些不属于MYDOMAIN \ unittest的文件的问题。 顺便说一句,我已经将MYDOMAIN \ unittest添加到生成机器上的本地pipe理员组。 我仍然不得不以pipe理员身份运行cmd.exe,然后才能覆盖或删除这些文件。

我应该改变什么样的configuration,以便由我们的自动构build创build的文件可以被unittest身份覆盖?

你有没有检查过

1)服务当前正在运行\ mydomain \ unittest,也就是说,如果它最近已经改变了服务已经重新启动。

2)服务在运行时所创build的文件为\ mydomain \ unittest

3)这不是某种UAC问题,也就是说,您可能有权限访问这些文件或目录,但是直到您提升您的权限为止。 有关更多信息,请参阅MS Technet 。

4)由ccnet运行或使用的任何进程也被作为MYDOMAIN \ unittest运行。 (例如你提到使用nant,如果它是作为系统运行的服务安装的,你可能会遇到你提到的问题)。