I have Windows Server 2003 with CopSSH installed on it ( Cygwin + sshd ). I would like to be able to run a PowerShell script via SSH session command and then use its output. Is there such a capability? How to do it?
6 Answers
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.
- 562
Barry Kelly is right.
You need to use my wrapper software that creates a hidden console and runs PowerShell on it.
My page is here: http://sergeybelous.com/SHELL-TERMINAL.html#proxywinconsole.exe
Someone already found my wrapper software and created a tutorial here: https://ssh-with-powershell.blogspot.com/2013/07/enable-ssh-with-powershell-and-remove.html
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.
- 861
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.
- 151
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.
- 131
Administrator@AAAAA-11111:~ $cd /cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0
Administrator@AAAAA-11111:/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0 $ cmd /k powershell.exe
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:\WINDOWS\system32\WindowsPowerShell\v1.0>
this works for me.
- 131