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


12

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

Answers:


11

只需调用powershell相关参数并将其通过管道传递到您想要的任何位置?您需要确保它是正确的PATH


谢谢。我没想到就这么简单。
malloc4k 2011年

15
这不是那么简单。PowerShell使用控制台API。Cygwin(由经验丰富的用户掌握)不在控制台中运行,而是在终端模拟器中运行。PowerShell在终端中不起作用;它挂起是因为它试图在标准输入上使用ReadConsoleInput而不是ReadFile。
巴里·凯利


6

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

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

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

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

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

我只是想知道为什么在输入SSH命令后才能在SSH会话中按两次Enter键。


4
为避免打回车,请运行以下命令:echo "\n" | powershell.exe ...
Andrew

4

无输入格式尝试

powershell.exe -inputformat none -noprofile echo hello

对于不必将文件传递到本地计算机很有用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.