Eu descobri o | estava sendo interpretado por ssh. Eu só precisava adicionar aspas simples ao comando que o SSH executaria. Os seguintes trabalhos.
ssh vc-mgmt 'powershell -nologo -Command "get-vm | get-snapshot"'
Eu tenho uma máquina Windows com o openssh-server em execução e posso executar comandos através dela. Por exemplo ...
Isso funciona:
ssh vc-mgmt powershell -nologo -Command "get-vm"
Isso não funciona:
ssh vc-mgmt powershell -nologo -Command "get-vm | get-snapshot"
Retorna o erro:
'get-snapshot' is not recognized as an internal or external command, operable program or batch file.
Se eu abrir o Powershell manualmente e executar get-vm | get-snapshot
, ele funcionará como esperado.
Minha pergunta: Como posso fazer o segundo exemplo funcionar?
Eu descobri o | estava sendo interpretado por ssh. Eu só precisava adicionar aspas simples ao comando que o SSH executaria. Os seguintes trabalhos.
ssh vc-mgmt 'powershell -nologo -Command "get-vm | get-snapshot"'
Tags command-line ssh vmware powershell