啟動與遠端電腦之間的互動式工作階段。

語法

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-ItemGet-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

預設值

Current user

接受管線輸入?

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-PSSessionGet-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 的作用相同。






請參閱




目錄