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