共用方式為


Enter-PSSession

使用遠端電腦啟動互動式會話。

語法

ComputerName (預設值)

Enter-PSSession
    [-ComputerName] <String>
    [[-Credential] <PSCredential>]
    [-EnableNetworkAccess]
    [-ConfigurationName <String>]
    [-Port <Int32>]
    [-UseSSL]
    [-ApplicationName <String>]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [<CommonParameters>]

SSHHost

Enter-PSSession
    [-HostName] <String>
    [-Options <Hashtable>]
    [-Port <Int32>]
    [-UserName <String>]
    [-KeyFilePath <String>]
    [-Subsystem <String>]
    [-ConnectingTimeout <Int32>]
    [-SSHTransport]
    [<CommonParameters>]

Session

Enter-PSSession
    [[-Session] <PSSession>]
    [<CommonParameters>]

Uri

Enter-PSSession
    [[-ConnectionUri] <Uri>]
    [[-Credential] <PSCredential>]
    [-EnableNetworkAccess]
    [-ConfigurationName <String>]
    [-AllowRedirection]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [<CommonParameters>]

InstanceId

Enter-PSSession
    [-InstanceId <Guid>]
    [<CommonParameters>]

Id

Enter-PSSession
    [[-Id] <Int32>]
    [<CommonParameters>]

Name

Enter-PSSession
    [-Name <String>]
    [<CommonParameters>]

VMId

Enter-PSSession
    [-VMId] <Guid>
    [-Credential] <PSCredential>
    [-ConfigurationName <String>]
    [<CommonParameters>]

VMName

Enter-PSSession
    [-VMName] <String>
    [-Credential] <PSCredential>
    [-ConfigurationName <String>]
    [<CommonParameters>]

ContainerId

Enter-PSSession
    [-ContainerId] <String>
    [-ConfigurationName <String>]
    [-RunAsAdministrator]
    [<CommonParameters>]

Description

Enter-PSSession Cmdlet 會啟動具有單一遠端電腦的互動式會話。 在工作階段期間,您輸入的命令會在遠端電腦上執行,就如同您直接在遠端電腦上輸入一樣。 您一次只能有一個互動式會話。

一般而言,您可以使用 ComputerName 參數來指定遠端電腦的名稱。 不過,您也可以使用互動式會話的 New-PSSession Cmdlet 來建立的會話。 不過,您無法使用 Disconnect-PSSessionConnect-PSSessionReceive-PSSession Cmdlet 來中斷連線,或重新連線到互動式會話。

從 PowerShell 6.0 開始,如果本地電腦上有 SSH 可用,並且遠端電腦配置了 PowerShell SSH 終結點,則可以使用安全外殼 (SSH) 建立與遠端電腦的連接。 SSH 型 PowerShell 遠端工作階段的優點是其可跨多個平台運作(Windows、Linux、macOS)。 針對 SSH 型遠端,您可以使用設定 HostName 參數來指定遠端電腦和相關連線資訊。 如需如何設定PowerShell SSH 遠端的詳細資訊,請參閱透過SSH PowerShell 遠端處理。

若要結束互動式工作階段並從遠端電腦中斷連線,請使用 Exit-PSSession Cmdlet,或輸入 exit

範例

範例 1:啟動互動式會話

PS> Enter-PSSession
[localhost]: PS>

此命令會在本機電腦上啟動互動式會話。 命令提示字元會變更,表示您現在在不同的會話中執行命令。

您在新會話中輸入的命令會執行,結果會以文字的形式傳回預設會話。

範例 2:使用互動式會話

第一個命令會使用 Enter-PSSession Cmdlet,以遠端電腦 Server01 啟動互動式會話。 工作階段啟動時,命令提示字元會變更為包含計算機名稱。

第二個命令會取得 PowerShell 程式,並將輸出重新導向至 Process.txt 檔案。 命令會提交至遠端電腦,並將檔案儲存在遠端電腦上。

第三個命令會使用 Exit 關鍵詞來結束互動式作業階段並關閉連線。 第四個命令會確認 Process.txt 檔案位於遠端電腦上。 本機電腦上的 Get-ChildItem (“dir”) 命令找不到檔案。

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> dir C:\ps-test\Process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\Process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\Process.txt

