Я использую Cruise Control.Net на Windows Server 2008 R2. Служба Windows (ccnet) настроена для работы под MYDOMAIN \ unittest. Когда я вхожу в систему как MYDOMAIN \ unittest, у меня нет прав на удаление файлов, созданных в процессе сборки ccnet.
Параметры безопасности одного из этих неизменяемых файлов предоставляют полный доступ СИСТЕМЕ и локальным администраторам, а локальным пользователям - доступ только для чтения. Учетная запись домена DFW \ unittest не имеет разрешения на удаление или перезапись этих файлов.
В цепочке процессов в процессе сборки задействовано довольно много сложности. Служба ccnet, работающая как MYDOMAIN \ unittest, запускает nant.exe, который запускает msbuild.exe, который запускает компилятор C # и его друзей.
Я хочу иметь возможность входить в систему как MYDOMAIN \ unittest на нашей машине сборки, чтобы повторно запускать части сборки и исследовать проблемы. Но я всегда сталкиваюсь с проблемами с этими файлами, которые не принадлежат MYDOMAIN \ unittest. Кстати, я уже добавил MYDOMAIN \ unittest в локальную группу администраторов на машине сборки. Мне все еще приходится запускать cmd.exe от имени администратора, прежде чем я смогу перезаписать или удалить файлы.
Какую конфигурацию мне следует изменить, чтобы файлы, созданные нашей автоматизированной сборкой, могли быть перезаписаны идентификатором unittest?
Вы проверили это
1) служба в настоящее время работает как \ mydomain \ unittest, т.е. если она была недавно изменена, была ли служба перезапущена.
2) файлы, созданные службой, когда она работала как \ mydomain \ unittest
3) это не какая-то проблема с UAC, т.е. у вас могут быть права доступа к файлам или каталогам, но не раньше, чем вы повысите свои привилегии. Видеть MS Technet для получения дополнительной информации.
4) что любой процесс, запущенный или используемый ccnet, также выполняется как MYDOMAIN \ unittest. (например, вы упомянули об использовании nant, если он установлен как служба, работающая как система, могут возникнуть проблемы, о которых вы упомянули).