1

我正在尝试从 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 中的不同之处?

4

1 回答 1

1

最后我设法通过使用流来让它工作。下面是代码片段。在关闭流之前需要开始睡眠,否则没有足够的时间间隔来运行它。

$stream=$session.Session.CreateShellStream("ps", 0, 0, 0, 0, 1000)
$stream.WriteLine("reboot")
Start-Sleep 1000
$stream.Close()
于 2018-03-14T21:46:36.413 回答