Obtendo todas as Sessões PS abertas em um servidor remoto (a partir da nova janela do console)
Eu posso iniciar 5 novas sessões PS em um servidor remoto e ver todas elas executando o 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]
Como esperado, quando eu tento abrir uma 6ª sessão, recebo o erro dizendo que é um não-não (devido ao limite padrão de PoswerShells de 5 PSSessions remotos simultâneos). Mas rodar Get-Session mostra todas as 5 sessões, então tudo está funcionando como deveria ser até agora:
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
No entanto, quando fecho esse console e abro um novo, a execução de Get-PSSession (com ou sem o parâmetro '-ComputerName' definido) não mostra nenhuma sessão aberta.
PS C:\> Get-PSSession
PS C:\>
Eu sei que essas sessões ainda estão abertas porque quando eu tento abrir um novo no meu novo console eu recebo o mesmo erro sobre mais de 5 sessões simultâneas:
PS C:\> New-PSSession -ComputerName MyServerName
New-PSSession : [......maximum number of 5 concurrent shells]
De acordo com 'Get-PSSession Get-Help -full' em execução 'Get-PSSession -ComputerName MyServerName deve obtertodos sessões PS remotas em um determinado servidor, independentemente de qual sessão ou computador eles foram iniciados (pelo menos do jeito que eu entendi):
"O comando retorna todas as sessões no [servidor remoto], mesmo que elas tenham sido criadas em sessões diferentes ou em computadores diferentes."
Então, existe uma maneira de encontrar e / ou remover qualquer sessão PS aberta em um servidor remoto - sem ter que fazer tudo de uma sessão de console?