Powershell with Bamboo
Asked by greg ricker:

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.


Answers:
author: Craig
body: 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.

comments: author: Daniel Turner
body: Legend!!! Adding " \< NUL" to the end fixed it for me. Thanks!!


author: Craig
body: You can also run script files as follows:

-NonInteractive -ExecutionPolicy Unrestricted -File C:\\Path-to\\Script.ps1 "arg" arg


author: Craig
body: 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-scriptSET ps=C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exeC:\Windows\System32\cmd.exe /c "echo . | %ps% -NonInteractive -ExecutionPolicy Unrestricted -File D:\%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" &lt; NULinvoke-expression $command
```


author: Sergey Podobry _Stellarity Software_
body: Hi guys,

You are welcome to check out the [PowerShell Task](https://marketplace.atlassian.com/plugins/com.stellarity.bamboo.powershell-task) plugin for Bamboo! It handles all nasty stuff and lets you just create and run PowerShell scripts without a hassle.


author: Marco_Wlotzka
body: 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?

```

```


author: Sagar Parikh
body: you can just run:

E:\\\>powershell -command "\& {YourPSCommand}"

E:\\\>powershell -command "\& {get-childitem}"


author: greg ricker
body: 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 %\*"


author: Przemek Bruski
body: How about:

start c:\\path\\to\\powershell

?

comments: author: Przemek Bruski
body: start /wait

?


author: Christopher Martin
body: This did run the script, however the Bamboo task started and finished basically instantly, and there was no log output or anything.


author: Christopher Martin
body: Same result: Instant task completion and no log of any kind, although the script did execute.


author: Joe Clark
body: 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>


author: Joe Clark
body: 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?

comments: author: Christopher Martin
body: Yes, I've tried exit 0 and exit -1, but in both cases the task kept running.


author: Joe Clark
body: Blarg, that's disappointing :-(


author: Christopher Martin
body: I'm having the same issue. The powershell task doesn't exit, either using a command task, or a script task.


author: greg ricker
body: 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.


author: Przemek Bruski
body: Does it work if you use Script Task and set the Inline Script to:

c:\\path\\to\\Powershell.exe YourScript

?


author: Przemek Bruski
body: How are you currently starting PS?


Tags: powershell