Jobs On A Windows Agent Require Administrator Privileges
Cloudbees Jenkins Enterprise
Please see the simple use case below:
Test environment consisting of a Jenkins Master and a Windows 7 JNLP Agent.
I downloaded the elevate-1.3.0-redist.7z file from the link above and put into the C:\Users\cloudbees\Downloads\elevateUtility directory on the Windows 7 machine.
I disabled UAC as documented in the link above.
I created an adminTest.bat file in the C:\Users\cloudbees\Documents directory that contained:
@echo off ::Test If script has Admin Priviledges/is elevated net session >nul 2>&1 IF %ERRORLEVEL% EQU 0 ( ECHO you are Administrator ) ELSE ( ECHO you are NOT Administrator. Exiting... PING 127.0.0.1 > NUL 2>&1 EXIT /B 1 )
I created a Freestyle project called testElevate on my Jenkins Master that was restricted to run on the Windows agent machine with the following Windows bat command step:
echo "Begin elevate Test" cd C:\Users\cloudbees\Documents C:\Users\cloudbees\Downloads\elevateUtility\bin.x86-32\elevate.exe -k adminTest.bat
which produced the following on the Windows JNLP Agent:
With this proposed solution you should be able to modify the specific projects/jobs in Jenkins to execute commands
like .bat files with elevate for example, to get Administrator privileges.
Please note that I used the -k flag in the elevate.exe command to cause the cmd prompt to remain open to validate and document the output of the adminTest.bat file.