通过Posh-SSH重新启动Linux设备

时间:2018-03-14 21:31:20

标签: linux powershell ssh

我正在尝试从Windows 10上运行的PowerShell脚本重启Linux计算机。 我使用Posh-SSH模块。我通过SSH会话发送的所有其他命令工作正常,但无论我尝试什么,重启都没有效果。 通过常规SSH客户端会话(Putty或BitWise),这些命令可以立即工作并重启设备。 以下是示例命令:

Invoke-SSHCommand -SSHSession $session -Command "nohup reboot >/dev/null &" -EnsureConnection

我尝试了/不使用nohup。 尝试关机-r,重启,重启-f。 尝试使用退出命令 尝试睡眠/超时。

所有这些在SSH控制台中按预期工作,但没有通过Posh-SSH工作。 我错过了什么在Posh-SSH中有所不同?

1 个答案:

答案 0 :(得分:0)

最后,我设法通过使用流来实现它。 以下是代码段。在关闭流之前需要启动 - 睡眠,否则没有足够的间隔来运行它。

$stream=$session.Session.CreateShellStream("ps", 0, 0, 0, 0, 1000)
$stream.WriteLine("reboot")
Start-Sleep 1000
$stream.Close()