Remove-PSSession
Published: February 29, 2012
Updated: August 15, 2012
Applies To: Windows PowerShell 2.0, Windows PowerShell 3.0
Remove-PSSession
Aliases
The following abbreviations are aliases for this cmdlet:
- rsn
Syntax
Parameter Set: Id Remove-PSSession [-Id] <Int32[]> [-Confirm] [-WhatIf] [ <CommonParameters>] Parameter Set: ComputerName Remove-PSSession [-ComputerName] <String[]> [-Confirm] [-WhatIf] [ <CommonParameters>] Parameter Set: InstanceId Remove-PSSession -InstanceId <Guid[]> [-Confirm] [-WhatIf] [ <CommonParameters>] Parameter Set: Name Remove-PSSession -Name <String[]> [-Confirm] [-WhatIf] [ <CommonParameters>] Parameter Set: Session Remove-PSSession [-Session] <PSSession[]> [-Confirm] [-WhatIf] [ <CommonParameters>]
Detailed Description
The Remove-PSSession cmdlet closes Windows PowerShell sessions (PSSessions) in the current session. It stops any commands that are running in the PSSessions, ends the PSSession, and releases the resources that the PSSession was using. If the PSSession is connected to a remote computer, Remove-PSSession also closes the connection between the local and remote computers.
To remove a PSSession, enter the Name, ComputerName, ID, or InstanceID of the session.
If you have saved the PSSession in a variable, the session object remains in the variable, but the state of the PSSession is "Closed."
Parameters
-ComputerName<String[]>
Closes the PSSessions that are connected to the specified computers. Wildcards are permitted.
Type the NetBIOS name, an IP address, or a fully qualified domain name of one or more remote computers. To specify the local computer, type the computer name, "localhost", or a dot (.).
|
Aliases |
none |
|
Required? |
true |
|
Position? |
1 |
|
Default Value |
Local computer |
|
Accept Pipeline Input? |
true (ByPropertyName) |
|
Accept Wildcard Characters? |
true |
-Id<Int32[]>
Closes the PSSessions with the specified IDs. Type one or more IDs (separated by commas) or use the range operator (..) to specify a range of IDs
An ID is an integer that uniquely identifies the PSSession in the current session. It is easier to remember and type than the InstanceId, but it is unique only within the current session. To find the ID of a PSSession, use Get-PSSession without parameters.
|
Aliases |
none |
|
Required? |
true |
|
Position? |
1 |
|
Default Value |
None |
|
Accept Pipeline Input? |
true (ByPropertyName) |
|
Accept Wildcard Characters? |
false |
-InstanceId<Guid[]>
Closes the PSSessions with the specified instance IDs.
The instance ID is a GUID that uniquely identifies a PSSession in the current session. The InstanceID is unique, even when you have multiple sessions running on a single computer.
The InstanceID is stored in the InstanceID property of the object that represents a PSSession. To find the InstanceID of the PSSessions in the current session, type "get-pssession | format-table Name, ComputerName, InstanceId".
|
Aliases |
none |
|
Required? |
true |
|
Position? |
named |
|
Default Value |
None |
|
Accept Pipeline Input? |
true (ByPropertyName) |
|
Accept Wildcard Characters? |
false |
-Name<String[]>
Closes the PSSessions with the specified friendly names. Wildcards are permitted.
Because the friendly name of a PSSession might not be unique, when using the Name parameter, consider also using the WhatIf or Confirm parameter in the Remove-PSSession command.
|
Aliases |
none |
|
Required? |
true |
|
Position? |
named |
|
Default Value |
None |
|
Accept Pipeline Input? |
true (ByPropertyName) |
|
Accept Wildcard Characters? |
true |
-Session<PSSession[]>
Specifies the session objects of the PSSessions to close. Enter a variable that contains the PSSessions or a command that creates or gets the PSSessions, such as a New-PSSession or Get-PSSession command. You can also pipe one or more session objects to Remove-PSSession.
|
Aliases |
none |
|
Required? |
true |
|
Position? |
1 |
|
Default Value |
None |
|
Accept Pipeline Input? |
true (ByValue, ByPropertyName) |
|
Accept Wildcard Characters? |
false |
-Confirm
Prompts you for confirmation before running the cmdlet.
|
Required? |
false |
|
Position? |
named |
|
Default Value |
false |
|
Accept Pipeline Input? |
false |
|
Accept Wildcard Characters? |
false |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
|
Required? |
false |
|
Position? |
named |
|
Default Value |
false |
|
Accept Pipeline Input? |
false |
|
Accept Wildcard Characters? |
false |
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/p/?LinkID=113216).
Inputs
The input type is the type of the objects that you can pipe to the cmdlet.
-
System.Management.Automation.Runspaces.PSSession
You can pipe a session object to Remove-PSSession.
Outputs
The output type is the type of the objects that the cmdlet emits.
-
None
Remove-PSSession does not return any objects.
Notes
-
The ID parameter is mandatory. You cannot type "remove-pssession" without parameters. To delete all the PSSessions in the current session, type "get-pssession | remove-pssession".
A PSSession uses a persistent connection to a remote computer. Create a PSSession to run a series of commands that share data. For more information, see about_PSSessions.
PSSessions are specific to the current session. When you end a session, the PSSessions that you created in that session are forcibly closed.
Examples
-------------------------- EXAMPLE 1 --------------------------
This command removes the PSSessions that have IDs 1 and 2.
PS C:\> remove-pssession -id 1, 2
-------------------------- EXAMPLE 2 --------------------------
These commands remove all of the PSSessions in the current session. Although the three command formats look different, they have the same effect.
PS C:\> get-pssession | remove-pssession- or -PS C:\>remove-pssession -session (get-pssession)- or -PS C:\>$s = get-pssessionPS C:\>remove-pssession -session $s
-------------------------- EXAMPLE 3 --------------------------
These commands close the PSSessions that are connected to computers that have names that begin with "Serv".
PS C:\> $r = get-pssession -computername Serv*$r | remove-pssession
-------------------------- EXAMPLE 4 --------------------------
This command closes the PSSessions that are connected to port 90. You can use this command format to identify PSSessions by properties other than ComputerName, Name, InstanceID, and ID.
PS C:\> get-pssession | where {$_.port -eq 90} | remove-pssession
-------------------------- EXAMPLE 5 --------------------------
These commands show how to close a PSSession based on its instance ID (RemoteRunspaceID).
The first command uses the Get-PSsession cmdlet to get the PSSessions in the current session. It uses a pipeline operator (|) to send the PSSessions to the Format-Table cmdlet (alias: ft), which formats their ComputerName and InstanceID properties in a table. The AutoSize parameter ("auto") compresses the columns for display.
From the resulting display, the administrator can identify the PSSession to be closed, and copy and paste the InstanceID of that PSSession into the second command.
The second command uses the Remove-PSSession cmdlet to remove the PSSession with the specified instance ID.
PS C:\> get-pssession | ft computername, instanceID -autoComputerName InstanceId------------ ----------------Server01 875d231b-2788-4f36-9f67-2e50d63bb82alocalhost c065ffa0-02c4-406e-84a3-dacb0d677868Server02 4699cdbc-61d5-4e0d-b916-84f82ebede1fServer03 4e5a3245-4c63-43e4-88d0-a7798bfc2414TX-TEST-01 fc4e9dfa-f246-452d-9fa3-1adbdd64ae85PS C:\>remove-pssession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85
-------------------------- EXAMPLE 6 --------------------------
This function deletes all of the PSSessions in the current session. After you add this function to your Windows Powershell profile, to delete all sessions, just type "endpss".
PS C:\> function EndPSS { get-pssession | remove-pssession }
Related topics