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 cmdlet Remove-PSSession chiude le sessioni di PowerShell (PSSessions) nella sessione corrente. Arresta tutti i comandi in esecuzione nelle PSSession , termina la PSSession e rilascia le risorse che la PSSession stava utilizzando. Se il PSSession è connesso a un computer remoto, questo cmdlet chiude anche la connessione tra i computer locali e remoti.

Per rimuovere una PSSession, inserire il Name, ComputerName, IDo InstanceID della sessione.

Se il PSSession è stato salvato in una variabile, l'oggetto sessione rimane nella variabile, ma lo stato della PSSession è Chiuso.

Esempio

Esempio 1: Rimuovere le sessioni in base all'ID

Remove-PSSession -Id 1, 2

Questo comando rimuove gli PSSessions 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 PSSessions nella sessione corrente. Anche se i tre formati di comando hanno un aspetto diverso, hanno lo stesso effetto.

Esempio 3: Chiudere le sessioni per nome

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

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

Esempio 4: Chiudere sessioni connesse a una porta

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

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

Esempio 5: Chiudere una sessione tramite 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 illustrano come chiudere una PSSession in base al relativo ID dell'istanza o al RemoteRunspaceID.

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

Dalla visualizzazione risultante è possibile identificare il PSSession da chiudere e copiare e incollare il InstanceID di tale PSSession nel secondo comando.

Il secondo comando usa il cmdlet Remove-PSSession per rimuovere la sessione PS 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 PS 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 PSSessions che sono connesse ai computer specificati. Sono consentiti caratteri jolly.

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 comando docker ps per ottenere un elenco di ID contenitore. Per ulteriori informazioni, consultare la help 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 PSSessions con gli ID specificati. Digitare uno o più ID, separati da virgole o usare l'operatore di intervallo (..) per specificare un intervallo di ID.

Un ID è un numero intero che identifica in modo univoco il PSSession nella sessione corrente. È più facile da ricordare e digitare rispetto a InstanceId, ma è univoco solo nella sessione corrente. Per trovare l'ID di un PSSession, eseguire il cmdlet Get-PSSession 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 PSSessioni con gli ID istanza specificati.

L'ID dell'istanza è un GUID che identifica univocamente una PSSession nella sessione attuale. 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 un PSSession. Per trovare il InstanceID dei PSSessions 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 PSSessions che hanno i nomi descrittivi specificati. Sono consentiti caratteri jolly.

Poiché il nome descrittivo di una PSSession potrebbe non essere univoco, quando si utilizza il parametro Nome, è consigliabile utilizzare anche il parametro WhatIf o il parametro Confirm nel comando Remove-PSSession.

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

-Session

Specifica gli oggetti sessione del PSSessions da chiudere. Immettere una variabile contenente le PSSessions o un comando che crea o ottiene le PSSessions , come un comando New-PSSession o Get-PSSession. È anche possibile reindirizzare 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 cmdlet Get-VM.

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

-WhatIf

Mostra cosa accadrebbe se il cmdlet viene eseguito. 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 alcun output.

Note

PowerShell include gli alias seguenti per Remove-PSSession:

  • Tutte le piattaforme:

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

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

  • Le PSSessions sono specifiche nella sessione corrente. Quando si termina una sessione, le PSSessions create in tale sessione vengono chiuse forzatamente.