此命令示範如何使用遠端電腦在互動式會話中工作。

範例 3:使用 Session 參數

PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>

這些命令會使用 Enter-PSSession 參數,在現有的 PowerShell 會話中執行互動式會話(PSSession)。

範例 4:啟動互動式會話,並指定埠和認證參數

PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>

此命令會啟動與 Server01 計算機的互動式作業階段。 它會使用 Port 參數來指定埠和 Credential 參數,以指定有權連線到遠端電腦之用戶的帳戶。

範例 5:停止互動式會話

PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>

此範例示範如何啟動和停止互動式會話。 第一個命令會使用 Enter-PSSession Cmdlet 來啟動與 Server01 計算機的互動式會話。

第二個命令會使用 Exit-PSSession Cmdlet 結束會話。 您也可以使用 Exit 關鍵詞結束互動式工作階段。 Exit-PSSessionExit 具有相同的效果。

範例 6:使用 SSH 啟動互動式工作階段

PS> Enter-PSSession -HostName UserA@LinuxServer01

此範例示範如何使用安全殼層 (SSH) 啟動互動式會話。 如果遠端電腦上的 SSH 設定為使用密碼,系統會提示您輸入密碼。 否則,您必須使用金鑰型使用者驗證。

範例 7:使用 SSH 搭配埠和使用者驗證金鑰來啟動互動式工作階段

PS> Enter-PSSession -HostName UserA@LinuxServer02:22 -KeyFilePath c:\sshkeys\userAKey_rsa

此範例示範如何使用SSH啟動互動式會話。 用戶名稱和 SSH 埠號碼會指定為 HostName 參數值的一部分。 KeyFilePath 參數會指定用來驗證遠端電腦上使用者之 RSA 金鑰的位置。

範例 8:使用 SSH 選項啟動互動式工作階段

$options = @{
    Port=22
    User = 'UserA'
    Host = 'LinuxServer02'
}
Enter-PSSession -KeyFilePath c:\sshkeys\userAKey_rsa -Options $options

此範例示範如何使用SSH啟動互動式會話。 Options 參數會採用值哈希表,這些值會當做選項傳遞至基礎 ssh 命令,該命令會建立與遠端系統的連線。

參數

-AllowRedirection

允許將此連線重新導向至替代的統一資源標識碼(URI)。 根據預設,不允許重新導向。

當您使用 ConnectionURI 參數時,遠端目的地可以傳回指示以重新導向至不同的 URI。 根據預設,PowerShell 不會重新導向連線,但您可以使用此參數來允許它重新導向連線。

您也可以變更 MaximumConnectionRedirectionCount 會話選項值,來限制重新導向連線的次數。 使用 Cmdlet 的 New-PSSessionOption 參數,或設定 預設變數的 $PSSessionOption 屬性。 預設值為 5。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

Uri
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ApplicationName

指定連線 URI 的應用程式名稱區段。 當您不使用命令中的 ConnectionURI 參數時,請使用此參數來指定應用程式名稱。

預設值是本機計算機上 $PSSessionApplicationName 喜好設定變數的值。 如果未定義此喜好設定變數,預設值為 WSMAN。 此值適用於大部分使用。 如需詳細資訊,請參閱 about_Preference_Variables

WinRM 服務會使用應用程式名稱來選取接聽程式來服務連線要求。 此參數的值應該符合遠端電腦上接聽程式 URLPrefix 屬性的值。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Authentication

指定用來驗證使用者認證的機制。 此參數可接受的值為:

  • 預設
  • 基本
  • Credssp
  • 摘要
  • Kerberos
  • 談判
  • 使用隱式憑證進行協商

預設值為 Default。

CredSSP 驗證僅適用於 Windows Vista、Windows Server 2008 和更新版本的 Windows作系統。

如需此參數值的詳細資訊,請參閱 AuthenticationMechanism 列舉

謹慎

