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ć ?

Odpowiedzi:


11

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


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.


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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.