Мы только что установили сервер Windows 2008 R2 новой сборки для нашей системы Jenkins CI. Наша проблема, похоже, связана с тем, что права доступа к файлам различаются в зависимости от того, является ли процесс службой или консольным процессом.
При входе в систему как UserX мы можем успешно выполнить список каталогов dir /b c:\Windows\System32\q*.exe
(фактическая команда) и возвращает 6 файлов. Однако, запустив ту же команду через службу, мы получим только 5. Такая же учетная запись пользователя. Тот же компьютер.
Более серьезная проблема заключается в том, что, поскольку файл не отображается в списке каталогов, он не может быть выполнен.
Похоже, что нет никаких различий в разрешениях между файлами, которые появляются, и теми, которые не отображаются.
Любые идеи?
Мы разобрались с этой проблемой, поэтому я публикую решение для других.
Проблема заключалась в том, что подчиненный процесс Jenkins (служба) выполнялся как 32-битный процесс. Windows, будучи полезной, автоматически перенаправляла доступ к c: \ Windows \ System32 на c: \ Windows \ SysWOW64.
Исполняемые файлы, которые мы искали, в любом случае должны были находиться в SysWOW64, поэтому мы скопировали их, и проблема была решена.