Remove-PSSession
关闭一个或多个 Windows PowerShell 会话 (PSSession)。
语法
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>]
说明
Remove-PSSession
cmdlet 关闭当前会话中的 PowerShell 会话(PSSession)。 它将停止在 PSSession 中运行的任何命令、结束 PSSession,并释放 PSSession 使用的资源。 如果 PSSession 连接到远程计算机,则此 cmdlet 还会关闭本地计算机和远程计算机之间的连接。
若要删除 PSSession,请输入会话的 Name、ComputerName、ID 或 InstanceID。
如果你已将 PSSession 保存在变量中,则会话对象将保留在该变量中,但 PSSession 的状态为 Closed。
示例
示例 1:按 ID 移除会话
Remove-PSSession -Id 1, 2
此命令移除 ID 为 1
和 2
的 PSSession。
示例 2:删除当前会话中的所有会话
Get-PSSession | Remove-PSSession
Remove-PSSession -Session (Get-PSSession)
$s = Get-PSSession
Remove-PSSession -Session $s
这些命令将删除当前会话中的所有 PSSession。 虽然这三个命令格式看起来不同,但它们具有相同的效果。
示例 3:按名称关闭会话
$r = Get-PSSession -ComputerName Serv*
$r | Remove-PSSession
这些命令关闭连接到名称以 Serv
开头的计算机的 PSSession。
示例 4:关闭连接到某个端口的会话
Get-PSSession | where {$_.port -eq 90} | Remove-PSSession
此命令将关闭连接到端口 90 的 PSSession。 你可以使用此命令格式,通过 ComputerName、Name、InstanceID 和 ID 以外的属性标识 PSSession。
示例 5:按实例 ID 关闭会话
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
这些命令显示了如何基于其实例 ID(或 RemoteRunspaceID)关闭 PSSession。
第一个命令使用 Get-PSSession
cmdlet 获取当前会话中的 PSSession。
它使用管道运算符(|
)将 PSSession 发送到 Format-Table
cmdlet,该 cmdlet 格式化其在表中的 ComputerName 和 InstanceID 属性。 AutoSize 参数将压缩列以供显示。
从生成的显示内容中,可以标识要关闭的 PSSession,并将该 PSSession 的 InstanceID 复制和粘贴到第二个命令中。
第二个命令使用 Remove-PSSession
cmdlet 移除具有指定实例 ID 的 PSSession。
示例 6:创建删除当前会话中的所有会话的函数
Function EndPSS { Get-PSSession | Remove-PSSession }
此函数关闭当前会话中每个 PSSession。 在将此函数添加到 PowerShell 配置文件后,若要删除所有会话,请键入 EndPSS
。
参数
-ComputerName
指定计算机的名称数组。 此 cmdlet 关闭连接到指定计算机的 PSSession。 允许使用通配符。
键入一台或多台远程计算机的 NetBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称 localhost
或点 (.
)。
类型: | String[] |
别名: | Cn |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | True |
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ContainerId
指定容器的 ID 数组。 此 cmdlet 移除每个指定容器的会话。 使用 docker ps
命令获取容器 ID 的列表。 有关详细信息,请参阅 docker ps 命令的帮助。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Id
指定会话的 ID 数组。 此 cmdlet 关闭具有指定 ID 的 PSSession。
键入一个或多个 ID,用逗号分隔,或使用范围运算符(..
)指定一系列 ID。
ID 是一个整数,用于在当前会话中唯一标识 PSSession。 它比 InstanceId 更容易记住和键入,但它仅在当前会话中是唯一的。 若要查找 PSSession 的 ID,请运行不带参数的 Get-PSSession
cmdlet。
类型: | Int32[] |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-InstanceId
指定实例 ID 的数组。 此 cmdlet 关闭具有指定实例 ID 的 PSSession。
实例 ID 是一个 GUID,用于在当前会话中唯一标识 PSSession。 即使在一台计算机上运行了多个会话,实例 ID 也是唯一的。
实例 ID 存储在表示 PSSession 的对象的 InstanceID 属性中。 若要查找当前会话中的 PSSession 的 InstanceID,请键入 Get-PSSession | Format-Table Name, ComputerName, InstanceId
。
类型: | Guid[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Name
指定会话的友好名称数组。 此 cmdlet 关闭具有指定友好名称的 PSSession。 允许使用通配符。
由于 PSSession 的易记名称可能不唯一,因此使用 Name参数时,请考虑在 Remove-PSSession
命令中使用 WhatIf 或 Confirm 参数。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | True |
-Session
指定要关闭的 PSSession 的会话对象。 输入一个变量,其中包含 PSSession 或创建或获取 PSSession 的命令,例如 New-PSSession
或 Get-PSSession
命令。 还可以通过管道将一个或多个会话对象传递给 Remove-PSSession
。
类型: | PSSession[] |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-VMId
指定虚拟机的 ID 数组。 此 cmdlet 启动与每个指定虚拟机的交互式会话。 若要查看可用的虚拟机,请使用以下命令:
Get-VM | Select-Object -Property Name, ID
类型: | Guid[] |
别名: | VMGuid |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-VMName
指定一个虚拟机的名称数组。 此 cmdlet 启动与每个指定虚拟机的交互式会话。 若要查看可用的虚拟机,请使用 Get-VM
cmdlet。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以将会话对象通过管道传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
PowerShell 包含 Remove-PSSession
的以下别名:
所有平台:
rsn
Id 参数是必需的。 若要删除当前会话中的所有 PSSession,请键入
Get-PSSession | Remove-PSSession
。PSSession 使用与远程计算机的持续性连接。 创建 PSSession 以运行共享数据的一系列命令。 要了解详情,请键入
Get-Help about_PSSessions
。PSSession 特定于当前会话。 结束某个会话时,将强制关闭你在该会话中创建的 PSSession。