![在 powershell - 命令参数中使用管道](https://linux22.com/image/1526281/%E5%9C%A8%20powershell%20-%20%E5%91%BD%E4%BB%A4%E5%8F%82%E6%95%B0%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%AE%A1%E9%81%93.png)
我有一台正在运行 openssh-server 的 Windows 机器,我可以通过它执行命令。例如...
这有效:
ssh vc-mgmt powershell -nologo -Command "get-vm"
这不起作用:
ssh vc-mgmt powershell -nologo -Command "get-vm | get-snapshot"
返回错误:
‘get-snapshot’ 不被识别为内部或外部命令、可运行程序或批处理文件。
如果我手动打开 Powershell 并运行,get-vm | get-snapshot
它会按预期工作。
我的问题: 我怎样才能使第二个示例发挥作用?
答案1
我发现 | 被 ssh 解释。我只需要在 SSH 将执行的命令中添加单引号。以下有效。
ssh vc-mgmt 'powershell -nologo -Command "get-vm | get-snapshot"'