Jak uruchomić skrypt PowerShell z sesji Cygwin SSH?

12

Mam zainstalowany system Windows Server 2003 z CopSSH (Cygwin + sshd). W chciałby móc uruchomić skrypt PowerShell za pomocą polecenia sesji SSH, a następnie użyć jego danych wyjściowych. Czy jest taka możliwość? Jak to zrobić ?

malloc4k
źródło

Odpowiedzi:

11

Po prostu przywołaj powershellodpowiednie argumenty i przenieś go tam, gdzie chcesz? Musisz PATHoczywiście upewnić się, że tak jest .

ak2
źródło
Dzięki. Nie sądziłem, że to takie proste.
malloc4k
15
To nie takie proste. PowerShell używa interfejsu API konsoli; Cygwin (w rękach doświadczonych użytkowników) nie jest uruchamiany w konsoli, lecz w emulatorze terminali. PowerShell nie działa w terminalu; zawiesza się, ponieważ próbuje użyć ReadConsoleInput zamiast ReadFile na standardowym wejściu.
Barry Kelly,
6

Po pierwsze, dobrze jest dodać ścieżkę wykonywalną PowerShell do zmiennej środowiskowej PATH użytkownika. Robimy to poprzez dodanie do wiersza pliku .bashrc użytkownika, takiego jak:

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

Następnie możemy uruchomić skrypt PowerShell, wpisując tylko sesję SSH

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

Oczywiście teraz możemy przesyłać strumieniowo, aby użyć jego wyjścia.

Zastanawiam się tylko, dlaczego muszę nacisnąć „Enter” dwa razy w mojej sesji SSH po wpisaniu polecenia, aby zadziałało.

malloc4k
źródło
4
Aby uniknąć konieczności powrotu, uruchom polecenie w następujący sposób:echo "\n" | powershell.exe ...
Andrew,
4

Wypróbuj bez formatu wejściowego

powershell.exe -inputformat none -noprofile echo hello

Może być przydatny, ponieważ nie trzeba dostarczać pliku na komputer lokalny.

PatrickWalker
źródło