Partilhar via


Remove-PSSession

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

Sintaxe

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

Description

O cmdlet Remove-PSSession fecha sessões do PowerShell (PSSessions) na sessão atual. Ele interrompe todos os comandos que estão sendo executados no PSSessions, termina o PSSessione libera os recursos que o PSSession estava usando. Se o PSSession estiver conectado a um computador remoto, esse cmdlet também fechará a conexão entre os computadores local e remoto.

Para remover umPSSession , insira o Nome, ComputerName , IDou InstanceID da sessão.

Se você salvou o PSSession em uma variável, o objeto session permanecerá na variável, mas o estado do PSSession será Closed.

Exemplos

Exemplo 1: Remover sessões usando IDs

Remove-PSSession -Id 1, 2

Este comando remove os PSSessions que têm IDs 1 e 2.

Exemplo 2: Remover todas as sessões na sessão atual

Get-PSSession | Remove-PSSession
Remove-PSSession -Session (Get-PSSession)
$s = Get-PSSession
Remove-PSSession -Session $s

Esses comandos removem todos os PSSessions na sessão atual. Embora os três formatos de comando pareçam diferentes, eles têm o mesmo efeito.

Exemplo 3: Fechar sessões usando nomes

$r = Get-PSSession -ComputerName Serv*
$r | Remove-PSSession

Esses comandos fecham os PSSessions conectados a computadores com nomes que começam com Serv.

Exemplo 4: Fechar sessões conectadas a uma porta

Get-PSSession | where {$_.port -eq 90} | Remove-PSSession

Este comando fecha os PSSessions que estão conectados à porta 90. Você pode usar esse formato de comando para identificar PSSessions por propriedades diferentes de ComputerName, Name, InstanceIDe ID.

Exemplo 5: Fechar uma sessão com base no ID da instância

Get-PSSession | Format-Table ComputerName, InstanceID  -AutoSize

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 PS C:\> Remove-PSSession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

Esses comandos mostram como fechar um PSSession com base em sua ID de instância ou RemoteRunspaceID.

O primeiro comando usa o cmdlet Get-PSSession para obter o PSSessions na sessão atual. Ele usa um operador de pipeline (|) para enviar o PSSessions para o cmdlet Format-Table, que formata suas propriedades ComputerName e InstanceID em uma tabela. O parâmetro AutoSize compacta as colunas para exibição.

Na exibição resultante, você pode identificar o PSSession a ser fechado e copiar e colar o InstanceID desse PSSession no segundo comando.

O segundo comando usa o cmdlet Remove-PSSession para remover o PSSession com a ID de instância especificada.

Exemplo 6: Criar uma função que exclui todas as sessões na sessão atual

Function EndPSS { Get-PSSession | Remove-PSSession }

Esta função exclui todos os PSSessions na sessão atual. Depois de adicionar essa função ao seu perfil do PowerShell, para excluir todas as sessões, digite EndPSS.

Parâmetros

-ComputerName

Especifica uma matriz de nomes de computadores. Este cmdlet fecha os PSSessions conectados aos computadores especificados. 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 (.).

Tipo:String[]
Aliases:Cn
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

-Confirm

Solicita confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Id

Especifica uma matriz de IDs de sessões. Este cmdlet fecha o 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.

Um ID é um número inteiro que identifica exclusivamente o PSSession na sessão atual. É mais fácil lembrar e digitar do que o InstanceId, mas é exclusivo apenas na sessão atual. Para localizar a ID de um PSSession, execute o cmdlet Get-PSSession sem parâmetros.

Tipo:Int32[]
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-InstanceId

Especifica uma matriz de IDs de instância. Este cmdlet fecha os PSSessions que têm as IDs de instância especificadas.

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

O ID da instância é armazenado na propriedade InstanceID do objeto que representa um PSSession. Para localizar o InstanceID do PSSessions na sessão atual, digite .

Tipo:Guid[]
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-Name

Especifica uma matriz de nomes amigáveis de sessões. Este cmdlet fecha os PSSessions que têm os nomes amigáveis especificados. Caracteres curinga são permitidos.

Como o nome amigável de um PSSession pode não ser exclusivo, quando você usa o parâmetro Name, considere também usar o parâmetro WhatIf ou Confirm no comando Remove-PSSession.

Tipo:String[]
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

-Session

Especifica os objetos de sessão do PSSessions para fechar. Insira uma variável que contenha o PSSessions ou um comando que crie ou obtenha o PSSessions, como um New-PSSession ou comando Get-PSSession. Você também pode canalizar um ou mais objetos de sessão para Remove-PSSession.

Tipo:PSSession[]
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

PSSession

Você pode canalizar um objeto de sessão para esse cmdlet.

Saídas

None

Este cmdlet não retorna nenhum objeto.

Notas

  • O parâmetro Id é obrigatório. Para excluir todos os PSSessions na sessão atual, digite Get-PSSession | Remove-PSSession.
  • Um PSSession usa uma conexão persistente com um computador remoto. Crie um PSSession para executar uma série de comandos que compartilham dados. Para obter mais informações, digite Get-Help about_PSSessions.
  • PSSessions são específicos para a sessão atual. Quando você termina uma sessão, os PSSessions que você criou nessa sessão são fechados à força.