2011-06-13 96 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");