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
      -ContainerId <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -VMId <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -VMName <String[]>
      [-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 Remove-PSSession cmdlet fecha as sessões do PowerShell (PSSessions) na sessão atual. Ele interrompe todos os comandos que estão sendo executados no PSSessions, encerra o PSSession e 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 um PSSession, insira o Name, o ComputerName, o ID ou o InstanceID da sessão.

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

Exemplos

Exemplo 1: Remover sessões por ID

Remove-PSSession -Id 1, 2

Esse 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 o formato dos três comandos pareçam diferentes, eles têm o mesmo efeito.

Exemplo 3: Fechar sessões por nome

$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

Esse 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, InstanceID e ID.

Exemplo 5: Fechar uma sessão por ID de 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

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 Get-PSSession cmdlet para obter o PSSessions na sessão atual. Ele usa um operador de pipeline (|) para enviar o PSSessions para o cmdlet, que formata Format-Table 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 Remove-PSSession cmdlet 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 }

Essa função fecha cada PSSession 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. Esse cmdlet fecha os PSSessions que estão 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, localhostou um ponto (.).

Tipo:String[]
Aliases:Cn
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:True

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ContainerId

Especifica uma matriz de IDs de contêineres. Esse cmdlet remove sessões para cada um dos contêineres especificados. Use o docker ps comando para obter uma lista de IDs de contêiner. Para obter mais informações, consulte a ajuda do comando docker ps .

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Id

Especifica uma matriz de IDs de sessões. Esse 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.

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

Tipo:Int32[]
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-InstanceId

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

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

A ID da instância é armazenada na propriedade InstanceID do objeto que representa um PSSession. Para localizar o InstanceID do PSSessions na sessão atual, digite Get-PSSession | Format-Table Name, ComputerName, InstanceId.

Tipo:Guid[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Name

Especifica uma matriz de nomes amigáveis de sessões. Esse 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, ao usar o parâmetro Name , considere também usar o parâmetro WhatIf ou Confirm no Remove-PSSession comando.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:True

-Session

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

Tipo:PSSession[]
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-VMId

Especifica uma matriz de ID de máquinas virtuais. Esse cmdlet inicia uma sessão interativa com cada uma das máquinas virtuais especificadas. Para ver as máquinas virtuais disponíveis para você, use o seguinte comando:

Get-VM | Select-Object -Property Name, ID

Tipo:Guid[]
Aliases:VMGuid
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-VMName

Especifica uma matriz de nomes de máquinas virtuais. Esse cmdlet inicia uma sessão interativa com cada uma das máquinas virtuais especificadas. Para ver as máquinas virtuais disponíveis para você, use o Get-VM cmdlet.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-WhatIf

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

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

PSSession

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

Saídas

None

Esse cmdlet não retorna nenhuma saída.

Observações

O PowerShell inclui os seguintes aliases para Remove-PSSession:

  • Todas as plataformas:

    • rsn
  • 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ê encerra uma sessão, os PSSessions que você criou nessa sessão são fechados à força.