Como executar um script do PowerShell a partir da sessão do Cygwin SSH?

12

Eu tenho o Windows Server 2003 com o CopSSH instalado (Cygwin + sshd). O W gostaria de poder executar um script do PowerShell via comando de sessão SSH e depois usá-lo. Existe essa capacidade? Como fazer isso ?

malloc4k
fonte

Respostas:

11

Basta invocar powershellcom os argumentos relevantes e direcioná-lo para onde você quiser? Você precisa ter certeza de que está no PATHcurso.

ak2
fonte
Obrigado. Não achei tão simples assim.
malloc4k
15
Não é tão simples assim. O PowerShell usa a API do console; Cygwin (nas mãos de usuários experientes) não é executado no console, é executado em um emulador de terminal. O PowerShell não funciona em um terminal; trava porque está tentando usar ReadConsoleInput em vez de ReadFile na entrada padrão.
Barry Kelly
6

Primeiro, é bom adicionar o caminho executável do PowerShell à variável de ambiente PATH do usuário. Fazemos isso adicionando à linha de arquivo .bashrc do usuário, como:

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

Em seguida, podemos executar o script do PowerShell digitando nossa sessão SSH

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

Claro que agora podemos canalizá-lo para usar sua saída.

Eu só me pergunto por que tenho que pressionar "Enter" duas vezes na minha sessão SSH depois de digitar o comando para que ele funcione.

malloc4k
fonte
4
Para evitar ter que pressionar return, execute o comando da seguinte maneira:echo "\n" | powershell.exe ...
Andrew
4

Experimente sem formato de entrada

powershell.exe -inputformat none -noprofile echo hello

Pode ser útil por não ter que entregar um arquivo na máquina local.

PatrickWalker
fonte