認證安全性支援提供者(CredSSP)驗證的設計目的是將使用者的認證傳遞給遠端電腦進行認證,適用於需要在多個資源上進行驗證的命令,例如存取遠端網路共用。 此機制會增加遠端作業的安全性風險。 如果遠端電腦遭到入侵,傳遞給它的認證可用來控制網路會話。

參數屬性

類型:AuthenticationMechanism
預設值:None
接受的值:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
Uri
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-CertificateThumbprint

指定具有執行此動作許可權之用戶帳戶的數位公鑰憑證 (X509)。 輸入憑證的指紋。

憑證用於客戶端憑證型驗證。 它們只能對應至本機用戶帳戶;它們不適用於網域帳戶。

若要取得憑證,請使用PowerShell憑證: 磁碟驅動器中的 Get-ItemGet-ChildItem 命令。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
Uri
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ComputerName

指定計算機名稱。 此 Cmdlet 會啟動具有指定遠端電腦的互動式工作階段。 只輸入一個計算機名稱。 預設值為本機電腦。

輸入 NetBIOS 名稱、IP 位址或電腦的完整功能變數名稱。 您也可以使用管線將電腦名稱傳送至 Enter-PSSession

若要在 ComputerName 參數的值中使用 IP 位址,命令必須包含 Credential 參數。 此外,計算機必須針對 HTTPS 傳輸進行設定,或遠端電腦的 IP 位址必須包含在本機電腦上的 WinRM TrustedHosts 清單中。 如需將計算機名稱新增至 TrustedHosts 清單的指示,請參閱 about_Remote_Troubleshooting中的。

備註

在 Windows作系統上,若要將本機電腦包含在 ComputerName 參數的值中,您必須使用 [以系統管理員身分執行] 選項啟動 PowerShell。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False
別名:Cn

參數集

ComputerName
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-ConfigurationName

指定用於互動式工作階段的工作階段組態。

輸入工作階段組態的組態名稱或完整限定資源URI。 如果您只指定組態名稱,則前面會加上下列架構 URI:http://schemas.microsoft.com/powershell

搭配 SSH 使用時,這會指定要在目標上使用的子系統,如 sshd_config 中所定義。 SSH 的預設值是 powershell 子系統。

會話的會話組態位於遠端電腦上。 如果遠端電腦上沒有指定的工作階段組態,命令會失敗。

預設值是本機計算機上 $PSSessionConfigurationName 喜好設定變數的值。 如果未設定此喜好設定變數,則預設值為 Microsoft.PowerShell。 如需詳細資訊,請參閱 about_Preference_Variables

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
Uri
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
VMId
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
VMName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
ContainerId
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-ConnectingTimeout

指定允許初始 SSH 連線完成的毫秒時間量。 如果連線未在指定時間內完成,則會傳回錯誤。

此參數已在 PowerShell 7.2 中引進

參數屬性

類型:Int32
預設值:unlimited
支援萬用字元:False
不要顯示:False

參數集

SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ConnectionUri

指定 URI,定義工作階段的連接端點。 URI 必須完整限定。 此字串格式如下所示:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

預設值如下:

http://localhost:5985/WSMAN

如果您未指定 ConnectionURI,您可以使用 UseSSLComputerNamePortApplicationName 參數來指定 ConnectionURI 值。

URI 傳輸區段的有效值為 HTTP 和 HTTPS。 如果您使用傳輸區段指定連線 URI,但未指定埠,則會使用標準埠來建立會話:80 代表 HTTP,而 HTTPS 則為 443。 若要使用 PowerShell 遠端的預設埠,請對於 HTTP 指定埠 5985,或對於 HTTPS 指定埠 5986。

如果目的地計算機將連線重新導向至不同的 URI,除非您在命令中使用 AllowRedirection 參數,否則 PowerShell 會防止重新導向。

參數屬性

類型:Uri
預設值:None
支援萬用字元:False
不要顯示:False
別名:URI, CU

參數集

Uri
Position:1
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-ContainerId

指定容器的識別碼。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ContainerId
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Credential

指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。

輸入使用者名稱,例如 User01Domain01\User01,或輸入 Cmdlet 所產生的 Get-Credential 物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。

