Я пытаюсь создать конвейер CI / CD с помощью jenkins, и моя среда devops / deploy - windows server 2016. Конвейерный скрипт, написанный на apache groovy.Какой пакетный файл вызова для развертывания кода, этот пакетный скрипт выполняет 2 задачи.
- развертывание кода на другом хост-компьютере (с помощью команды robocopy)
- запуск службы w3svc (с помощью команды sc).
Обе команды упоминаются в командном файле, который вызывается через groovy скрипт с простым 'bat batchfilelocation /name.bat'.Вот пакетный скрипт:
@echo [off]
net use "\\<servername>\<shareddirectory>" <password> /user:<domain\user> /persistent:no
robocopy "C:\jenkins\AngularPipeline\dist\<project>" \\$<Dir>eddistinationServer>\<shar /E /PURGE
sc \\$servername start w3svc
echo on
echo close batch script!
Для выполнения команды sc выдается следующее сообщение об ошибке:
C: \ jenkins \ AngularPipeline> sc \ start w3svc [SC] StartService: OpenServiceСбой 5: Доступ запрещен.
Этот сценарий работает хорошо, пока я напрямую вызывал его через командную строку (без прав администратора).доступ запрещен только тогда, когда этот скрипт выполняется под jenkins groovy.
Я проверил следующие возможности:
- Разрешение WMI на исходном и целевом компьютере
- // Подтверждениечто WinRM правильно настроен.c:> Winrm quickconfig
- // Убедитесь, что удаленный сервер допускает команды с любого компьютера.PS c:> set-item wsman: localhost \ client \ trusthosts -value *
- Перезапустить Службу удаленного управления Windows, перезапущенную на обеих машинах
- C: \ Windows \ system32> sc \ sdshow w3svc
D: (A ;; CCLCSWRPWPDTLOCRRC ;;; SY) (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA) (A ;; CCLCSWLOCRRC ;;; IU) (A ;; CCLCSWLOCR)S: (AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; WD)
Пожалуйста, предложите, как решить то же самое.