Remove-PSSession

Cierra una o varias sesiones de PowerShell (PSSessions).

Syntax

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

El Remove-PSSession cmdlet cierra las sesiones de PowerShell (PSSessions) en la sesión actual. Detiene los comandos que se ejecutan en PSSessions, finaliza PSSession y libera los recursos que estaba usando PSSession. Si PSSession está conectado a un equipo remoto, este cmdlet también cierra la conexión entre los equipos locales y remotos.

Para quitar una PSSession, escriba el Nombre, NombreDeEquipo, Id. o InstanceID de la sesión.

Si ha guardado la PSSession en una variable, el objeto de sesión permanece en la variable, pero el estado de PSSession es Closed.

Ejemplos

Ejemplo 1: Quitar sesiones por identificador

Remove-PSSession -Id 1, 2

Este comando quita las PSSessions que tienen identificadores 1 y 2.

Ejemplo 2: Quitar todas las sesiones de la sesión actual

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

Estos comandos quitan todas las PSSessions de la sesión actual. A pesar de que el formato de los tres comandos es diferente, su efecto es el mismo.

Ejemplo 3: Cerrar sesiones por nombre

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

Estos comandos cierran las PSSessions que están conectadas a equipos que tienen nombres que comienzan por Serv.

Ejemplo 4: Cerrar sesiones conectadas a un puerto

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

Este comando cierra las PSSessions que están conectadas al puerto 90. Puede usar este formato de comando para identificar PSSessions por propiedades distintas de ComputerName, Name, InstanceID e ID.

Ejemplo 5: Cerrar una sesión por identificador de instancia

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

Estos comandos muestran cómo cerrar una PSSession en función de su identificador de instancia o RemoteRunspaceID.

El primer comando usa el Get-PSSession cmdlet para obtener las PSSessions en la sesión actual. Usa un operador de canalización (|) para enviar las PSSessions al cmdlet , que da formato a Format-Table sus propiedades ComputerName e InstanceID en una tabla. El parámetro AutoSize comprime las columnas para mostrar.

En la pantalla resultante, puede identificar la PSSession que se va a cerrar y copiar y pegar el valor de InstanceID de esa PSSession en el segundo comando.

El segundo comando usa el Remove-PSSession cmdlet para quitar la PSSession con el identificador de instancia especificado.

Ejemplo 6: Creación de una función que elimina todas las sesiones de la sesión actual

Function EndPSS { Get-PSSession | Remove-PSSession }

Esta función cierra todas las PSSession de la sesión actual. Después de agregar esta función al perfil de PowerShell, para eliminar todas las sesiones, escriba EndPSS.

Parámetros

-ComputerName

Especifica una matriz de nombres de equipos. Este cmdlet cierra las PSSessions que están conectadas a los equipos especificados . Se permite el uso de caracteres comodín.

Escriba el nombre de NetBIOS, una dirección IP o un nombre de dominio completo de uno o más equipos remotos. Para especificar el equipo local, escriba el nombre del equipo, localhosto un punto (.).

Type:String[]
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContainerId

Especifica una matriz de identificadores de contenedores. Este cmdlet quita las sesiones de cada uno de los contenedores especificados. Use el docker ps comando para obtener una lista de identificadores de contenedor. Para obtener más información, consulte la ayuda para el comando docker ps .

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Id

Especifica una matriz de identificadores de sesiones. Este cmdlet cierra las PSSessions con los identificadores especificados. Escriba uno o varios identificadores, separados por comas, o use el operador de intervalo (..) para especificar un intervalo de identificadores.

Un identificador es un entero que identifica de forma única la PSSession en la sesión actual. Es más fácil recordar y escribir que instanceId, pero solo es único en la sesión actual. Para buscar el identificador de una PSSession, ejecute el Get-PSSession cmdlet sin parámetros.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Especifica una matriz de identificadores de instancia. Este cmdlet cierra las PSSessions que tienen los identificadores de instancia especificados.

El identificador de instancia es un GUID que identifica de forma única una PSSession en la sesión actual. El identificador de instancia es único, incluso cuando se ejecutan varias sesiones en un solo equipo.

El identificador de instancia se almacena en la propiedad InstanceID del objeto que representa una PSSession. Para buscar el instanceID de las PSSessions en la sesión actual, escriba Get-PSSession | Format-Table Name, ComputerName, InstanceId.

Type:Guid[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Especifica una matriz de nombres descriptivos de sesiones. Este cmdlet cierra las PSSessions que tienen los nombres descriptivos especificados . Se permite el uso de caracteres comodín.

Dado que el nombre descriptivo de una PSSession puede no ser único, al usar el parámetro Name , considere también el uso del parámetro WhatIf o Confirm en el Remove-PSSession comando.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Session

Especifica los objetos de sesión de psSessions que se van a cerrar. Escriba una variable que contenga psSessions o un comando que cree o obtenga las PSSessions, como un New-PSSession comando o Get-PSSession . También puede canalizar uno o varios objetos de sesión a Remove-PSSession.

Type:PSSession[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMId

Especifica una matriz de identificadores de máquinas virtuales. Este cmdlet inicia una sesión interactiva con cada una de las máquinas virtuales especificadas. Para ver las máquinas virtuales que están disponibles, use el siguiente comando:

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

Type:Guid[]
Aliases:VMGuid
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Especifica una matriz de nombres de máquinas virtuales. Este cmdlet inicia una sesión interactiva con cada una de las máquinas virtuales especificadas. Para ver las máquinas virtuales que están disponibles, use el Get-VM cmdlet .

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSSession

Puede canalizar un objeto de sesión a este cmdlet.

Salidas

None

Este cmdlet no devuelve ningún resultado.

Notas

PowerShell incluye los siguientes alias para Remove-PSSession:

  • Todas las plataformas:

    • rsn
  • El parámetro Id es obligatorio. Para eliminar todas las PSSessions de la sesión actual, escriba Get-PSSession | Remove-PSSession.

  • Una PSSession usa una conexión persistente a un equipo remoto. Cree una PSSession para ejecutar una serie de comandos que comparten datos. Para obtener más información, escriba Get-Help about_PSSessions.

  • PSSessions son específicos de la sesión actual. Cuando finaliza una sesión, las PSSessions que creó en esa sesión se cierran forzadamente.