認證會儲存在 PSCredential 物件中,密碼會儲存為 secureString

備註

如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?

參數屬性

類型:PSCredential
預設值:Current user
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:1
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
Uri
Position:1
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
VMId
Position:1
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
VMName
Position:1
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-EnableNetworkAccess

指出此 Cmdlet 會將互動式安全性令牌新增至回送會話。 互動式令牌可讓您在從其他電腦取得數據的回送會話中執行命令。 例如,您可以在會話中執行命令,將 XML 檔案從遠端電腦複製到本機電腦。

回送會話是 來自相同電腦上的 PSSession。 若要建立回送工作階段,請省略 ComputerName 參數,或將其值設定為 。 (dot)、localhost 或本機計算機的名稱。

根據預設,會使用網路令牌來建立回送會話,而網路令牌可能無法提供足夠的許可權來向遠端計算機進行驗證。

EnableNetworkAccess 參數只在回送會話中有效。 如果您在遠端電腦上建立會話時,使用 EnableNetworkAccess,命令會成功,但會忽略 參數。

您也可以使用 Authentication 參數的 CredSSP 值,在回送會話中允許遠端訪問,此參數會將會話認證委派給其他計算機。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
Uri
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-HostName

指定安全殼層 (SSH) 型連線的電腦名稱。 這類似於 ComputerName 參數,不同之處在於遠端電腦的連線是使用 SSH 而不是 Windows WinRM。 此參數支援使用 user@hostname:port格式,將用戶名稱和/或埠指定為主機名參數值的一部分。 指定為主機名一部分的用戶名稱和/或埠,會優先於 -UserName-Port 參數。 這允許將多個計算機名稱傳遞至此參數,其中有些具有特定的用戶名稱和/或埠,而另一些則使用來自 -UserName-Port 參數的使用者名稱和/或埠。

此參數是在 PowerShell 6.0 中引進的。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SSHHost
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Id

指定現有工作階段的識別碼。 Enter-PSSession 會針對互動式會話使用指定的會話。

若要尋找會話的標識符,請使用 Get-PSSession Cmdlet。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

Id
Position:0
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-InstanceId

指定現有工作階段的實例識別碼。 Enter-PSSession 會針對互動式會話使用指定的會話。

實例標識碼是 GUID。 若要尋找會話的實例標識碼,請使用 Get-PSSession Cmdlet。 您也可以使用 SessionNameID 參數來指定現有的工作階段。 或者,您可以使用 ComputerName 參數來啟動暫存會話。

參數屬性

類型:Guid
預設值:None
支援萬用字元:False
不要顯示:False

參數集

InstanceId
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-KeyFilePath

指定安全殼層 (SSH) 用來驗證遠端電腦上的使用者金鑰檔案路徑。

SSH 可透過私人/公鑰執行使用者驗證,作為基本密碼驗證的替代方案。 如果遠端電腦已設定金鑰驗證,則可以使用此參數來提供識別使用者的密鑰。

此參數是在 PowerShell 6.0 中引進的。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False
別名:IdentityFilePath

參數集

SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Name

指定現有工作階段的易記名稱。 Enter-PSSession 會針對互動式會話使用指定的會話。

如果您指定的名稱符合一個以上的會話,命令就會失敗。 您也可以使用 SessionInstanceIDID 參數來指定現有的工作階段。 或者,您可以使用 ComputerName 參數來啟動暫存會話。

若要建立會話的易記名稱,請使用 Cmdlet 的 New-PSSession 參數。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

Name
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Options

指定連線到遠端 SSH 型工作階段時所使用的 SSH 選項哈希表。 可能的選項是 unix 型 ssh 命令版本所支援的任何值。

參數明確傳遞的任何值,都優先於 Options 哈希表中傳遞的值。 例如,使用 Port 參數會覆寫在 Port hashtable 中傳遞的任何 機碼/值組。

參數屬性

類型:Hashtable
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Port

指定遠端電腦上用於此命令的網路埠。

在 PowerShell 6.0 中,此參數包含在支援安全殼層 (SSH) 連線的 HostName 參數集中。

