Condividi tramite


Remove-PSSession

Chiude una o più sessioni di PowerShell (PSSession).

Sintassi

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>]

Descrizione

Il Remove-PSSession cmdlet chiude le sessioni di PowerShell (PSSession) nella sessione corrente. Arresta tutti i comandi in esecuzione nelle sessioni PSSession, termina la sessione PSSession e rilascia le risorse usate dalla sessione PSSession. Se la sessione PSSession è connessa a un computer remoto, questo cmdlet chiude anche la connessione tra i computer locali e remoti.

Per rimuovere una sessione PSSession, immettere il nome, il nome computer, l'ID o l'ID istanza della sessione.

Se la sessione PSSession è stata salvata in una variabile, l'oggetto sessione rimane nella variabile, ma lo stato della sessione PSSession è Closed.

Esempio

Esempio 1: Rimuovere sessioni in base all'ID

Remove-PSSession -Id 1, 2

Questo comando rimuove le sessioni PSSession con ID 1 e 2.

Esempio 2: Rimuovere tutte le sessioni nella sessione corrente

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

Questi comandi rimuovono tutte le sessioni PSSession nella sessione corrente. Nonostante la differenza di aspetto, i tre formati di comando hanno lo stesso effetto.

Esempio 3: Chiudere le sessioni in base al nome

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

Questi comandi chiudono le sessioni PSSession connesse ai computer con nomi che iniziano con Serv.

Esempio 4: Chiudere sessioni connesse a una porta

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

Questo comando chiude le sessioni PSSession connesse alla porta 90. È possibile usare questo formato di comando per identificare le sessioni PSSession in base alle proprietà diverse da ComputerName, Name, InstanceID e ID.

Esempio 5: Chiudere una sessione in base all'ID istanza

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

Questi comandi mostrano come chiudere una sessione PSSession in base all'ID istanza o a RemoteRunspaceID.

Il primo comando usa il Get-PSSession cmdlet per ottenere le sessioni PSSession nella sessione corrente. Usa un operatore pipeline (|) per inviare le sessioni PSSession al Format-Table cmdlet, che formatta le proprietà ComputerName e InstanceID in una tabella. Il parametro AutoSize comprime le colonne per la visualizzazione.

Dalla visualizzazione risultante, è possibile identificare la sessione PSSession da chiudere e copiare e incollare l'ID istanza di tale PSSession nel secondo comando.

Il secondo comando usa il Remove-PSSession cmdlet per rimuovere la sessione PSSession con l'ID istanza specificato.

Esempio 6: Creare una funzione che elimina tutte le sessioni nella sessione corrente

Function EndPSS { Get-PSSession | Remove-PSSession }

Questa funzione chiude tutte le sessioni PSSession nella sessione corrente. Dopo aver aggiunto questa funzione al profilo di PowerShell, per eliminare tutte le sessioni, digitare EndPSS.

Parametri

-ComputerName

Specifica una matrice di nomi di computer. Questo cmdlet chiude le sessioni PSSession connesse ai computer specificati. I caratteri jolly sono consentiti.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer remoti. Per specificare il computer locale, digitare il nome del computer, localhosto un punto (.).

Tipo:String[]
Alias:Cn
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ContainerId

Specifica una matrice di ID di contenitori. Questo cmdlet rimuove le sessioni per ognuno dei contenitori specificati. Usare il docker ps comando per ottenere un elenco di ID contenitore. Per altre informazioni, vedere la Guida per il comando docker ps .

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Id

Specifica una matrice di ID di sessioni. Questo cmdlet chiude le sessioni PSSession con gli ID specificati. Digitare uno o più ID, separati da virgole o usare l'operatore range (..) per specificare un intervallo di ID.

Un ID è un numero intero che identifica in modo univoco la sessione PSSession nella sessione corrente. È più facile ricordare e digitare il valore di InstanceId, ma è univoco solo nella sessione corrente. Per trovare l'ID di una sessione PSSession, eseguire il Get-PSSession cmdlet senza parametri.

Tipo:Int32[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-InstanceId

Specifica una matrice di ID istanza. Questo cmdlet chiude le sessioni PSSession con gli ID istanza specificati.

L'ID istanza è un GUID che identifica in modo univoco una sessione PSSession nella sessione corrente. L'ID istanza è univoco, anche quando sono in esecuzione più sessioni in un singolo computer.

L'ID istanza viene archiviato nella proprietà InstanceID dell'oggetto che rappresenta una sessione PSSession. Per trovare l'ID istanza delle sessioni PSSession nella sessione corrente, digitare Get-PSSession | Format-Table Name, ComputerName, InstanceId.

Tipo:Guid[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Specifica una matrice di nomi descrittivi delle sessioni. Questo cmdlet chiude le sessioni PSSession con i nomi descrittivi specificati. I caratteri jolly sono consentiti.

Poiché il nome descrittivo di una sessione PSSession potrebbe non essere univoco, quando si usa il parametro Name , è consigliabile usare anche il parametro WhatIf o Confirm nel Remove-PSSession comando.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-Session

Specifica gli oggetti sessione delle sessioni PSSession da chiudere. Immettere una variabile contenente le sessioni PSSessions o un comando che crea o ottiene le sessioni PSSession, ad esempio un New-PSSession comando o Get-PSSession . È anche possibile inviare tramite pipe uno o più oggetti sessione a Remove-PSSession.

Tipo:PSSession[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-VMId

Specifica una matrice di ID di macchine virtuali. Questo cmdlet avvia una sessione interattiva con ognuna delle macchine virtuali specificate. Per visualizzare le macchine virtuali disponibili, usare il comando seguente:

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

Tipo:Guid[]
Alias:VMGuid
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-VMName

Specifica una matrice di nomi di macchine virtuali. Questo cmdlet avvia una sessione interattiva con ognuna delle macchine virtuali specificate. Per visualizzare le macchine virtuali disponibili, usare il Get-VM cmdlet .

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

PSSession

È possibile inviare tramite pipe un oggetto sessione a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

PowerShell include gli alias seguenti per Remove-PSSession:

  • Tutte le piattaforme:

    • rsn
  • Il parametro ID è obbligatorio. Per eliminare tutte le sessioni PSSession nella sessione corrente, digitare Get-PSSession | Remove-PSSession.

  • Una sessione PSSession usa una connessione permanente a un computer remoto. Creare una sessione PSSession per eseguire una serie di comandi che condividono i dati. Per ulteriori informazioni, digitare Get-Help about_PSSessions.

  • Le sessioni PSSession sono specifiche della sessione corrente. Quando si termina una sessione, le sessioni PSSession create in tale sessione vengono chiuse forzatamente.