我想使用Powerhsell 中的一个模块Posh-SSH在远程服务器上运行本地 python 脚本。本主题通过执行以下操作在常规 ssh 中提及它:
Get-Content hello.py | ssh user@192.168.1.101 python -
我想在这里使用 Posh-SSH 模块,但我不知道如何实现它......
我试过这样但它不起作用
Invoke-SSHCommand -Index $sessionid.sessionid -Command "$(Get-Content hello.py) | python3 -u -" -ErrorAction Stop
编辑
没有显示错误,只是卡在上面,什么也不做......
编辑2
好的,我现在明白了,为什么我在发送多行 py 文件时会出现此错误。
新行没有被重新转录,看看什么命令将被发送到远程服务器:
python3 -u - <<"--ENDOFPYTHON--"
chevre="basic" print("Hello, World!")
--ENDOFPYTHON--
并不是:
python3 -u - <<"--ENDOFPYTHON--"
chevre="basic"
print("Hello, World!")
--ENDOFPYTHON--
编辑3
最后完成!感谢这个主题,我执行了将空格更改为换行符的操作。这样做只是为了这个
( (Get-Content hello.py) -join "`r`n")
而不是简单
$(Get-Content hello.py)
最后一行将是:
$cmd = "python3 -u - <<`"--ENDOFPYTHON--`"`n$((Get-Content $pyscript) -join "`r`n")`n--ENDOFPYTHON--"
Invoke-SSHCommand -Index $sessionid.sessionid -Command $cmd -ErrorAction Stop
也不要忘记删除线
#!/usr/bin/env python3
如果存在于您的 py 文件之上,否则它将无法工作。