New-PSSession
建立連到本機或遠端電腦的持續連線。
Syntax
New-PSSession
[[-ComputerName] <String[]>]
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
[-VMId] <Guid[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
-VMName <String[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[[-Session] <PSSession[]>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-ConfigurationName <String>]
-ContainerId <String[]>
[-RunAsAdministrator]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-UseWindowsPowerShell
[-Name <string[]>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-SSHTransport]
[-Subsystem <String>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
-SSHConnection <Hashtable[]>
[<CommonParameters>]
Description
Cmdlet New-PSSession
會在本機或遠端電腦上建立 PowerShell 會話 (PSSession) 。 當您建立 PSSession 時,PowerShell 會建立與遠端電腦的持續性連線。
使用 PSSession 來執行多個共享數據的命令,例如函式或變數的值。 若要在 PSSession 中執行命令,請使用 Invoke-Command
Cmdlet。 若要使用 PSSession 直接與遠端電腦互動,請使用 Enter-PSSession
Cmdlet。 如需詳細資訊,請參閱 about_PSSessions。
您可以在遠端電腦上執行命令,而不需使用 或Invoke-Command
的 ComputerName 參數Enter-PSSession
建立 PSSession。 當您使用 ComputerName 參數時,PowerShell 會建立用於命令的暫存連線,然後關閉。
從 PowerShell 6.0 開始,您可以使用安全殼層 (SSH) ,在遠端電腦上建立連線並建立會話,如果本機電腦上有 SSH 可用,且遠端電腦已設定 PowerShell SSH 端點。 SSH 型 PowerShell 遠端工作階段的優點是它可以跨多個平台運作, (Windows、Linux、macOS) 。 針對 SSH 型工作階段,您可以使用 HostName 或 SSHConnection 參數設定來指定遠端電腦和相關連線資訊。 如需如何設定 PowerShell SSH 遠端處理的詳細資訊,請參閱 透過 SSH 進行 PowerShell 遠端處理。
注意
使用來自Linux或macOS用戶端的WSMan遠端處理搭配 HTTPS 端點時,伺服器證書不受信任 (例如自我簽署憑證) 。 您必須提供 PSSessionOption ,其中包含 SkipCACheck 和 SkipCNCheck 值設定 $true
為 以成功建立連線。 只有在您位於可以確定伺服器證書和目標系統的網路連線的環境中,才這麼做。
範例
範例 1:Create 本機電腦上的會話
$s = New-PSSession
此命令會在本機計算機上建立新的 PSSession ,並將 PSSession 儲存在變數中 $s
。
您現在可以使用此 PSSession 在本機電腦上執行命令。
範例 2:Create 遠端電腦上的會話
$Server01 = New-PSSession -ComputerName Server01
此命令會在 Server01 計算機上建立新的 PSSession ,並將它儲存在變數中 $Server01
。
建立多個 PSSession 物件時,請將它們指派給具有實用名稱的變數。 這可協助您在後續命令中管理 PSSession 物件。
範例 3:Create 多部電腦上的會話
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
此命令會建立三個 PSSession 物件,其中一個位於 ComputerName 參數所指定的每部電腦上。
此命令會使用指派運算符 (=
) ,將新的 PSSession 物件指派給變數:$s1
、、$s2
$s3
。 它會將 Server01 PSSession 指派給 、將 Server02 PSSession 指派給 $s2
$s1
,並將 Server03 PSSession 指派給 $s3
。
當您將多個物件指派給一系列變數時,PowerShell 會將每個物件分別指派給數列中的變數。 如果物件數目多於變數數目,就會將所有剩餘的物件指派給最後一個變數。 如果變數超過對象,其餘變數會是空的 $null
() 。
範例 4:Create 具有指定埠的會話
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
此命令會在 Server01 計算機上建立新的 PSSession ,以連線到伺服器埠 8081
並使用 SSL 通訊協定。 新的 PSSession 會使用稱為 E12
的替代會話組態。
設定連接埠之前,您必須先將遠端電腦上的 WinRM 接聽程式設定為在連接埠 8081 進行接聽。 如需詳細資訊,請參閱 Port 參數的描述。
範例 5:根據現有的會話 Create 工作階段
New-PSSession -Session $s -Credential Domain01\User01
此命令會建立與現有 PSSession 相同的屬性的 PSSession。 當現有 PSSession 的資源耗盡,而且需要新的 PSSession 來卸除部分需求時,您可以使用此命令格式。
此命令會使用的 New-PSSession
Session 參數來指定儲存在變數中的 $s
PSSession。 它會使用使用者的認證 Domain1\Admin01
來完成命令。
範例 6:Create 具有不同網域中全域範圍的會話
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
此範例示範如何在不同網域的計算機上建立具有全域範圍的 PSSession 。
根據預設,在命令行中建立的 PSSession 物件會以本機範圍建立,而腳本中建立 的 PSSession 物件具有腳本範圍。
若要建立具有全域範圍的 PSSession ,請建立新的 PSSession ,然後將 PSSession 儲存在轉換成全域範圍的變數中。 在此情況下, $s
變數會轉換成全域範圍。
此命令使用 ComputerName 參數來指定遠端電腦。 由於計算機位於與用戶帳戶不同的網域中,因此計算機的完整名稱會與使用者的認證一起指定。
範例 7:Create 許多電腦的會話
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
此命令會在檔案中列出的Servers.txt
每 200 部電腦上建立 PSSession,並將產生的 PSSession 儲存在變數中$rs
。 PSSession 物件具有 的節流限制50
。
當電腦的名稱是儲存在資料庫、試算表、文字檔或其他可轉換成文字的格式中時,可以使用此命令格式。
範例 8:使用 URI Create 工作階段
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
此命令會在 Server01 計算機上建立 PSSession ,並將它儲存在變數中 $s
。 它會使用 URI 參數來指定傳輸通訊協定、遠端電腦、埠和替代會話組態。 它也會使用 Credential 參數來指定有權在遠端電腦上建立會話的用戶帳戶。
範例 9:在一組會話中執行背景工作
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
這些命令會建立一組 PSSession 對象,然後在每個 PSSession 物件中執行背景工作。
第一個命令會在檔案中列出的Servers.txt
每部計算機上建立新的 PSSession。 它會使用 New-PSSession
Cmdlet 來建立 PSSession。 ComputerName 參數的值是使用 Get-Content
Cmdlet 來取得檔案電腦名稱Servers.txt
清單的命令。
此命令會使用 Credential 參數來建立具有網域管理員許可權的 PSSession 物件,並使用 ThrottleLimit 參數將命令限制為 16
並行連線。 此命令會將 PSSession 物件儲存在變數中 $s
。
第二個命令會使用 Cmdlet 的 Invoke-Command
AsJob 參數來啟動背景作業,在中的每個 PSSession 物件$s
中執行Get-Process PowerShell
命令。
如需PowerShell背景工作的詳細資訊,請參閱 about_Jobs 和 about_Remote_Jobs。
範例 10:使用計算機的 URI Create 工作階段
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
此命令會建立 PSSession 物件,該物件會連接到 URI 所指定的電腦,而不是計算機名稱。
範例 11:Create 工作階段選項
$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01
此範例示範如何建立會話選項物件,並使用 SessionOption 參數。
第一個命令會 New-PSSessionOption
使用 Cmdlet 來建立會話選項。 它會將產生的 SessionOption 物件儲存在變數中 $so
。
第二個命令會在新的工作階段中使用該選項。 此命令會 New-PSSession
使用 Cmdlet 來建立新的工作階段。 SessionOption 參數的值是變數中的 $so
SessionOption 物件。
範例 12:使用 SSH Create 工作階段
New-PSSession -HostName UserA@LinuxServer01
此範例示範如何使用安全殼層建立新的 PSSession (SSH) 。 如果遠端電腦上已設定 SSH 來提示輸入密碼,您會收到密碼提示。 否則,您必須使用 SSH 金鑰型使用者驗證。
範例 13:使用 SSH Create 工作階段,並指定埠和使用者驗證密鑰
New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa
此範例示範如何使用安全殼層建立 PSSession (SSH) 。 它會使用 Port 參數來指定要使用的埠和 KeyFilePath 參數,以指定用來識別及驗證遠端電腦上的使用者 RSA 金鑰。
範例 14:使用 SSH Create 多個工作階段
$sshConnections = @(
@{
HostName = 'WinServer1'
UserName = 'domain\userA'
KeyFilePath = 'c:\users\UserA\id_rsa'
}
@{
HostName = 'UserB@LinuxServer5'
KeyFilePath = 'c:\UserB\<path>\id_rsa'
}
)
New-PSSession -SSHConnection $sshConnections
此範例示範如何使用安全殼層 (SSH) 和 SSHConnection 參數集來建立多個會話。 SSHConnection 參數會採用哈希表數位列,其中包含每個會話的連接資訊。 請注意,此範例要求目標遠端計算機已設定 SSH 以支援金鑰型使用者驗證。
參數
-AllowRedirection
指出此 Cmdlet 允許將此連線重新導向至替代統一資源標識碼 (URI) 。
使用 ConnectionURI 參數時,遠端目的地可傳回重新導向至不同 URI 的指示。 根據預設,PowerShell 不會重新導向連線,但您可以使用此參數來重新導向連線。
您也可以變更 MaximumConnectionRedirectionCount 工作階段選項值,限制連線重新導向的次數。 使用 Cmdlet 的 New-PSSessionOption
MaximumRedirection 參數,或設定$PSSessionOption喜好設定變數的 MaximumConnectionRedirectionCount 屬性。 預設值是 5
。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ApplicationName
指定連線 URI 的應用程式名稱區段。 當您沒有在命令中使用 ConnectionURI 參數時,請使用這個參數來指定應用程式名稱。
預設值是本機電腦上的喜好設定變數值 $PSSessionApplicationName
。 如果未定義這個喜好設定變數,預設值為 WSMAN
。 這個值適用於大部分用途。 如需詳細資訊,請參閱 about_Preference_Variables。
WinRM 服務會使用應用程式名稱來選取要用來為連線要求提供服務的接聽程式。 此參數的值應該符合遠端電腦上接聽程式之 URLPrefix 屬性的值。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Authentication
指定用來驗證使用者認證的機制。 此參數可接受的值為:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
預設值是 Default
。
如需此參數值的詳細資訊,請參閱 AuthenticationMechanism 列舉。
警告
認證安全性支援提供者 (CredSSP) 驗證,其中使用者認證會傳遞至要驗證的遠端電腦,是針對需要驗證多個資源的命令所設計,例如存取遠端網路共用。 此機制會使得遠端作業的安全性風險變高。 若遠端電腦遭到入侵,傳遞給它的認證便可用來控制網路工作階段。
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CertificateThumbprint
對於具有執行此動作之權限的使用者帳戶,指定其數位公開金鑰憑證 (X509)。 請輸入憑證的憑證指紋。
憑證將用於用戶端憑證式驗證。 這些憑證只能對應至本機使用者帳戶,無法用於網域帳戶。
若要取得憑證,請使用 Get-Item
PowerShell Cert:
磁碟驅動器中的或 Get-ChildItem
命令。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
指定電腦名稱的陣列。 此 Cmdlet 會建立持續連線, (PSSession) 到指定的計算機。 如果您輸入多部計算機名稱, New-PSSession
請建立多個 PSSession 物件,每部計算機各一個。 預設是本機電腦。
輸入一或多部遠端電腦的 NetBIOS 名稱、IP 位址或完整網域名稱。 若要指定本機電腦,請輸入電腦名稱、 localhost
或點 () .
。 當電腦與使用者位於不同網域,則必須使用完整網域名稱。
您也可以使用管線將計算機名稱以引號括住 New-PSSession
。
若要在 ComputerName 參數的值中使用 IP 位址,命令必須包含 Credential 參數。 此外,必須將電腦設定為使用 HTTPS 傳輸,或必須在本機電腦的 WinRM TrustedHosts 清單中包含遠端電腦的 IP 位址。 For instructions for adding a computer name to the TrustedHosts list, see "How to Add a Computer to the Trusted Host List" in about_Remote_Troubleshooting.
若要在 ComputerName 參數的值中包含本機電腦,請使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell。
Type: | String[] |
Aliases: | Cn |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConfigurationName
指定用於新 PSSession 的會話組態。
輸入工作階段設定的設定名稱或完整資源 URI。 如果您只指定組態名稱,則會在前面加上下列架構 URI: http://schemas.microsoft.com/PowerShell
。
工作階段的工作階段設定是位於遠端電腦上。 如果遠端電腦上沒有指定的工作階段設定,則命令會失敗。
預設值是本機電腦上的喜好設定變數值 $PSSessionConfigurationName
。 如果未設定這個喜好設定變數,預設值為 Microsoft.PowerShell
。 如需詳細資訊,請參閱 about_Preference_Variables。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConnectionUri
指定 URI,定義工作階段的連接端點。 此 URI 必須是完整的 URI。 這個字串的格式如下所示:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
預設值如下:
http://localhost:5985/WSMAN
如果您未指定 ConnectionURI,可以使用 UseSSL、ComputerName、Port 及 ApplicationName 參數來指定 ConnectionURI 值。
URI 的 Transport 區段有效值為 HTTP 與 HTTPS。 如果您使用傳輸區段指定連線 URI,但未指定埠,則會使用標準埠建立會話: 80
適用於 HTTP 和 443
HTTPS。 若要使用PowerShell遠端處理的預設埠,請針對 HTTP 或 5986
HTTPS 指定埠5985
。
如果目的地計算機將連線重新導向至不同的 URI,除非您在命令中使用 AllowRedirection 參數,否則 PowerShell 會防止重新導向。
Type: | Uri[] |
Aliases: | URI, CU |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ContainerId
指定容器識別碼的陣列。 此 Cmdlet 會啟動具有每個指定容器的互動式會話。 docker ps
使用 命令來取得容器標識碼的清單。 如需詳細資訊,請參閱 docker ps 命令的說明。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Credential
指定有權執行此動作的用戶帳戶。 預設為目前使用者。
輸入使用者名稱,例如 User01
或 Domain01\User01
,或輸入 Cmdlet 所產生的 Get-Credential
PSCredential 物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。
認證會儲存在 PSCredential 物件中,密碼會儲存為 SecureString。
注意
如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?。
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnableNetworkAccess
表示此 Cmdlet 會將互動式安全性令牌新增至回送會話。 互動式權杖可讓您在會從其他電腦取得資料的回送工作階段中執行命令。 例如,您可以在會將 XML 檔案從遠端電腦複製到本機電腦的工作階段中執行命令。
回送會話是源自於同一部計算機上的 PSSession 。 若要建立回送會話,請省略 ComputerName 參數,或將其值設定為點 () .
、 localhost
或本機電腦的名稱。
根據預設,此 Cmdlet 會使用網路令牌建立回送會話,這可能無法提供足夠的許可權來驗證遠端電腦。
EnableNetworkAccess 參數只在回送工作階段中有效。 如果您在遠端電腦上建立會話時使用 EnableNetworkAccess ,命令會成功,但會忽略 參數。
您也可以使用 CredSSP
Authentication 參數的值,將會話認證委派給其他計算機,在回送會話中啟用遠端訪問。
若要保護計算機免於惡意存取,只有使用 EnableNetworkAccess 參數所建立的互動式令牌已中斷連線的回送會話,只能從建立會話的計算機重新連線。 使用 CredSSP 驗證且已中斷連線的工作階段可從其他電腦重新連線。 如需詳細資訊,請參閱Disconnect-PSSession
。
此參數是在 PowerShell 3.0 中引進。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostName
指定安全殼層 (SSH) 型連線的計算機名稱陣列。 這類似於 ComputerName 參數,不同之處在於遠端電腦的連線是使用 SSH 而非 Windows WinRM。
此參數是在 PowerShell 6.0 中引進。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyFilePath
指定安全殼層 (SSH) 用來驗證遠端電腦上的使用者密鑰檔案路徑。
SSH 可讓使用者透過私人/公鑰執行驗證,做為基本密碼驗證的替代方案。 如果遠端電腦已設定金鑰驗證,則可以使用此參數來提供識別使用者的密鑰。
此參數是在 PowerShell 6.0 中引進。
Type: | String |
Aliases: | IdentityFilePath |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
指定 PSSession 的易記名稱。
當您使用其他 Cmdlet 時,您可以使用名稱來參考 PSSession ,例如 Get-PSSession
和 Enter-PSSession
。 該名稱對電腦或目前工作階段而言不需要是唯一的。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Port
指定遠端電腦上要供此連線使用的網路連接埠。 若要連線到遠端電腦,遠端電腦必須接聽連線使用的連接埠。 默認埠為 5985
,這是 HTTP 的 WinRM 連接埠,而 5986
這是 HTTPS 的 WinRM 連接埠。
在使用另一個埠之前,您必須在遠端電腦上設定 WinRM 接聽程式,以接聽該埠。 使用下列命令來設定接聽程式:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
除非必要,否則請勿使用 Port 參數。 命令中的連接埠設定會套用到所有電腦或命令執行所在工作階段。 替代的連接埠設定可能使得命令無法在全部電腦上執行。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsAdministrator
表示 PSSession 以系統管理員身分執行。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
指定這個 Cmdlet 做為新 PSSession 模型的 PSSession 物件的陣列。 此參數會建立新的 PSSession 物件,其屬性與指定的 PSSession 物件相同。
輸入包含 PSSession 物件的變數,或建立或取得 PSSession 物件的命令,例如 New-PSSession
或 Get-PSSession
命令。
產生的 PSSession 物件具有相同的電腦名稱、應用程式名稱、連線 URI、埠、組態名稱、節流限制,以及安全套接字層 (SSL) 值做為原始專案,但它們有不同的顯示名稱、標識符和實例標識符 (GUID) 。
Type: | PSSession[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SessionOption
指定工作階段的進階選項。 輸入 SessionOption 物件,例如您使用 Cmdlet 建立的物件 New-PSSessionOption
,或索引鍵為會話選項名稱的哈希表,而值是會話選項值。
如果已設定,選項的預設值取決於喜好設定變數的值 $PSSessionOption
。 否則,將以工作階段設定中設定的選項建立預設值。
會話選項值優先於在喜好設定變數和會話組態中設定 $PSSessionOption
的會話預設值。 不過,它們的優先順序不會高於工作階段設定中設定的最大值、配額或限制。
如需包含預設值的工作階段選項描述,請參閱 New-PSSessionOption
。 如需喜好設定變數的相關信息 $PSSessionOption
,請參閱 about_Preference_Variables。 如需會話設定的詳細資訊,請參閱 about_Session_Configurations。
Type: | PSSessionOption |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SSHConnection
此參數會採用哈希表數位,其中每個哈希表都包含建立安全殼層 (SSH) 連線所需的一或多個連線參數, (HostName、 Port、 UserName、 KeyFilePath) 。
哈希表連接參數與 SSHHost 參數集所定義的相同。
SSHConnection 參數適用於建立多個會話,其中每個會話都需要不同的連線資訊。
此參數是在 PowerShell 6.0 中引進。
Type: | Hashtable[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SSHTransport
指出使用安全殼層 (SSH) 建立遠端連線。
根據預設,PowerShell 會使用 Windows WinRM 連線到遠端電腦。 此參數會強制 PowerShell 使用 HostName 參數集來建立 SSH 型遠端連線。
此參數是在 PowerShell 6.0 中引進。
Type: | SwitchParameter |
Accepted values: | true |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Subsystem
指定用於新 PSSession 的 SSH 子系統。
這會指定要在 目標上使用的子系統,如 中所 sshd_config
定義。 子系統會啟動具有預先定義參數的特定 PowerShell 版本。 如果遠端電腦上沒有指定的子系統,命令就會失敗。
如果未使用此參數,則預設值為 powershell
子系統。
Type: | String |
Position: | Named |
Default value: | powershell |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ThrottleLimit
指定為執行此命令可建立的最大同時連線數。
如果您省略此參數或輸入 0
(零的值) ,則會使用預設值 32
。
節流限制僅適用於目前命令,不適用於工作階段或電腦。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
指定用來在遠端電腦上建立工作階段之帳戶的用戶名稱。 使用者驗證方法取決於遠端計算機上如何設定安全殼層 (SSH) 。
如果 SSH 設定為基本密碼驗證,系統會提示您輸入用戶密碼。
如果 SSH 已設定金鑰型使用者驗證,則可以透過 KeyFilePath 參數提供金鑰檔案路徑,且不會提示您輸入密碼。 請注意,如果用戶端使用者密鑰檔案位於 SSH 已知位置,則密鑰型驗證不需要 KeyFilePath 參數,而且使用者驗證會自動根據使用者名稱進行。 如需詳細資訊,請參閱有關密鑰型使用者驗證的 SSH 檔。
這不是必要的參數。 如果未指定 UserName 參數,則目前登入的使用者名稱會用於連線。
此參數是在 PowerShell 6.0 中引進。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseSSL
指出此 Cmdlet 會使用 SSL 通訊協定來建立遠端電腦的連線。 預設不會使用 SSL。
WS-Management 加密透過網路傳輸的所有PowerShell內容。 UseSSL 參數提供額外的保護,可跨 HTTPS 連線傳送數據,而不是 HTTP 連線。
如果您使用此參數,但在用於命令的埠上無法使用 SSL,命令就會失敗。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseWindowsPowerShell
在本機系統上建立與新 Windows PowerShell Runspace 的遠端連線。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMId
指定虛擬機識別碼的陣列。 此 Cmdlet 會啟動互動式會話,其中包含每個指定的虛擬機。 若要查看可用的虛擬機,請使用下列命令:
Get-VM | Select-Object -Property Name, ID
Type: | Guid[] |
Aliases: | VMGuid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
指定虛擬機器名稱的陣列。 此 Cmdlet 會啟動互動式會話,其中包含每個指定的虛擬機。 若要查看可用的虛擬機,請使用 Get-VM
Cmdlet。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
輸入
System.String, System.URI, System.Management.Automation.Runspaces.PSSession
您可以使用管線將字串、URI 或會話物件傳送至此 Cmdlet。
輸出
備註
- 此 Cmdlet 使用 PowerShell 遠端基礎結構。 若要使用此 Cmdlet,必須將本機電腦和任何遠端電腦設定為 PowerShell 遠端處理。 如需詳細資訊,請參閱about_Remote_Requirements。
- 若要在本機計算機上建立 PSSession ,請使用 [ 以系統管理員身分執行 ] 選項啟動 PowerShell。
- 當您完成 PSSession 時,請使用
Remove-PSSession
Cmdlet 來刪除 PSSession 並釋放其資源。 - HostName 和 SSHConnection 參數集從 PowerShell 6.0 開始包含。 已新增它們,以根據安全殼層 (SSH) 提供 PowerShell 遠端處理。 (Windows、Linux、macOS) 和 PowerShell 遠端處理支援多個平臺都支援 SSH 和 PowerShell 遠端處理,這些平臺會安裝及設定 PowerShell 和 SSH。 這與先前以 WinRM 為基礎的僅限 Windows 遠端功能不同,而且許多 WinRM 特定功能和限制不適用。 例如,不支援以 WinRM 為基礎的配額、工作階段選項、自定義端點設定,以及中斷連線/重新連線功能。 如需如何設定 PowerShell SSH 遠端功能的詳細資訊,請參閱 透過 SSH 的 PowerShell 遠端處理。
可執行檔案 ssh
會依下列順序從下列來源取得組態資料:
- 命令列選項
- 使用者的組態檔 (~/.ssh/config)
- 全系統組態檔 (/etc/ssh/ssh_config)
下列 Cmdlet 參數會對應至 ssh
參數和選項:
Cmdlet 參數 | ssh 參數 | 對等 ssh -o 選項 |
---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
如需檔案的詳細資訊 ssh_config
,請參閱 ssh_config (5) 。