2011-06-13 51 views
3

我有一個Powershell .ps腳本,它在Windows計算機中執行一些基本的東西。我通過ssh-ing來調用這個腳本到windows機器上。 Windows機器上安裝了cygwin Open-SSh。如何在從cygwin運行時結束s Powershell腳本

問題:腳本被執行但不會返回到SSH會話。 如何讓PowerShell腳本結束並將控制權返還給SSH會話?

+0

你是如何運行腳本?你使用的是什麼命令? – EBGreen 2011-06-13 17:28:28

回答

2

可能有點遲,但是我們在安裝cygwin sshd在linux webserver的citrix服務器上運行powershell命令後出現類似的問題。

我們最終落此頁上: http://epeleg.blogspot.com/2010/06/solution-to-powershell-never-exists.html

這促使我們去創造與它內部的PowerShell命令一個批處理文件,語法如下:


%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Noninteractive -Command "& { "your powershell script and arguments here" }"<NUL 

我們只需運行批處理文件,而不是直接調用powershell,並使用%1作爲變量,如果我們需要在批處理文件中。

< NUL在最後告訴powershell不要期望輸入,並使其退回到ssh提示符。我希望這可以幫助你,或者有人落在這個線程上!

0

Devnull的解決方案爲我工作,但關鍵是<NUL

我試圖通過遠程計算機上的Perl腳本執行Cygwin Openssh連接的Powershell命令。而不是創建一個批處理文件,我寫的PowerShell命令到PS1文件,通過scp轉讓本,然後用下面的Perl執行它通過ssh:

my ($stdout,$stderr) = Net::SSH->new("[email protected]")->capture2({ timeout => $timeout }, "powershell -file $copied_ps1_file<NUL"); 
相關問題