2014-12-11 30 views
6

Usiamo Jenkins su Win8 x64 per compilare (msbuild), pacchetto (cspack), eseguire (csrun) e test (nunit) un progetto di servizi cloud azzurro. Gli emulatori del servizio cloud di Azure devono essere eseguiti come amministratore e dobbiamo collegarci alle porte 80/443 (quindi non possiamo usare gli emulatori "lite").Esegui il file batch come amministratore su Jenkins?

Stiamo facendo quanto sopra tramite un semplice file .bat eseguito da Jenkins. Normalmente nessun utente accede alla macchina, si avvia e Jenkin esegue un servizio che continua a monitorare il nostro repository GIT e le e-mail in caso di guasti. Un amministratore accede manualmente alla macchina solo per manutenzione (ad esempio applica patch o riavvia macchina, ecc.)

Come configurare Jenkins per l'esecuzione di .bat come amministratore senza interazione umana?

Con un'interfaccia utente desktop, è possibile fare clic con il pulsante destro del mouse su un prompt dei comandi, eseguire come amministratore, confermare il prompt UAC, ottenere il prompt privilegiato con privilegi elevati ed eseguire il file .bat.

risposta

0

Se si accede alla macchina vedove come amministratore ed eseguire l'agente schiavo di questo utente, tutto sarà in esecuzione con l'utente amministratore

+0

Come gestiamo l'agente slave? Nuovo per l'installazione ma l'abbiamo installato come servizio che diventa vivo ogni volta che la macchina del build server arriva online. Grazie! – DeepSpace101

+0

Non penso sia importante, quale utente è loggato alla macchina Windows? Penso che se accederai come amministratore, starai bene. – kazerm

+0

In genere nessun utente accede al computer, si avvia e Jenkin esegue un servizio che continua a monitorare il nostro repository GIT e le e-mail in caso di errori. Un amministratore accede alla macchina solo per manutenzione (ad esempio applica patch o riavvia macchina, ecc.) – DeepSpace101

12

La nostra soluzione era quella di eseguire il servizio Jenkins' come un locale separato utente amministratore. Dopo aver installato Jenkins, Start => 'services' => Scorrere fino al servizio Jenkins => right click => properties => "log on" => "this account" => specifica un account amministratore locale.

Speriamo che nelle nuove versioni di Jenkins possa funzionare come il SERVIZIO DI RETE standard, ma per qualche motivo non con la nostra scatola.

1

Una delle soluzioni:

  1. Creare file bat in slave.
  2. Creare il collegamento del file e fare clic con il tasto destro del mouse sul collegamento, proprietà -> Avanzate -> verifica percorso come amministratore .
  3. Pannello di controllo -> Sistema e sicurezza -> Azione Centro -> Modificare le impostazioni di controllo dell'account utente e impostare il livello su "non notificare mai".
  4. eseguire il file su Jenkins

In qualche modo il file verrà eseguito sul server slave, ma tornare fallimento da Jenkins.

+0

per interesse, se il tuo file era update.bat, la scorciatoia sarebbe update.bat.lnk, a cui puoi fare riferimento in Jenkins. –