共用方式為


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 的各項參數取得連線至特定電腦的工作階段,也可以依照工作階段的名稱、識別碼或執行個體識別碼識別這些工作階段。

如需 Windows PowerShell 工作階段的詳細資訊,請參閱 about_PSSessions。

參數

-ComputerName <string[]>

只取得連線至指定之電腦的 PSSession。允許使用萬用字元。

請輸入一台或多台電腦的 NetBIOS 名稱、IP 位址或完整網域名稱。若要指定本機電腦,請輸入電腦名稱、"localhost" 或點 (.)。

必要?

false

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

true

-Id <Int32[]>

只取得具有指定之識別碼的 PSSession。請輸入一個或多個識別碼 (以逗號分隔),或使用範圍運算子 (..) 指定識別碼範圍。

識別碼是整數,可唯一識別目前工作階段中的 PSSession。它比 InstanceId 更容易記得和輸入,但是只有在目前的工作階段中才具有唯一性。若要尋找 PSSession 的識別碼,請輸入 Get-PSSession 且不要指定參數。

必要?

true

位置?

1

預設值

殼層中的所有工作階段

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-InstanceId <Guid[]>

只取得具有指定之執行個體識別碼的 PSSession。

執行個體識別碼是一種 GUID,能夠唯一識別本機或遠端電腦上的 PSSession。InstanceID 具有唯一性,即使 Windows PowerShell 中有多個正在執行的工作階段也一樣。

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,即使這些 PSSession 連線至本機電腦也一樣。

範例 1

C:\PS>get-pssession

描述
-----------
這個命令會取得在目前工作階段中建立的所有 PSSession。

它不會取得在其他工作階段中或在其他電腦所建立的 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

描述
-----------
在這個範例中,會示範如何利用 PSSession 的執行個體識別碼取得此 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

描述
-----------
這個命令會取得識別碼為 2 的 PSSession。





請參閱

概念

about_PSSessions
about_Remote
New-PSSession
Remove-PSSession
Enter-PSSession
Exit-PSSession
Invoke-Command