Làm cách nào để chạy tập lệnh PowerShell từ phiên Cygwin SSH?


12

Tôi có Windows Server 2003 với CopSSH được cài đặt trên nó (Cygwin + sshd). W muốn có thể chạy tập lệnh PowerShell thông qua lệnh phiên SSH và sau đó sử dụng đầu ra của nó. Có khả năng như vậy? Làm thế nào để làm nó ?

Câu trả lời:


11

Chỉ cần gọi powershellvới các đối số có liên quan và đưa nó đến bất cứ nơi nào bạn muốn nó? Bạn cần chắc chắn rằng đó là PATHtất nhiên.


Cảm ơn. Tôi không nghĩ nó đơn giản.
malloc4k

15
Nó không đơn giản. PowerShell sử dụng API Bảng điều khiển; Cygwin (trong tay của người dùng có kinh nghiệm) không chạy trong bảng điều khiển, nó chạy trong trình giả lập thiết bị đầu cuối. PowerShell không hoạt động trong một thiết bị đầu cuối; nó bị treo vì nó đang cố sử dụng ReadConsoleInput thay vì ReadFile trên đầu vào tiêu chuẩn.
Barry Kelly


6

Điều đầu tiên là tốt khi thêm đường dẫn thực thi của PowerShell vào biến môi trường PATH của người dùng. Chúng tôi làm điều đó bằng cách thêm vào dòng tệp .bashrc của người dùng như:

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

Sau đó, chúng tôi có thể chạy tập lệnh PowerShell chỉ cần nhập vào phiên SSH của chúng tôi

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

Tất nhiên bây giờ chúng ta có thể đặt nó để sử dụng đầu ra của nó.

Tôi chỉ tự hỏi tại sao tôi phải nhấn "Enter" hai lần trong phiên SSH sau khi gõ lệnh để nó hoạt động.


4
Để tránh phải quay trở lại, hãy chạy lệnh như sau:echo "\n" | powershell.exe ...
Andrew

4

Hãy thử nó mà không có đầu vào

powershell.exe -inputformat none -noprofile echo hello

Có thể hữu ích cho việc không phải cung cấp một tệp cho máy cục bộ.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.