Контекст:
Я пытаюсь настроить сервер сборки Jenkins (2.223) (сборка с использованием msbuild
в этом случае) на Windows Server 2012 R2. Jenkins настроен как сервис и работает как Local System
.
Проблема:
Я столкнулся с проблемой, когда я могу запустить скрипт сборки, когда RDP Вы являетесь администратором, но не можете запустить тот же сценарий через Jenkins. После некоторых копаний я обнаружил, что Дженкинс не находит каталог с необходимыми ссылками на сборку (C:\Windows\System32\config\systemprofile\.nuget\packages
). Проведя небольшое расследование, я обнаружил, что каталог C:\Windows\System32\config\systemprofile
кажется несовместимым.
Я могу запустить команду dir C:\Windows\System32\config\systemprofile
через свою учетную запись администратора и получаю:
Directory: C:\Windows\System32\config\systemprofile
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 3/11/2020 9:43 AM .dotnet
d---- 3/11/2020 2:27 PM .nuget
d---- 3/9/2020 1:49 PM .ssh
d---- 8/22/2013 6:36 AM AppData
-a--- 3/2/2020 3:41 PM 262144 ntuser.dat
Я могу запустить ту же команду (dir C:\Windows\System32\config\systemprofile
) через Jenkins, и я получаю:
Directory: C:\Windows\System32\config\systemprofile
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 3/9/2020 1:49 PM .config
d---- 3/6/2020 2:50 PM .groovy
d---- 8/22/2013 8:39 AM AppData
Мне нужны ссылки внутри ...\systemprofile\.nuget\packages\
, чтобы Дженкинс увидел их для завершения сборки ( ссылки помещаются туда командой nuget restore
, запускаемой службой Jenkins, поэтому мне это кажется разумным). И, честно говоря, я не знаком с концепцией dir
, дающей разные результаты. Я подозреваю Windows shenanigans, но мне любопытно, что на самом деле происходит - почему я получаю разные результаты в зависимости от пользователя, выполняющего команду?
Дополнительная информация:
Я смог заставить это работать на моем локальном Windows 10 рабочем столе без каких-либо хлопот. Я по-прежнему получаю разные результаты при выполнении команды dir
как мой пользователь по сравнению со службой Jenkins, но у них обоих есть каталог systemprofile\.nuget\packages
.
На сервере 2012 года $ env: UserName и $ env: ComputerName моего администратора имеют значения Administrator
и WIN-64VG7CF1QK3
соответственно. Локальная система Jenkin $ env: UserName и $ env: ComputerName имеют значения WIN-64VG7CF1QK3
.