WinRM (ComputerName 參數集)

若要連線到遠端電腦,遠端計算機必須接聽連線所使用的埠。 默認埠為 5985,這是 HTTP 的 WinRM 連接埠,而 5986 是 HTTPS 的 WinRM 連接埠。

使用替代埠之前,您必須在遠端電腦上設定 WinRM 接聽程式,以在該埠接聽。 使用下列命令來設定接聽程式:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

除非您必須,否則請勿使用 Port 參數。 命令中的埠設定會套用至命令執行所在的所有計算機或會話。 替代埠設定可能會防止命令在所有計算機上執行。

SSH (HostName 參數集)

若要連線到遠端電腦,遠端計算機必須設定為 SSH 服務 (SSHD),而且必須接聽連線所使用的埠。 SSH 的預設埠為 22。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-RunAsAdministrator

表示 PSSession 以系統管理員身分執行。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

ContainerId
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Session

指定要用於互動式會話的PowerShell工作階段(PSSession)。 此參數會採用會話物件。 您也可以使用 NameInstanceIDID 參數來指定 PSSession

輸入包含會話物件的變數,或建立或取得會話物件的命令,例如 New-PSSessionGet-PSSession 命令。 您也可以使用管線將會話物件傳送至 Enter-PSSession。 您可以使用此參數,只提交一個 PSSession。 如果您輸入的變數包含多個 PSSession,此命令會失敗。

當您使用 Exit-PSSessionEXIT 關鍵詞時,互動式會話會結束,但您所建立的 PSSession 會保持開啟且可供使用。

參數屬性

類型:PSSession
預設值:None
支援萬用字元:False
不要顯示:False

參數集

Session
Position:0
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-SessionOption

設定工作階段的進階選項。 輸入 SessionOption 物件,例如您使用 New-PSSessionOption Cmdlet 建立的物件,或是鍵為工作階段選項名稱、值為工作階段選項值的哈希表。

如果設定選項,選項的預設值取決於 $PSSessionOption 喜好設定變數的值。 否則,預設值是由會話組態中設定的選項所建立。

會話選項值優先於 $PSSessionOption 喜好設定變數和會話組態中設定的會話預設值。 不過,它們不會優先於會話設定中設定的最大值、配額或限制。

如需工作階段選項的描述,包括預設值,請參閱 New-PSSessionOption。 如需 $PSSessionOption 喜好設定變數的相關信息,請參閱 about_Preference_Variables。 如需工作階段組態的詳細資訊,請參閱 about_Session_Configurations

參數屬性

類型:PSSessionOption
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
Uri
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-SSHTransport

指出遠端連線是使用安全殼層 (SSH) 建立的。

根據預設,PowerShell 會使用 Windows WinRM 連線到遠端電腦。 此參數會強制 PowerShell 使用 HostName 參數集來建立 SSH 型遠端連線。

此參數是在 PowerShell 6.0 中引進的。

參數屬性

類型:SwitchParameter
預設值:False
接受的值:true
支援萬用字元:False
不要顯示:False

參數集

SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Subsystem

指定用於新 PSSession的 SSH 子系統。

這會指定要在目標上使用的子系統,如sshd_config中所定義。 子系統會使用預先定義的參數啟動特定版本的 PowerShell。 如果遠端電腦上沒有指定的子系統,命令會失敗。

如果未使用此參數,則預設值為“powershell”子系統。

參數屬性

類型:String
預設值:Powershell
支援萬用字元:False
不要顯示:False

參數集

SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-UserName

指定用來在遠端電腦上建立工作階段之帳戶的用戶名稱。 使用者身份驗證方法將取決於在遠端計算機上配置安全外殼 (SSH) 的方式。

如果將 SSH 配置為基本密碼身份驗證,則系統將提示您輸入用戶密碼。

如果將 SSH 配置為基於金鑰的使用者身份驗證,則可以通過 KeyFilePath 參數提供金鑰檔案路徑,並且不會出現密碼提示。 請注意,如果用戶端使用者密鑰檔位於 SSH 已知位置,則基於密鑰的身份驗證不需要 KeyFilePath 參數,並且使用者身份驗證將根據使用者名自動進行。 如需詳細資訊,請參閱有關密鑰型使用者驗證的 SSH 檔。

