2012-05-04 44 views
19

Sembra una domanda semplice ma non sono riuscito a risolverlo dopo aver guardato in linea. Fondamentalmente voglio eseguire uno script PowerShell (ad esempio script.ps1) in Jenkins e segnalare successo/fallimento.Come eseguire uno script PowerShell come un lavoro in Jenkins

Prova 1: Run segue come "Esegui comando batch Windows"

powershell -File c:\scripts\script.ps1 

questo modo si avvia come previsto, ma si chiude dopo pochi secondi

Prova 2: Run segue come "Esegui Comando batch di Windows "

powershell -NoExit -File c:\scripts\script.ps1 

Questo esegue l'intero script correttamente, ma ne ver fermate. Ho dovuto abortire manualmente lo script

risposta

27

Bene, c'è un plug-in PowerShell, che avvolge comunque la shell. Io lo uso sul mio server, eseguendo script in notazione standard:

powershell -File test001.ps1 

Funziona senza alcuna stranezza.

+0

Cool, ho provato il plug-in ma non sono riuscito a farlo funzionare con un file ps1. Ma non ho mai provato la notazione di cui sopra. Proveremo in questo modo, grazie! – Danish

+2

Ho usato quanto segue: powershell -ExecutionPolicy Unrestricted -File file.ps1 –

+1

Non riesco a far funzionare correttamente il plug-in, probabilmente correlato alla politica di esecuzione o qualcosa del genere. È necessario ricorrere alla riga di comando tandard con powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File script.ps1 – Benoit

5

Ho trovato il problema relativo a PowerShell che gestisce separatamente la politica di esecuzione per le versioni a 32 e 64 bit. Effettua il check-out http://www.gregorystrike.com/2011/01/27/how-to-tell-if-powershell-is-32-bit-or-64-bit/ per provare ad avviare entrambi. Esegui Get-ExecutionPolicy in entrambi e vedrai che sono diversi.

Almeno con la versione 1.4, sembra che il plug-in finisca per utilizzare il processo a 32 bit.

Problemi correlati