Cygwin SSHセッションからPowerShellスクリプトを実行する方法は?


12

CopSSHがインストールされたWindows Server 2003(Cygwin + sshd)があります。Wは、SSHセッションコマンドを介してPowerShellスクリプトを実行し、その出力を使用できるようにしたいと考えています。そのような機能はありますか?どうやってするの ?

回答:


11

powershell関連する引数で呼び出して、必要な場所にパイプするだけですか?あなたはそれPATHがもちろんであることを確認する必要があります。


ありがとう。そんなに簡単だとは思いませんでした。
malloc4k

15
それほど単純ではありません。PowerShellはコンソールAPIを使用します。Cygwin(経験豊富なユーザーの手に渡る)はコンソールでは実行されず、ターミナルエミュレーターで実行されます。PowerShellはターミナルでは機能しません。標準入力でReadFileの代わりにReadConsoleInputを使用しようとしているため、ハングします。
バリーケリー

9

バリー・ケリーは正しい。

非表示のコンソールを作成し、その上でPowerShellを実行するラッパーソフトウェアを使用する必要があります。

私のページはこちらです: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"

次に、SSHセッションに入力するだけでPowerShellスクリプトを実行できます。

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

もちろん、パイプを使用して出力を使用できます。

コマンドを入力してからSSHセッションで「Enter」を2回押す必要があるのか​​疑問に思っています。


4
:ヒット復帰することを避けるために、同様のコマンドを実行しますecho "\n" | powershell.exe ...
アンドリュー・

4

入力フォーマットなしで試してください

powershell.exe -inputformat none -noprofile echo hello

ローカルマシンにファイルを配信する必要がない場合に役立ちます。


3

cygwin / babun内​​でPowerShellを実行する必要がある場合は、https: //code.google.com/p/mintty/issues/detail?id=56#c64に従ってください。基本的にhttps://github.com/rprichard/winptyをダウンロードまたはコンパイルし、$ PATHにコピーして実行します

console.exe powershell

これは、内部でpowershellを呼び出すバッチスクリプトでも機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.