我很难理解远程会话期间 PowerShell 中的持久连接。我创建了持久连接并创建了一个变量来测试其寿命:
$session = new-pssession server1
enter-pssession -session $session
$myvar = "abc"
现在我关闭 shell 窗口来模拟计算机故障或重新启动。我打开一个新的 shell 并尝试server1
使用以下命令获取连接:
get-pssession server1
结果一无所获。我该如何回到之前的会话?
据说持久连接可以承受断开连接或故障,并且应该可以从您的计算机甚至另一台计算机使用,但我无法让它工作。我做错了什么?
答案1
您创建的所有会话都存在于本地 Windows PowerShell 会话中,因此当您关闭 Windows PowerShell 时,所有剩余的会话对象都会自动丢弃。会话对象并非设计为跨会话持久的。
答案2
Jim 是对的。您链接的文章说,如果您丢失了网络连接,您可以在恢复后恢复操作。在这种情况下,持久意味着它在命令完成后保持会话打开。如果没有 New-Session 命令,Powershell 会在完成任务时自动清理连接。您遵循的说明是只要您正在运行 shell,就可以保持会话打开。