Execute remote windows command within Bamboo job

I'm trying to deploy a package (install a few exes, copy files, and start a windows service) to a windows server. What's the best tool to do this? In general there are batch scripts on the test and prod servers that do everything I need. How do I run them remotely from a bamboo job?

When I was working on linux servers, I just used ssh and it worked great. But I'm working with windows servers now. I found PsExec.exe which actually does what I'm looking for on a command line. But if I run it inside a bamboo job, it just hangs.

I see the following:

---

29-Jan-2012 12:49:10Beginning to execute external process for build 'MyBuild - Default Job'

... running command line:

C:\Tools\PsExec.exe

\\myServer

-u

myDomain\myAdminUser

-p

password

ipconfig

... in: C:\bamboo-home\xml-data\build-dir\JOB-NAME\MySubfolder

29-Jan-2012 12:49:10

29-Jan-2012 12:44:48PsExec v1.98 - Execute processes remotely

29-Jan-2012 12:44:48Copyright (C) 2001-2010 Mark Russinovich

29-Jan-2012 12:44:48Sysinternals - www.sysinternals.com

hangs....

---

I had a similar problem with Powershell and solved it by adding <NUL to the end of the command, which worked great even in a Bamboo job.

So in short, what's the best way to execute a remote command within a Bamboo job? If PsExec, how do I get it to not hang?

Thansk!!

4 answers

1 accepted

Accepted Answer
2 votes
Joe Clark Atlassian Team Jan 29, 2012

Is the bamboo agent running as a Windows service or as a user process? The first time you run psexec (or any sysinternals tool) on a computer, you'll get a EULA popup window that you need to accept. If your bamboo agent is running as a windows service, it may be hanging because it's unable to interact with the desktop to display the dialog?

You could also try fiddling with the command line parameters you pass into psexec. A quick google of "psexec hangs" should a couple of people suggesting to try using the "-d" and/or "-e" flags.

If you get stuck with psexec, you could try writing a really basic HTTP server that listens on your remote system for a command from your bamboo agent to execute the local process? Kinda hacky, though :)

Joseph - that was the exact issue!!

I was logged in as User1 and was running the PsExec as -u Admin1, which worked on the command line. But the popup that I accepted was for User1. I had to login as Admin1 to dismiss that dialog. Now Bamboo finished the job successfully.

Joe Clark Atlassian Team Jul 22, 2012

Nice! I'm glad you were able to sort it out :)

You can run FreeSshD (http://www.freesshd.com/) on Windows/Windows server so it can be similar to what you are use to on linux.

thanks for the suggestion! I'll keep that in mind.

You can get around the EULA problem with a switch /accepteula

Note that you have to have an updated psexec that makes use of this token.  The version I had didn't have it.  Updated to latest, and ok now.

As a side note - I was running Bamboo as a different user than myself. So yes, the EULA that shows up the first time you run PsExec was causing the hanging.

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Tuesday in Featured Groups

Tuesday tips & tricks: What is the Atlassian Community?

It's officially Tuesday, which means it's officially time for another tip to help you better navigate this space we call the Atlassian Community. 😄 I got a great question from community member, Sa...

54 views 2 4
View post

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you