掌握 PowerShell 远程会话:交互式和持久访问

管理远程系统通常感觉像是在迷宫中导航。如果您在尝试排除服务器问题时遇到困难,交互式会话可能是答案。通过正确的方法,您可以轻松连接到远程计算机,实时与其交互,甚至保持长期工作的连接。

在本指南中,您将学习如何发挥PowerShell会话的全部潜力,从挫折走向精通。

简化您的远程管理工作,让那些繁琐的任务变得轻松!

打开交互式会话

有时,您可能需要实时排除故障或与远程计算机交互。例如,诊断配置问题或验证服务。远程管理工具通常允许连接,但在不同系统之间切换可能很麻烦。

PowerShell中的交互式会话通过让您无缝连接到远程计算机并像在本地控制台中一样运行命令,提供了解决方案。

在开始交互式会话之前,请确保远程系统已启用并正确配置了Windows远程管理(WinRM)。使用以下命令在远程系统上启用WinRM:Enable-PSRemoting -Force

要开始交互式会话,请使用Enter-PSSession命令:

Enter-PSSession -ComputerName SRV2

注意提示现在包括远程计算机的名称,表示已建立活动连接。

确认会话正在远程计算机上运行:

hostname

完成任务后,您可以退出会话:

exit

在使用 Enter-PSSession 时,一旦退出,会话就会结束。

通过以下步骤验证会话:

Get-PSSession

不应列出任何会话,因为它们已不存在。

创建和管理持久会话

交互会话对实时任务很有帮助,但一旦关闭,它们就会消失,这限制了持续工作的灵活性。想象一下需要自动化一些命令,暂时断开连接,然后重新连接以继续之前的工作。

不用担心。持久会话填补了这一缺口,即使您退出控制台或重新启动,仍会保持本地计算机与远程计算机之间的连接。

为了结合非交互和交互用例,创建一个持久会话:

$session = New-PSSession -ComputerName SRV2

创建后,使用 Session 参数与新会话交互:

Enter-PSSession -Session $session

退出会话,并再次检查是否存在打开的会话:

exit
Get-PSSession

New-PSSession 命令会保持创建的会话可用。

您也可以非交互地使用会话:

Invoke-Command -Session $session -ScriptBlock {'Yay! I am in the remote computer!'}

断开和重新连接会话

持续工作可能需要您暂时断开会话而不是完全终止它。一个例子是当您需要重新启动本地控制台时,断开会保留会话状态,使您可以稍后重新连接。

PowerShell 允许您断开远程会话并保持其活动状态,以便稍后重新连接。

要断开会话:

Disconnect-PSSession -Session $session

会话现在显示为 已断开连接.

即使在重启 PowerShell 控制台后,您仍可以重新连接到会话:

Connect-PSSession -ComputerName SRV2

此过程允许在同一会话中恢复任务。

最后,清理并移除所有会话:

Get-PSSession | Remove-PSSession

💡 提示:持久会话可以非常强大,但让它们持续运行可能会消耗本地或远程机器的系统资源。当不再需要时,总是要清理会话,以保持最佳性能。

结论

交互式和持久的 PowerShell 会话为远程系统管理提供了强大的工具,提供灵活性和效率。

无论您是在实时故障排除、自动化命令,还是在重启之间保留工作,这些技术都能实现对远程系统的无缝控制。

掌握会话管理,提升您高效处理各种管理任务的技能!

Source:
https://adamtheautomator.com/powershell-interactive-sessions/