Remove-PSSession

Fecha uma ou mais sessões do Windows PowerShell (PSSessions).

Sintaxe

Remove-PSSession [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-PSSession [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-PSSession [-InstanceId <Guid[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-PSSession [-Name <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-PSSession [-Session] <PSSession[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrição

O cmdlet Remove-PSSession fecha as sessões do Windows PowerShell (PSSessions) na sessão atual. Ele interrompe qualquer comando que esteja em execução nas PSSessions, encerra a PSSession e libera os recursos que a PSSession estava usando. Se a PSSession estiver conectada a um computador remoto, Remove-PSSession também fechará a conexão entre os computadores local e remoto.

Para remover uma PSSession, insira os valores Name, ComputerName, ID ou InstanceID da sessão.

Se você salvou a PSSession em uma variável, o objeto da sessão permanecerá na variável, mas o estado da PSSession será "Fechado".

Parâmetros

-ComputerName <string[]>

Fecha as PSSessions que estão conectadas aos computadores especificados. Os caracteres curinga são permitidos.

Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado de um ou mais computadores remotos. Para especificar o computador local, digite o nome do computador, "localhost" ou um ponto (.).

Necessário? false
Posição? 1
Valor padrão
Aceitar entrada do pipeline? true (ByPropertyName)
Aceitar caracteres curinga? true

-Id <Int32[]>

Fecha as PSSessions com as IDs especificadas. Digite uma ou mais IDs (separadas por vírgulas) ou use o operador de intervalo (..) para especificar um intervalo de IDs

Uma ID é um inteiro que identifica com exclusividade a PSSession na sessão atual. É mais fácil de lembrar e digitar do que o InstanceId, mas ela é exclusiva somente na sessão atual. Para localizar a ID de uma PSSession, use Get-PSSession sem parâmetros.

Necessário? true
Posição? 1
Valor padrão
Aceitar entrada do pipeline? true (ByPropertyName)
Aceitar caracteres curinga? false

-InstanceId <Guid[]>

Fecha as PSSessions com as IDs de instância especificadas.

Uma ID de instância é um GUID que identifica com exclusividade uma PSSession na sessão atual. O InstanceID é exclusivo, mesmo quando você tem várias sessões em execução em um único computador.

O InstanceID é armazenado na propriedade InstanceID do objeto que representa uma PSSession. Para localizar o InstanceID das PSSessions na sessão atual, digite "Get-PSSession | Format-Table Name, ComputerName, InstanceId".

Necessário? false
Posição? named
Valor padrão
Aceitar entrada do pipeline? true (ByPropertyName)
Aceitar caracteres curinga? false

-Name <string[]>

Fecha as PSSessions com os nomes amigáveis especificados. Os caracteres curinga são permitidos.

Como o nome amigável de uma PSSession talvez não seja exclusivo, ao usar o parâmetro Name, avalie a possibilidade de usar o parâmetro WhatIf ou Confirm no comando Remove-PSSession.

Necessário? false
Posição? named
Valor padrão
Aceitar entrada do pipeline? true (ByPropertyName)
Aceitar caracteres curinga? true

-Session <PSSession[]>

Especifica os objetos de sessão das PSSessions a serem fechadas. Insira uma variável que contenha as PSSessions ou um comando que crie ou obtenha as PSSessions, como o comando New-PSSession ou Get-PSSession. Também é possível canalizar um ou mais objetos de sessão para Remove-PSSession.

Necessário? true
Posição? 1
Valor padrão
Aceitar entrada do pipeline? true (ByValue, ByPropertyName)
Aceitar caracteres curinga? false

-Confirm

Solicita confirmação antes da execução do comando.

Necessário? false
Posição? named
Valor padrão
Aceitar entrada do pipeline? false
Aceitar caracteres curinga? false

-WhatIf

Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.

Necessário? false
Posição? named
Valor padrão
Aceitar entrada do pipeline? false
Aceitar caracteres curinga? false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas System.Management.Automation.Runspaces.PSSession

Você pode canalizar um objeto de sessão para Remove-PSSession.

Saídas None

Remove-PSSession não retorna objetos.

Observações

O parâmetro ID é obrigatório. Você não pode digitar "remove-pssession" sem parâmetros. Para excluir todas as PSSessions na sessão atual, digite "Get-PSSession | remove-pssession".

Uma PSSession usa uma conexão persistente com um computador remoto. Crie uma PSSession para executar uma série de comandos que compartilham dados. Para obter mais informações, consulte about_PSSessions.

PSSessions são específicas da sessão atual. Quando você encerra uma sessão, as PSSessions que você criou nessa sessão são obrigatoriamente fechadas.

Exemplo 1

C:\PS>remove-pssession -id 1, 2
Descrição
-----------
Esse comando remove as PSSessions com IDs 1 e 2.

Exemplo 2

C:\PS>get-pssession | remove-pssession 
C:\PS> remove-pssession -session (get-pssession)
C:\PS> $s = get-pssession 
C:\PS> remove-pssession -session $s".
Descrição
-----------
Esses comandos removem todas as PSSessions na sessão atual. Embora os três formatos de comando tenham aparência diferente, eles têm o mesmo efeito.

Exemplo 3

C:\PS>$r = get-pssession -computername Serv*
$r | remove-pssession
Descrição
-----------
Esses comandos fecham as PSSessions conectadas a computadores com nomes que começam com "Serv".

Exemplo 4

C:\PS>get-pssession | where {$_.port -eq 90} | remove-pssession
Descrição
-----------
Esse comando fecha as PSSessions que estão conectadas à porta 90. Você pode usar esse formato de comando para identificar PSSessions por propriedades diferentes de ComputerName, Name, InstanceID e ID.

Exemplo 5

C:\PS>get-pssession | ft computername, instanceID  -auto
ComputerName InstanceId
------------ ----------------
Server01     875d231b-2788-4f36-9f67-2e50d63bb82a
localhost    c065ffa0-02c4-406e-84a3-dacb0d677868
Server02     4699cdbc-61d5-4e0d-b916-84f82ebede1f
Server03     4e5a3245-4c63-43e4-88d0-a7798bfc2414
TX-TEST-01   fc4e9dfa-f246-452d-9fa3-1adbdd64ae85
C:\PS> remove-pssession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85
Descrição
-----------
Esses comandos mostram como fechar uma PSSession com base em sua ID de instância (RemoteRunspaceID). 
O primeiro comando usa o cmdlet Get-PSsession para obter as PSSessions na sessão atual. Ele usa um operador de pipeline (|) para enviar as PSSessions para o cmdlet Format-Table (alias: ft), que formata suas propriedades ComputerName e InstanceID em uma tabela. O parâmetro -AutoSize ("auto") compacta as colunas para exibição.
Na exibição resultante, o administrador pode identificar a PSSession a ser fechada e copiar e colar o InstanceID dessa PSSession no segundo comando. 
O segundo comando usa o cmdlet Remove-PSSession para remover a PSSession com a ID de instância especificada.

Exemplo 6

C:\PS>function EndPSS { get-pssession | remove-pssession }
Descrição
-----------
Essa função exclui todas as PSSessions na sessão atual. Depois de adicionar essa função ao seu perfil do Windows PowerShell, basta digitar "endpss" para excluir todas as sessões.

See Also