PowerShell Remoting Windows -> Linux: отправить параметризованный скрипт - PullRequest
0 голосов
/ 25 февраля 2019

Я думаю, у меня это правильно на 90%, но кажется, что небольшая часть отсутствует ...

У меня нет проблем с открытием удаленного сеанса из Windows -> Linux (хост) Нет проблем с передачей командыили.Это прекрасно работает:

$Session = New-PSSession -SSHTransport -HostName 192.168.0.10 -UserName user
Invoke-Command -Session $Session { bash ~/sh/test.sh }

Но когда я пытаюсь превратить мою команду в переменную:

$cmd = "bash ~/sh/test.sh"
Invoke-Command -Session $Session { & "$using:cmd" }

, я получаю следующее сообщение об ошибке:

The term 'bash ~/sh/test.sh' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo          : ObjectNotFound: (bash ~/sh/test.sh:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
+ PSComputerName        : 192.168.0.10

Я проверил проблему пути как часть сообщения об ошибке.Есть идеи?

Спасибо, Филипп

1 Ответ

0 голосов
/ 25 февраля 2019

Мой ответ пока что трудоемкий.Ошибки, вероятно, остаются в удаленном взаимодействии Powershell: -)

1) Адаптируйте ваш файл test.sh, чтобы превратить его в сценарий Powershell: test.ps1 (надеюсь, у вас нет сложных сценариев)

2) Тогда все работает просто отлично:

$cmd = "~/sh/test.ps1"
Invoke-Command -Session $Session { & "$using:cmd" }

Другие идеи более чем приветствуются !!!

...