Enter-PSSession
啟動與遠端電腦之間的互動式工作階段。
語法
Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>]
Enter-PSSession [[-Id] <int>] [<CommonParameters>]
Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>]
Enter-PSSession [-Name <string>] [<CommonParameters>]
Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>]
Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]
描述
Enter-PSSession Cmdlet 會啟動與單一遠端電腦之間的互動式工作階段。在工作階段期間,您所輸入的命令會在遠端電腦上執行,就好像是在遠端電腦上直接輸入命令一樣。您一次只能有一個互動式工作階段。
通常您會使用 ComputerName 參數指定遠端電腦名稱。但是,您也可以將透過 New-PSSession 所建立的工作階段用於互動式工作階段。
若要結束互動式工作階段並中斷與遠端電腦的連線,請使用 Exit-PSSession Cmdlet 或輸入 "exit"。
參數
-AllowRedirection
允許將這個連線重新導向至替代統一資源識別項 (URI)。
在使用 ConnectionURI 參數時,遠端目的地可能會傳回指示,以重新導向至不同的 URI。根據預設,Windows PowerShell 不會重新導向連線,但是您可以使用此參數允許它重新導向連線。
允許這個連線重新導向到其他 URI。
在使用 ConnectionURI 參數時,遠端目的地可能會傳回指示,以重新導向至不同的 URI。根據預設,Windows PowerShell 不會重新導向連線,但是您可以使用 AllowRedirection 參數允許它重新導向連線。
您也可以設定 $PSSessionOption 喜好設定變數的 MaximumConnectionRedirectionCount 屬性或 SessionOption 參數的 MaximumConnectionRedirectionCount 屬性值,藉此限制連線的重新導向次數。預設值為 5。如需詳細資訊,請參閱 SessionOption 參數的描述以及 New-PSSessionOption。
必要? |
false |
位置? |
named |
預設值 |
False |
接受管線輸入? |
false |
接受萬用字元? |
false |
-ApplicationName <string>
指定連線 URI 的應用程式名稱區段。當您沒有在命令中使用 ConnectionURI 參數時,可以使用此參數指定應用程式名稱。
預設值為本機電腦上的 $PSSessionApplicationName 喜好設定變數的值。如果沒有定義此喜好設定變數,則預設值為 WSMAN。這個值適合大部分使用情況。如需詳細資訊,請參閱 about_Preference_Variables。
WinRM 服務會使用應用程式名稱來選取要服務連線要求的接聽程式。這個參數的值必須符合遠端電腦上接聽程式的 URLPrefix 屬性值。
必要? |
false |
位置? |
named |
預設值 |
WSMAN |
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Authentication <AuthenticationMechanism>
指定用來驗證使用者認證的機制。有效值為 "Default"、"Basic"、"Credssp"、"Digest"、"Kerberos"、"Negotiate" 和 "NegotiateWithImplicitCredential"。預設值為 "Default"。
CredSSP 驗證僅適用於 Windows Vista、Windows Server 2008 和更新版的 Windows。
如需這個參數值的詳細資訊,請參閱 MSDN (Microsoft Developer Network) Library 中的 System.Management.Automation.Runspaces.AuthenticationMechanism 列舉說明,網址為:https://go.microsoft.com/fwlink/?LinkId=144382 (英文)。
警告:認證安全性服務提供者 (CredSSP) 驗證 (其中使用者的認證會傳送到遠端電腦) 是專為需要對一個以上的資源進行驗證的命令所設計,例如存取遠端網路共用。此機制會提高遠端操作的安全性風險。如果遠端電腦已經遭受危害,則傳遞給遠端電腦的認證可能會被用來控制網路工作階段。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-CertificateThumbprint <string>
對於具有執行此動作之權限的使用者帳戶,指定其數位公開金鑰憑證 (X509)。請輸入憑證的憑證指紋。
憑證係在進行用戶端憑證式驗證時使用。這些憑證只能對應到本機使用者帳戶,並不適用於網域帳戶。
若要取得憑證指紋,請在 Windows PowerShell 的 Cert: 磁碟機中使用 Get-Item 或 Get-ChildItem 命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ComputerName <string>
啟動與指定之遠端電腦間的互動式工作階段。請輸入一個電腦名稱即可。預設為本機電腦。
請輸入一部或多部遠端電腦的 NetBIOS 名稱、IP 位址或完整網域名稱。您也可以經由管道將電腦名稱輸出至 Enter-PSSession。
若要在 ComputerName 參數的值中使用 IP 位址,命令必須包含 Credential 參數。而且,該電腦必須設定成 HTTPS 傳輸,或者遠端電腦的 IP 位址必須包含在本機電腦的 WinRM TrustedHosts 清單中。如需將電腦名稱新增到 TrustedHosts 清單的指示,請參閱 about_Remote_Troubleshooting 中的<如何將電腦新增到信任的主機清單>。
注意:在 Windows Vista 和更新版的 Windows 中,若要在 ComputerName 參數值中包含本機電腦,您必須以 [以系統管理員身分執行] 選項啟動 Windows PowerShell。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByValue, ByPropertyName) |
接受萬用字元? |
false |
-ConfigurationName <string>
指定用於互動式工作階段的工作階段設定。
請輸入工作階段設定的設定名稱或完整資源 URI。如果只指定設定名稱,則會在其前面加上下列結構描述 URI:https://schemas.microsoft.com/powershell。
工作階段的工作階段設定是位於遠端電腦。如果遠端電腦上沒有指定的工作階段設定,則命令會失敗。
預設值為本機電腦上的 $PSSessionConfigurationName 喜好設定變數的值。如果沒有設定此喜好設定變數,則預設值為 Microsoft.PowerShell。如需詳細資訊,請參閱 about_Preference_Variables。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-ConnectionURI <Uri>
指定定義互動式工作階段之連線端點的統一資源識別項 (URI)。此 URI 必須是完整的 URI。
這個字串的格式如下所示:
<傳輸方式>://<電腦名稱>:<連接埠>/<應用程式名稱>
預設值如下所示:
http://localhost:80/WSMAN
URI 中傳輸方式區段的有效值為 HTTP 和 HTTPS。如果未指定 ConnectionURI,就必須使用 UseSSL、ComputerName、Port 和 ApplicationName 參數指定 URI 值。
如果目的電腦將連線重新導向到不同的 URI,那麼除非您在命令中使用 AllowRedirection 參數,否則 Windows PowerShell 不會重新導向連線。
必要? |
false |
位置? |
2 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Credential <PSCredential>
指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。
請輸入使用者名稱,例如 "User01"、"Domain01\User01" 或 "User@Domain.com",或是輸入 PSCredential 物件,例如 Get-Credential Cmdlet 傳回的物件。
當您輸入使用者名稱時,會提示您輸入密碼。
必要? |
false |
位置? |
named |
預設值 |
目前使用者 |
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Id <int>
指定現有工作階段的識別碼。Enter-PSSession 會將指定的工作階段用於互動式工作階段。
若要尋找工作階段的識別碼,請使用 Get-PSSession Cmdlet。
必要? |
false |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-InstanceId <Guid>
指定現有工作階段的執行個體識別碼。Enter-PSSession 會將指定的工作階段用於互動式工作階段。
執行個體識別碼是一種 GUID。若要尋找工作階段的執行個體識別碼,請使用 Get-PSSession Cmdlet。您也可以使用 Session、Name 或 ID 參數指定現有的工作階段。或者,使用 ComputerName 參數啟動暫存工作階段。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Name <string>
指定現有工作階段的好記名稱。Enter-PSSession 會將指定的工作階段用於互動式工作階段。
如果指定的名稱符合多個工作階段,命令會失敗。您也可以使用 Session、InstanceID 或 ID 參數指定現有的工作階段。或者,使用 ComputerName 參數啟動暫存工作階段。
若要建立好記的工作階段名稱,請使用 New-PSSession Cmdlet 的 Name 參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Port <int>
指定遠端電腦上要供此命令使用的網路連接埠。預設為連接埠 80 (HTTP 連接埠)。
使用其他連接埠之前,必須先於遠端電腦上設定 WinRM 接聽程式,以接聽該連接埠。請使用下列命令設定接聽程式:
1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<連接埠號碼>"}
除非必要,否則請勿使用 Port 參數。命令中的連接埠設定適用於執行命令的所有電腦或工作階段。其他連接埠設定可能會導致無法在所有電腦上執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Session <PSSession>
指定要用於互動式工作階段的 Windows PowerShell 的工作階段 (PSSession)。此參數會接受工作階段物件。您也可以使用 Name、InstanceID 或 ID 參數指定 PSSession。
請輸入包含工作階段物件的變數,或者輸入建立或取得工作階段物件的命令,例如 New-PSSession 或 Get-PSSession 命令。您也可以經由管道將工作階段物件輸出至 Enter-PSSession。指定此參數時,只能提交一個 PSSession。如果所輸入的變數包含多個 PSSession,命令會失敗。
使用 Exit-PSSession 或 EXIT 關鍵字即可結束互動式工作階段,但是所建立的 PSSession 仍然開啟且可供使用。
必要? |
false |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByValue, ByPropertyName) |
接受萬用字元? |
true |
-SessionOption <PSSessionOption>
設定工作階段的進階選項。請輸入使用 New-PSSessionOption Cmdlet 所建立的 SessionOption 物件。
如果有設定 $PSSessionOption 喜好設定變數的值,它會決定選項的預設值。否則,工作階段會使用系統預設值。
如需工作階段選項 (包括預設值) 的描述,請參閱 New-PSSessionOption。如需 $PSSessionOption 喜好設定變數的詳細資訊,請參閱 about_Preference_Variables。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-UseSSL
使用安全通訊端層 (SSL) 通訊協定建立與遠端電腦的連線。預設不會使用 SSL,
因為 WS-Management 會將所有透過網路傳輸的 Windows PowerShell 內容加密。使用 UseSSL 時,便會透過 HTTPS 連線 (而非 HTTP 連線) 傳送資料,提供多一層防護。
如果使用此參數,但是供命令使用的連接埠無法使用 SSL,則命令會失敗。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.String 或 System.Management.Automation.Runspaces.PSSession 您可經由管道將電腦名稱 (字串) 或工作階段物件輸出至 Enter-PSSession。 |
輸出 |
無 這個 Cmdlet 不會傳回任何輸出。 |
附註
-- 若要連線至遠端電腦,您必須是遠端電腦上 Administrators 群組的成員。
-- 在 Windows Vista 和更新版的 Windows 中,若要在本機電腦上啟動互動式工作階段,您必須以 [以系統管理員身分執行] 選項啟動 Windows PowerShell。
-- 使用 Enter-PSSession 時,您在遠端電腦上的使用者設定檔會用於互動式工作階段。執行此遠端使用者設定檔中的命令 (包括用來新增 Windows PowerShell 嵌入式管理單元及變更命令提示字元的命令) 之後,才會顯示遠端提示。
-- Enter-PSSession 會將本機電腦上的 UI 文化特性設定用於互動式工作階段。若要尋找本機 UI 文化特性,請使用 $UICulture 自動變數。
-- Enter-PSSession 需要 Get-Command、Out-Default 和 Exit-PSSession Cmdlet。如果遠端電腦上的工作階段設定不包含這些 Cmdlet,Enter-PSSession 命令會失敗。
-- 不像 Invoke-Command 先剖析及解譯命令,再將命令傳送至遠端電腦,Enter-PSSession 會直接將命令傳送至遠端電腦,而不進行解譯。
範例 1
C:\PS>Enter-PSSession
LocalHost\PS>
描述
-----------
這個命令會在本機電腦啟動互動式工作階段。命令提示字元會變更,指出您現在正在不同的工作階段中執行命令。
所輸入的命令會在新工作階段中執行,而且結果會以文字形式傳回至預設工作階段。
範例 2
C:\PS>enter-pssession -computer Server01
Server01\PS> get-process powershell > C:\ps-test\process.txt
Server01\PS> exit-pssession
C:\PS>
C:\PS> 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
描述
-----------
這個命令示範如何在互動式工作階段中與遠端電腦互動。
第一個命令會使用 Enter-PSSession Cmdlet,啟動與遠端電腦 Server01 之間的互動式工作階段。當工作階段啟動時,命令提示字元會變更為包含該電腦名稱。
第二個命令會取得 PowerShell 處理序,並將輸出重新導向至 Process.txt 檔案。從本機向遠端電腦提交此命令後,檔案便會儲存在遠端電腦上。
第三個命令會使用 Exit 關鍵字,結束互動式工作階段並關閉連線。
第四個命令可以確認 Process.txt 檔案是在遠端電腦。因為在本機電腦執行 Get-ChildItem ("dir") 命令會找不到此檔案。
範例 3
C:\PS>$s = new-pssession -computername Server01
C:\PS> Enter-PSSession -session $s
Server01\PS>
描述
-----------
這些命令會使用 Enter-PSSession 的 Session 參數,在現有 Windows PowerShell 工作階段 (PSSession) 中執行互動式工作階段。
範例 4
C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01
Server01\PS>
描述
-----------
這個命令會啟動與 Server01 電腦之間的互動式工作階段。它使用 Port 參數指定連接埠,並使用 Credential 參數指定具有連線至遠端電腦之權限的使用者帳戶。
範例 5
C:\PS>Enter-PSSession -computername Server01
Server01:\PS> Exit-PSSession
C:\PS>
描述
-----------
這個範例會示範如何啟動及停止互動式工作階段。第一個命令會使用 Enter-PSSession Cmdlet,啟動與 Server01 電腦之間的互動式工作階段。
第二個命令會使用 Exit-PSSession Cmdlet 結束工作階段。您也可以使用 Exit 關鍵字結束互動式工作階段。Exit-PSSession 和 Exit 的作用相同。
請參閱
概念
about_PSSessions
about_Remote
New-PSSession
Get-PSSession
Exit-PSSession
Remove-PSSession
Invoke-Command