How to run a PowerShell script from Cygwin SSH session?

Solution 1:

Just invoke powershell with the relevant arguments and pipe it to wherever you want it? You need to make sure it's in the PATH of course.

Solution 2:

Barry Kelly is right.

You need to use my wrapper software that creates hidden console and runs powershell on it.

My page is here: http://sergeybelous.com/shell-terminal/#proxywinconsole.exe

Someone already found my wrapper software and created tutorial here: http://ssh-with-powershell.blogspot.com/2013/07/enable-ssh-with-powershell-and-remove.html


Solution 3:

First thing it is good to add PowerShell's executable path to user's PATH environmental variable. We do it by adding to user's .bashrc file line like:

export PATH=${PATH}:"/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0"

Then we can run PowerShell script just typing in our SSH session

powershell.exe -File "c:\u.ps1"

Of course now we can pipe it to use it's output.

I just wonder why I have to press "Enter" two times in my SSH session after typing the command for it to work.


Solution 4:

Try it with no inputformat

powershell.exe -inputformat none -noprofile echo hello

Can be useful for not having to deliver a file to the local machine.


Solution 5:

If you need to run powershell inside cygwin/babun, follow https://code.google.com/p/mintty/issues/detail?id=56#c64 . Bascilly, downloard or compile https://github.com/rprichard/winpty, copy it to your $PATH and then run

console.exe powershell

This also works with batch scripts that invoke powershell inside.