Як запустити скрипт PowerShell з сесії Cygwin SSH?


12

У мене Windows Server 2003 з CopSSH встановлений на ньому (Cygwin + sshd). Ми хотіли б мати можливість запустити скрипт PowerShell за допомогою команди сеансу SSH, а потім використовувати його вихід. Чи є така спроможність? Як це зробити ?

Відповіді:


11

Просто посилайтеся powershellна відповідні аргументи і передайте їх куди завгодно? Вам потрібно переконатися, що це в PATHкурсі.


Спасибі. Я не думав, що це так просто.
malloc4k

15
Це не так просто. PowerShell використовує консольний API; Cygwin (в руках досвідчених користувачів) не працює в консолі, він працює в емуляторі терміналу. PowerShell не працює в терміналі; він зависає, оскільки він намагається використовувати ReadConsoleInput замість ReadFile на стандартному вході.
Баррі Келлі

9

Баррі Келлі має рацію.

Вам потрібно використовувати моє програмне забезпечення для обгортки, яке створює приховану консоль і працює на ній.

Моя сторінка тут: http://sergeybelous.com/shell-terminal/#proxywinconsole.exe

Хтось уже знайшов моє програмне забезпечення для обгортки та створив тут підручник: http://ssh-with-powershell.blogspot.com/2013/07/enable-ssh-with-powershell-and-remove.html


6

Перше, що це добре, щоб додати виконуваний шлях PowerShell до змінної середовища PATH користувача. Ми робимо це, додаючи до файлу .bashrc файл рядок типу:

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

Тоді ми можемо запустити сценарій PowerShell, просто набравши наш SSH сеанс

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

Звичайно, тепер ми можемо передавати його, щоб використовувати його вихід.

Мені просто цікаво, чому я повинен два рази натиснути "Enter" у своєму сеансі SSH після введення команди, щоб вона працювала.


4
Щоб уникнути удару по поверненню, запустіть команду на зразок:echo "\n" | powershell.exe ...
Ендрю

4

Спробуйте його без введення інформації

powershell.exe -inputformat none -noprofile echo hello

Може бути корисним, якщо не потрібно доставляти файл на локальну машину.


3

Якщо вам потрібно запустити повноваження всередині cygwin / babun, дотримуйтесь https://code.google.com/p/mintty/isissue/detail?id=56#c64 . Як правило, знизу або компілюйте https://github.com/rprichard/winpty , скопіюйте його у свій $ PATH та запустіть

console.exe powershell

Це також працює з пакетними сценаріями, які викликають внутрішню оболонку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.