掌握 PowerShell 遠程會話:互動式與持久訪問

管理遠程系統常常感覺像是在迷宮中航行。如果在嘗試排除伺服器問題時卡住,互動式會話可能是答案。通過正確的方法,您可以輕鬆連接到遠程機器,實時與其互動,甚至保持長期工作的連接。

在本指南中,您將學習如何發揮 PowerSell 會話的全部潛力,從挫折走向精通。

優化您的遠程管理技能,讓那些繁瑣的任務變得輕鬆!

開啟互動式會話

有時候,您可能需要實時排除故障或與遠程計算機互動。例如,診斷配置問題或驗證服務。遠程管理工具通常允許連接,但在不同系統之間切換可能很繁瑣。

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/