¿Cómo ejecutar un script de PowerShell desde la sesión de Cygwin SSH?

12

Tengo Windows Server 2003 con CopSSH instalado (Cygwin + sshd). W quisiera poder ejecutar un script de PowerShell a través del comando de sesión SSH y luego usar su salida. ¿Existe tal capacidad? Cómo hacerlo ?

malloc4k
fuente

Respuestas:

11

¿Solo invoca powershellcon los argumentos relevantes y canalízalo a donde quieras? Debes asegurarte de que esté en el PATHcurso.

ak2
fuente
Gracias. No pensé que fuera así de simple.
malloc4k 05 de
15
No es tan simple. PowerShell usa la API de la consola; Cygwin (en manos de usuarios experimentados) no se ejecuta en la consola, se ejecuta en un emulador de terminal. PowerShell no funciona en una terminal; se cuelga porque está tratando de usar ReadConsoleInput en lugar de ReadFile en la entrada estándar.
Barry Kelly
6

Lo primero es bueno agregar la ruta ejecutable de PowerShell a la variable de entorno PATH del usuario. Lo hacemos agregando a la línea del archivo .bashrc del usuario como:

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

Entonces podemos ejecutar el script de PowerShell simplemente escribiendo en nuestra sesión SSH

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

Por supuesto, ahora podemos canalizarlo para usar su salida.

Solo me pregunto por qué tengo que presionar "Enter" dos veces en mi sesión SSH después de escribir el comando para que funcione.

malloc4k
fuente
44
Para evitar tener que presionar regresar, ejecute el comando como:echo "\n" | powershell.exe ...
Andrew
4

Pruébalo sin formato de entrada

powershell.exe -inputformat none -noprofile echo hello

Puede ser útil para no tener que entregar un archivo a la máquina local.

PatrickWalker
fuente