我可以在远程服务器上启动 5 个新的 PS 会话,并通过运行 Get-PSSession 查看它们
PS C:\> New-PSSession -ComputerName MyServerName
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Session1 MyServerName Opened Microsoft.PowerShell Available
[repeat 4 more times]
正如预期的那样,当我尝试打开第 6 个会话时,我收到错误消息说这是一个不可以(由于 PoswerShell 默认限制为 5 个并发远程 PSSession)。但是运行 Get-Session 会显示所有 5 个会话,因此到目前为止一切正常:
PS C:\> New-PSSession -ComputerName MyServerName
New-PSSession : [......maximum number of 5 concurrent shells]
PS C:\> Get-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Session1 MyServerName Opened Microsoft.PowerShell Available
2 Session2 MyServerName Opened Microsoft.PowerShell Available
3 Session3 MyServerName Opened Microsoft.PowerShell Available
4 Session4 MyServerName Opened Microsoft.PowerShell Available
5 Session5 MyServerName Opened Microsoft.PowerShell Available
但是,当我关闭该控制台并打开一个新控制台时,运行 Get-PSSession(定义或不定义“-ComputerName”参数)根本没有打开会话。
PS C:\> Get-PSSession
PS C:\>
我知道这些会话仍然打开,因为当我尝试在我的新控制台中打开一个新的会话时,我收到关于超过 5 个并发会话的相同错误:
PS C:\> New-PSSession -ComputerName MyServerName
New-PSSession : [......maximum number of 5 concurrent shells]
根据 'Get-PSSession Get-Help -full' 运行 'Get-PSSession -ComputerName MyServerName 应该在特定服务器上获取所有远程 PS 会话,无论它们是从哪个会话或计算机启动的(至少我理解的方式):
“该命令返回 [远程服务器] 上的所有会话,即使它们是在不同会话或不同计算机上创建的。”
那么,有没有办法在远程服务器上查找和/或删除任何打开的 PS 会话——而不必从一个控制台会话中完成所有操作?