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

mal*_*c4k 16 windows powershell ssh cygwin copssh

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

ak2*_*ak2 13

只需powershell使用相关参数调用并将其通过管道传输到您想要的任何位置?你需要确保它在PATH课程中。

  • 没那么简单。PowerShell 使用控制台 API;Cygwin(在有经验的用户手中)不是在控制台中运行,而是在终端模拟器中运行。PowerShell 在终端中不起作用;它挂起是因为它试图在标准输入上使用 ReadConsoleInput 而不是 ReadFile。 (15认同)

小智 11

巴里·凯利是对的。

您需要使用我的包装软件来创建一个隐藏的控制台并在其上运行 PowerShell。

我的页面在这里:http : //sergeybelous.com/SHELL-TERMINAL.html#proxywinconsole.exe

有人已经找到了我的包装软件并在这里​​创建了一个教程:https : //ssh-with-powershell.blogspot.com/2013/07/enable-ssh-with-powershell-and-remove.html


mal*_*c4k 9

首先,最好将 PowerShell 的可执行路径添加到用户的 PATH 环境变量中。我们通过添加到用户的 .bashrc 文件行来实现,例如:

export PATH=${PATH}:"/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0"
Run Code Online (Sandbox Code Playgroud)

然后我们可以运行 PowerShell 脚本,只需在我们的 SSH 会话中输入

powershell.exe -File "c:\u.ps1"
Run Code Online (Sandbox Code Playgroud)

当然,现在我们可以通过管道使用它的输出。

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

  • 为避免回车,运行如下命令:`echo "\n" | powershell.exe ...` (4认同)