Remove-PSSession
关闭一个或多个 PowerShell 会话(PSSessions)。
语法
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)。 它会停止 PSSessions中运行的任何命令,结束 PSSession,并释放 PSSession 正在使用的资源。 如果 PSSession 连接到远程计算机,则此 cmdlet 还会关闭本地计算机和远程计算机之间的连接。
若要删除 PSSession,请输入 名称、ComputerName、ID或会话的 InstanceID。
如果在变量中保存了 PSSession,会话对象将保留在变量中,但 PSSession 的状态为 Closed。
示例
示例 1:按 ID 删除会话
Remove-PSSession -Id 1, 2
此命令删除具有 ID 1
和 2
的 PSSessions。
示例 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-Object {$_.port -eq 90} | Remove-PSSession
此命令关闭连接到端口 90 的 PSSessions。 可以使用此命令格式按除 ComputeName、Name、InstanceID和 ID以外的属性标识 PSSessions。
示例 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 的 PSSessions。
实例 ID 是一个 GUID,用于在当前会话中唯一标识 PSSession。 实例 ID 是唯一的,即使在单个计算机上运行多个会话也是如此。
实例 ID 存储在表示 PSSession的对象的 InstanceID 属性中。 若要在当前会话中查找 PSSessions 的 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 的会话对象。 输入一个变量,其中包含 PSSessions 或创建或获取 PSSessions的命令,例如 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 参数是必需的。 若要删除当前会话中的所有 PSSessions,请键入
Get-PSSession | Remove-PSSession
。PSSession 使用与远程计算机的持续性连接。 创建 PSSession 以运行共享数据的一系列命令。 要了解详情,请键入
Get-Help about_PSSessions
。PSSession 特定于当前会话。 当您结束会话时,您在该会话中创建的 PSSessions 将被强制关闭。