Get-PSSession
获取当前会话中的 Windows PowerShell 会话 (PSSession)。
语法
Get-PSSession [[-ComputerName] <string[]>] [<CommonParameters>]
Get-PSSession [-Id] <Int32[]> [<CommonParameters>]
Get-PSSession [-InstanceId <Guid[]>] [<CommonParameters>]
Get-PSSession [-Name <string[]>] [<CommonParameters>]
说明
Get-PSSession cmdlet 获取当前会话中创建的 Windows PowerShell 会话 (PSSession)。
如果不使用参数,则 Get-PSSession 获取在当前会话中创建的所有 PSSession。可以使用 Get-PSSession 的参数获取连接到特定计算机的会话,也可以通过名称、ID 或实例 ID 来标识会话。
有关 Windows PowerShell 会话的详细信息,请参阅 about_PSSessions。
参数
-ComputerName <string[]>
只获取连接到指定计算机的 PSSession。允许使用通配符。
键入一台或多台计算机的 NetBIOS 名称、IP 地址或完全限定的域名。要指定本地计算机,请键入计算机名称、“localhost”或句点 (.)。
是否为必需? |
false |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
true |
-Id <Int32[]>
只获取具有指定 ID 的 PSSession。键入一个或多个 ID(以逗号分隔)或使用范围运算符 (..)来指定 ID 的范围。
ID 是一个整数,用于在当前会话中唯一标识 PSSession。它比 InstanceId 更容易记住和键入,但它仅仅在当前会话中是唯一的。要查找 PSSession 的 ID,请使用不带参数的 Get-PSSession。
是否为必需? |
true |
位置? |
1 |
默认值 |
Shell 中的所有会话 |
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
false |
-InstanceId <Guid[]>
只获取具有指定实例 ID 的 PSSession。
实例 ID 是一个 GUID,用于在本地或远程计算机上唯一地标识 PSSession。即使在 Windows PowerShell 中运行了多个会话,InstanceID 也是唯一的。
InstanceID 存储在表示 PSSession 的对象的 InstanceID 属性中。要查找当前会话中的 PSSession 的 InstanceID,请键入“get-pssession | Format-Table Name, ComputerName, InstanceId”。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
true |
-Name <string[]>
只获取具有指定友好名称的 PSSession。允许使用通配符。
要查找当前会话中的 PSSession 的名称,请键入不带参数的“get-pssession”。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
true |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
无 不能通过管道将输入传递给此 cmdlet。 |
输出 |
System.Management.Automation.Runspaces.PSSession Get-PSSession 为所获取的每个 PSSession 返回一个 PSSession 对象。 |
说明
Get-PSSession 获取在当前会话中创建的 PSSession。它不会获取在打开 Windows PowerShell 时创建的会话,也不获取在其他会话中或其他计算机上创建的 PSSession,即使它们连接到本地计算机也是如此。
示例 1
C:\PS>get-pssession
说明
-----------
此命令获取在当前会话中创建的所有 PSSession。
该命令不会获取在其他会话中或其他计算机上创建的会话,即使它们连接到本计算机也是如此。
示例 2
C:\PS>$s = get-pssession -computername Server02
说明
-----------
此命令获取连接到 Server02 计算机的 PSSession,并将它们保存在 $p 变量中。
示例 3
C:\PS>new-pssession -computername Server01, Server02, Server03
C:\PS> $s1, $s2, $s3 = get-pssession
说明
-----------
此示例说明如何将 Get-PSSession 命令的结果保存在多个变量中。
第一条命令使用 New-PSSession cmdlet 在三台远程计算机上创建 PSSession。
第二条命令使用 Get-PSSession cmdlet 来获取这三个 PSSession。然后,将其中的每个 PSSession 分别保存在一个单独的变量中。
Windows PowerShell 将对象数组分配给变量数组时,会将第一个对象分配给第一个变量,将第二个对象分配给第二个变量,依此类推。如果对象多于变量,则会将数组中所有剩余的对象均分配给最后一个变量。如果变量多于对象,则弃用额外的变量。
示例 4
C:\PS>get-pssession | format-table -property computername, InstanceID
C:\PS> $s = get-pssession -InstanceID a786be29-a6bb-40da-80fb-782c67f7db0f
C:\PS> remove-pssession -session $s
说明
-----------
此示例说明如何使用实例 ID 获取 PSSession,然后再将其删除。
第一条命令获取本地计算机上的所有 PSSession。该命令将 PSSession 发送给 Format-Table cmdlet,后者显示每个 PSSession 的 ComputerName 和 InstanceID 属性。
第二条命令使用 Get-PSSession cmdlet 来获取特定的 PSSession 并将其保存在 $s 变量中。该命令使用 InstanceID 参数来标识 PSSession。
第三条命令使用 Remove-PSSession cmdlet 删除 $s 变量中的 PSSession。
示例 5
C:\PS>get-pssession -computername Serv*
说明
-----------
此命令获取连接到计算机名称以“Serv”开头的计算机的所有 PSSession。
示例 6
C:\PS>get-pssession -name Test*, Ux*
说明
-----------
此命令获取名称以“Test”或“Ux”开头的 PSSession。
示例 7
C:\PS>get-pssession 2
说明
-----------
此命令获取 ID 为 2 的 PSSession。
另请参阅
概念
about_PSSessions
about_Remote
New-PSSession
Remove-PSSession
Enter-PSSession
Exit-PSSession
Invoke-Command