Partager via


Remove-PSSession

Ferme une ou plusieurs sessions PowerShell (PSSessions).

Syntaxe

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

L’applet de commande Remove-PSSession ferme les sessions PowerShell (psSessions) dans la session active. Il arrête toutes les commandes qui s’exécutent dans lesPSSessions , met fin à l'psSessionet libère les ressources utilisées par le PSSession . Si le PSSession est connecté à un ordinateur distant, cette applet de commande ferme également la connexion entre les ordinateurs locaux et distants.

Pour supprimer unPSSession , entrez lenom , nom_ordinateur, IDou Id d’instance de la session.

Si vous avez enregistré le PSSession dans une variable, l’objet de session reste dans la variable, mais l’état du PSSession est fermé.

Exemples

Exemple 1 : Supprimer des sessions à l’aide d’ID

Remove-PSSession -Id 1, 2

Cette commande supprime les sessions PSSessions qui ont des ID 1 et 2.

Exemple 2 : Supprimer toutes les sessions de la session active

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

Ces commandes suppriment toutes les psSessions dans la session active. Bien que les trois formats de commande soient différents, ils ont le même effet.

Exemple 3 : Fermer des sessions à l’aide de noms

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

Ces commandes ferment les sessions PSSessions connectées aux ordinateurs qui ont des noms qui commencent par Serv.

Exemple 4 : Fermer les sessions connectées à un port

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

Cette commande ferme les sessions PSSessions connectées au port 90. Vous pouvez utiliser ce format de commande pour identifier PSSessions par des propriétés autres que Nom_ordinateur, Nom, Id d’instanceet id d'.

Exemple 5 : Fermer une session en fonction de l’ID d’instance

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

Ces commandes montrent comment fermer un PSSession en fonction de son ID d’instance ou RemoteRunspaceID.

La première commande utilise l’applet de commande get-PSSession pour obtenir les PSSessions dans la session active. Il utilise un opérateur de pipeline (|) pour envoyer les psSessions à l’applet de commande Format-Table, qui met en forme leurs propriétés ComputerName et InstanceID dans une table. Le paramètre AutoSize compresse les colonnes à afficher.

À partir de l’affichage obtenu, vous pouvez identifier le PSSession à fermer, puis copier et coller le InstanceID de cette PSSession dans la deuxième commande.

La deuxième commande utilise l’applet de commande Remove-PSSession pour supprimer le PSSession avec l’ID d’instance spécifié.

Exemple 6 : Créer une fonction qui supprime toutes les sessions de la session active

Function EndPSS { Get-PSSession | Remove-PSSession }

Cette fonction supprime toutes les psSessions dans la session active. Après avoir ajouté cette fonction à votre profil PowerShell, pour supprimer toutes les sessions, tapez EndPSS.

Paramètres

-ComputerName

Spécifie un tableau de noms d’ordinateurs. Cette applet de commande ferme les psSessions connectées aux ordinateurs spécifiés. Les caractères génériques sont autorisés.

Tapez le nom NetBIOS, une adresse IP ou un nom de domaine complet d’un ou plusieurs ordinateurs distants. Pour spécifier l’ordinateur local, tapez le nom de l’ordinateur, localhost ou un point (.).

Type:String[]
Alias:Cn
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-Confirm

Vous invite à confirmer avant d’exécuter l’applet de commande.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Id

Spécifie un tableau d’ID de sessions. Cette applet de commande ferme les psSessions avec les ID spécifiés. Tapez un ou plusieurs ID, séparés par des virgules ou utilisez l’opérateur de plage (..) pour spécifier une plage d’ID.

Un ID est un entier qui identifie de manière unique le PSSession dans la session active. Il est plus facile de mémoriser et de taper que le InstanceId, mais il est unique uniquement dans la session active. Pour rechercher l’ID d’unPSSession , exécutez l’applet de commande Get-PSSession sans paramètres.

Type:Int32[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-InstanceId

Spécifie un tableau d’ID d’instance. Cette applet de commande ferme les sessions PSSessions qui ont les ID d’instance spécifiés.

L’ID d’instance est un GUID qui identifie de manière unique un PSSession dans la session active. L’ID d’instance est unique, même si plusieurs sessions s’exécutent sur un seul ordinateur.

L’ID d’instance est stocké dans la propriété InstanceID de l’objet qui représente un PSSession. Pour rechercher l’ID d’instance des psSessions dans la session active, tapez .

Type:Guid[]
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Name

Spécifie un tableau de noms conviviaux de sessions. Cette applet de commande ferme les psSessions qui ont les noms conviviaux spécifiés. Les caractères génériques sont autorisés.

Étant donné que le nom convivial d’un PSSession peut ne pas être unique, lorsque vous utilisez le paramètre Name , envisagez également d’utiliser le paramètre WhatIf ou Confirmer dans la commande Remove-PSSession.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-Session

Spécifie les objets de session des sessions PSSessions à fermer. Entrez une variable qui contient les psSessions ou une commande qui crée ou obtient lesPSSessions, telles qu’une commande New-PSSession ou Get-PSSession. Vous pouvez également diriger un ou plusieurs objets de session vers Remove-PSSession.

Type:PSSession[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

PSSession

Vous pouvez diriger un objet de session vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne aucun objet.

Notes

  • Le paramètre ID est obligatoire. Pour supprimer toutes les psSessions dans la session active, tapez Get-PSSession | Remove-PSSession.
  • Une PSSession utilise une connexion persistante à un ordinateur distant. Créez un psSession pour exécuter une série de commandes qui partagent des données. Pour plus d’informations, tapez Get-Help about_PSSessions.
  • PSSessions sont spécifiques à la session active. Lorsque vous terminez une session, les sessions PSSessions que vous avez créées dans cette session sont fermées de force.