I am trying to use PowerShell scripts as part of a custom build job. The PS script is started but never ends. I have read that PS can't be called directly from Bamboo. I did get this to work using a batch file to launch PowerShell but this seems a poor solution.
I set up Powershell as a command, and ran it with the following arguments
-command "echo do-your-commands" < NUL
The < NUL is the key part.
How are you currently starting PS?
Does it work if you use Script Task and set the Inline Script to:
c:\path\to\Powershell.exe YourScript
?
I created a task with PowerShell as the executable. My script is the argument. When the Plan is run I can see that PowerShell is launched against my script. But the Plan never exits.
I'm having the same issue. The powershell task doesn't exit, either using a command task, or a script task.
I've never tried integrating Powershell with Bamboo before, but have you tried adding an explicit "exit" command at the end of your PS script to force the console to close?
Yes, I've tried exit 0 and exit -1, but in both cases the task kept running.
Blarg, that's disappointing :-(
Some suggestions on stackoverflow, although none of them seem especially convincing: http://stackoverflow.com/questions/2041799/powershell-script-gets-stuck-doesnt-exit-when-called-from-batch-file
How about:
start c:\path\to\powershell
start /wait
This did run the script, however the Bamboo task started and finished basically instantly, and there was no log output or anything.
Same result: Instant task completion and no log of any kind, although the script did execute.
I tried creating a batchfile (see below) where the argument is the PS script file. This works but task completes before the script does. The department seems heavily invested in Powershell but I'd be open to hearing other scripting solutions.
C:\Windows\System32\cmd.exe /c "echo aaa | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe %*"
Legend!!! Adding " < NUL" to the end fixed it for me. Thanks!!
you can just run:
E:\>powershell -command "& {YourPSCommand}"
E:\>powershell -command "& {get-childitem}"
Hi,
Still have issues getting error codes returned to bamboo. I have created a batch file and configure it as a global command:
C:\Windows\System32\cmd.exe /c "echo aaa | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe %*; exit $LASTEXITCODE"
But still no exitcode in sight - any hints?
You can also run script files as follows:
-NonInteractive -ExecutionPolicy Unrestricted -File C:\Path-to\Script.ps1 "arg" arg
Hi guys,
You are welcome to check out the PowerShell Task plugin for Bamboo! It handles all nasty stuff and lets you just create and run PowerShell scripts without a hassle.
I have found this solution is less reliable with Bamboo 5.1. Instead I've created a small bat file which is where my 'powershell' executable now points to. It contains:
REM http://serverfault.com/questions/437504/why-does-psexec-hang-after-successfully-running-a-powershell-script SET ps=C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe C:\Windows\System32\cmd.exe /c "echo . | %ps% -NonInteractive -ExecutionPolicy Unrestricted -File \%1.ps1 %2 %3 %4 %5 %6"
Then I have a number of powershell scripts in the same folder including an all-purpose one called Exec.ps1 which contains:
param([string]$command) #replacement for -command "some-power-shell-stuff" < NUL invoke-expression $command
It looks like you're new here. Sign in or register to get started.