如何从Cygwin SSH会话运行PowerShell脚本?

我有安装了CopSSH的Windows Server 2003(Cygwin + sshd)。 W希望能够通过SSH会话命令运行PowerShell脚本,然后使用它的输出。 有这样的能力吗? 怎么做 ?

只要用相关的参数调用powershell ,并将其pipe到任何你想要的地方? 当然,你需要确保它在PATH中。

巴里凯利是正确的。

您需要使用我的包装软件创build隐藏的控制台,并运行它的PowerShell。

我的页面在这里: http : //sergeybelous.com/shell-terminal/#proxywinconsole.exe

有人已经find我的包装软件,并在这里创build了教程: http : //ssh-with-powershell.blogspot.com/2013/07/enable-ssh-with-powershell-and-remove.html

首先,将PowerShell的可执行path添加到用户的PATH环境variables中是很好的事情。 我们通过添加到用户的.bashrc文件行如下所示:

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

然后我们可以运行PowerShell脚本,只需input我们的SSH会话

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

当然,现在我们可以pipe它来使用它的输出。

我只是想知道为什么我必须在我的SSH会话中按两次“Enter”键入命令才能工作。

尝试没有input格式

powershell.exe -inputformat none -noprofile echo hello

可以用于不必将文件传送到本地机器。

如果您需要在cygwin / babun中运行powershell,请按照https://code.google.com/p/mintty/issues/detail?id=56#c64 。 基本上,下载或编译https://github.com/rprichard/winpty ,将其复制到您的$ PATH,然后运行

 console.exe powershell 

这也适用于内部调用powershell的批处理脚本。