這不是必要的參數。 如果未指定 UserName 參數,則當前登錄使用者名將用於連接。

此參數是在 PowerShell 6.0 中引進的。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SSHHost
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-UseSSL

指出此 Cmdlet 會使用安全套接字層 (SSL) 通訊協定來建立與遠端電腦的連線。 根據預設,不會使用 SSL。

WS-Management 會加密透過網路傳輸的所有PowerShell內容。 UseSSL 參數是額外的保護,可跨 HTTPS 連線傳送數據,而不是 HTTP 連線。

如果您使用此參數,但在用於命令的埠上無法使用 SSL,則命令會失敗。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

ComputerName
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-VMId

指定虛擬機的識別碼。

參數屬性

類型:Guid
預設值:None
支援萬用字元:False
不要顯示:False
別名:VMGuid

參數集

VMId
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-VMName

指定虛擬機的名稱。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

VMName
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

String

您可以使用管線將電腦名稱當做字串傳送至此 Cmdlet。

PSSession

您可以透過管線將會話物件傳送至此 CMDLET。

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

PowerShell 包含下列 Enter-PSSession的別名:

  • 所有平臺:
    • etsn

若要連線到遠端電腦,您必須是遠端電腦上的 Administrators 群組成員。 若要在本機計算機上啟動互動式會話,您必須使用 以系統管理員身分執行 選項來啟動 PowerShell。

當您使用 Enter-PSSession時,遠端電腦上的使用者配置檔會用於互動式會話。 遠端使用者設定檔中的命令,包括新增 PowerShell 模組和變更命令提示字元的命令,在顯示遠端提示字元之前執行。

Enter-PSSession 會針對互動式會話使用本機電腦上的UI文化特性設定。 若要尋找本機 UI 文化特性,請使用 $UICulture 自動變數。

Enter-PSSession 需要 Get-CommandOut-DefaultExit-PSSession Cmdlet。 如果這些 cmdlet 未包含在遠端電腦上的工作階段配置中,則命令 Enter-PSSession 將失敗。

不同於 Invoke-Command,它會先剖析並解譯命令,再將命令傳送至遠端計算機,Enter-PSSession 直接將命令傳送至遠端電腦,而不需要解譯。

如果您想要輸入的會話正忙於處理命令,則 PowerShell 回應 Enter-PSSession 命令之前可能會有延遲。 一旦會話可供使用,您就會連線。 若要取消 Enter-PSSession 命令,請按 CTRL+C

從 PowerShell 6.0 開始,包含 HostName 參數集。 它已新增,以根據安全殼層 (SSH) 提供 PowerShell 遠端功能。 在多個平臺 (Windows、Linux、macOS) 和 PowerShell 遠端處理上都支援 SSH 和 PowerShell 遠端處理,這些平臺會安裝並設定 PowerShell 和 SSH。 這與以前基於 WinRM 的僅 Windows 遠端處理不同,並且許多 WinRM 特定功能和限制不適用。 例如,目前不支援 WinRM 型配額、工作階段選項、自定義端點設定和中斷連線/重新連線功能。 如需如何設定PowerShell SSH 遠端的詳細資訊,請參閱透過SSH PowerShell 遠端處理。

在 PowerShell 7.1 之前,透過 SSH 進行遠端處理不支援第二躍點遠端會話。 這項功能僅限於使用 WinRM 的會話。 PowerShell 7.1 允許 Enter-PSSessionEnter-PSHostProcess 在任何互動式遠程會話內運作。

ssh 可執行檔會依下列順序從下列來源取得組態資料:

  1. 命令行選項
  2. 使用者的組態檔 (~/.ssh/config)
  3. 全系統組態檔 (/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>

參數明確傳遞的任何值,都優先於 Options 哈希表中傳遞的值。 如需 ssh_config 檔案的詳細資訊,請參閱 ssh_config(5)