2016-01-28 2 views
0

У меня есть .bat-файл, который запускает sqlcmd и запускает скрипт .sql. Когда я запускаю его вручную через пользователя, Jenkins Service работает под всем работает отлично. Но когда Jenkins запускает задание для выполнения того же .bat-файла, я получаю логин неудачно.Почему мой sqlcmd .bat терпит неудачу из-за входа в систему Jenkins, но не при запуске вручную?

Я бегу .bat через Jenkins, как это:

C:\MasterFiles\ListingsManagement\LH.bat > batResults.txt 

.bat выглядит следующим образом:

sqlcmd -S <Server> -E -i C:\MasterFiles\ListingsManagement\test.sql 
-o C:\MasterFiles\ListingsManagement\results.txt 

и при запуске через Jenkins сообщение об ошибке:

Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login failed for user '<domain>\svc_jenkins'.. 

Имя сервера и доменное имя целенаправленно удалены.

Sql - 2014 Enterprise, а Jenkins - 1,645, и все это работает на Windows 7 vm.

+0

Когда вы запускаете его вручную, вы делаете это в кластере SQL? Предположительно, когда вы проходите через Дженкинса, он запускается с другой машины. – RGuggisberg

+0

Вместо использования -E (надежное соединение) вы можете попробовать указать имя пользователя и пароль и запустить его через Jenkins. Я думаю, что ваши учетные данные не совпадают. ** sqlcmd -S -U имя пользователя -P пароль -i C: \ MasterFiles \ ListingsManagement \ test.sql ** –

+0

-U -P не работает с учетными данными домена, и наш администратор базы данных не будет добавлять локального пользователя. Я перезапустил службу Jenkins и начал работать. Это не имеет смысла ... Stupid technology :) –

ответ

0

Когда вы запускаете команду вручную, вы уверены, что вы вошли в систему как <domain>\svc_jenkins на той же машине, на которой работает Jenkins?

Можете ли вы подтвердить содержимое переменных окружения UserDomain и USERNAME матч <domain>\svc_jenkins?, когда вы вошли в систему вручную и запустить скрипт?

Один из этих тестов должен указывать на проблему.

+0

Это показало правильный домен и имя пользователя, после того как я сделал это, я перезапустил Jenkins, и он начал работать. –