Jenkins no detecta las cnetworkingenciales GIT del administrador de cnetworkingenciales de Windows

Tengo 2 copys de repositorys GIT llamémoslos "origen" y "respaldo" . Lo que quiero lograr es lo siguiente. Mi equipo constantemente sigue presionando y sincronizando sus cambios con el "origen" , sin embargo, quiero asegurarme de tener una copy del "origen" en una location geográfica diferente que servirá como una copy duplicada en caso de que un incendio explotara destruyendo todo en mi oficina Para lograr esto, he guardado una copy idéntica de mi git repo alojado en la nube.

Ahora, usando una combinación de Jenkins y un script de lotes de Windows, estoy tratando de encontrar una forma de mantener sincronizados estos repositorys. El script por lotes será responsable de la operación de synchronization real y Jenkins se asegurará de que la operación de synchronization se ejecute periódicamente. La copy duplicada se llama "copy de security" (como ya habrá adivinado).

El problema es que cuando ejecuto el script por lotes desde el símbolo del sistema directamente, se ejecuta exactamente como yo quiero; Pero cuando bash ejecutar el script por lotes a través del trabajo de Jenkins, sigue esperando el nombre de usuario y la contraseña del repository "de respaldo" . Las cnetworkingenciales para el repository de "copy de security" ya están almacenadas en el Administrador de cnetworkingenciales de Windows y el script por lotes puede usar las cnetworkingenciales cuando se ejecutan directamente, pero de alguna manera ese no es el caso cuando bash ejecutarlo a través de Jenkins.

He intentado search en Google, buscando SO, incluso hice una gran cantidad de búsquedas para ver si podía encontrar algo en los foros de jenkins, pero hasta ahora no he encontrado nada útil.

No estoy seguro de si esto será útil, pero a continuación está mi script de lote para reference.

@echo OFF pushd K: pushd "K:\my-git-workspace\mygit-repo" echo Pulling "master" from origin git pull origin master echo Pulling "master" from backup git pull backup master echo Pushing "master" to backup git push backup master echo Pushing "master" to origin git push origin master echo Pulling all tags from origin git pull --tags origin echo Pulling all tags from backup git pull --tags origin echo Pushing all tags to backup git push --tags backup echo Pushing all tags to origin git push --tags origin popd 

Aquí está mi configuration de GIT que veo desde el símbolo del sistema de Windows. (He reemplazado el nombre de usuario y el correo electrónico de usuario con valores ficticios)

 core.symlinks=false core.autocrlf=true color.diff=auto color.status=auto color.branch=auto color.interactive=true pack.packsizelimit=2g help.format=html http.sslcainfo=/bin/curl-ca-bundle.crt sendemail.smtpserver=/bin/msmtp.exe diff.astextplain.textconv=astextplain rebase.autosquash=true user.email=myemail@domain.com user.name=My Name cnetworkingential.helper=wincnetworking 

Aquí está la configuration de GIT que obtengo cuando se ejecuta (git config -l) de Jenkins

 core.symlinks=false core.autocrlf=true color.diff=auto color.status=auto color.branch=auto color.interactive=true pack.packsizelimit=2g help.format=html http.sslcainfo=/bin/curl-ca-bundle.crt sendemail.smtpserver=/bin/msmtp.exe diff.astextplain.textconv=astextplain rebase.autosquash=true user.email=myemail@domain.com user.name=My Name cnetworkingential.helper=wincnetworking core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true core.hidedotfiles=dotGitOnly remote.origin.url=//networkrepo/git/repo remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master remote.backup.url=http://cloud-hosted-git-repo/repo.git remote.backup.fetch=+refs/heads/*:refs/remotes/backup/* gui.wmstate=zoomed gui.geometry=584x210+321+316 304 192 cnetworkingential.helper=store user.email=myemail@domain.com user.name=My Name 

No hace falta decir que cualquier ayuda es muy apreciada.

Aclamaciones.

Finalmente descubrió la solución. Gracias a David Ruhmann . Las soluciones que David ha mencionado en su comentario a la pregunta es ir al administrador del service de Windows y cambiar el valor de la columna "Iniciar session como" de "Sistema local" a la Cuenta de Windows que está utilizando para ejecutar el script por lotes desde símbolo del sistema. En mi caso, dado que el usuario de inicio de session para Windows se llamaba "BOB" , cambiar el valor del sistema local a BOB y especificar la contraseña de inicio de session para este usuario en el administrador de services fue el truco.

Una cosa más para recordar sería; Para que el cambio surta efecto, deberá reiniciar el service de Jenkins.