about_Remote_Requirements

適用於: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

主題

about_Remote_Requirements

簡短描述

描述在 Windows PowerShell® 執行遠端命令的系統需求和組態需求。

詳細描述

本主題描述在 Windows PowerShell 建立遠端連線和執行遠端命令的系統需求、使用者需求和資源需求。它也提供設定遠端作業的指示。

注意:許多 Cmdlet (包括 Get-Service、Get-Process、Get-WMIObject、Get-EventLog 和 Get-WinEvent Cmdlet) 都會從遠端電腦取得物件,方法是使用 Microsoft .NET Framework 方法來擷取物件。它們不會使用 Windows PowerShell 遠端基礎結構。這份文件中的需求並不適用於這些 Cmdlet。若要尋找具有 ComputerName 參數的 Cmdlet,但不使用 Windows PowerShell 遠端,請參閱該 Cmdlet 之 ComputerName 參數的描述。

系統需求

若要在 Windows PowerShell 3.0 執行遠端工作階段,則本機和遠端電腦必須具有下列項目:

  • -- Windows PowerShell 3.0 或更新版本

  • -- Microsoft .NET Framework 4.0 或更新版本

  • -- Windows 遠端管理 3.0

若要在 Windows PowerShell 2.0 執行遠端工作階段,則本機和遠端電腦必須具有下列項目:

  • -- Windows PowerShell 2.0 或更新版本

  • -- Microsoft .NET Framework 2.0 或更新版本

  • -- Windows 遠端管理 2.0

您也可以在執行 Windows PowerShell 2.0 和 Windows PowerShell 3.0 的電腦之間建立遠端工作階段。不過,只能在 Windows PowerShell 3.0 執行的功能,例如中斷並重新連線到工作階段的功能,只當兩部電腦都執行 Windows PowerShell 3.0 時才能使用。

若要尋找已安裝 Windows PowerShell 版本的版本號碼,請使用 $PSVersionTable 自動變數。

Windows 遠端管理 (WinRM) 3.0 和 Microsoft.NET Framework 4.0 都包含在 Windows 8、Windows Server 2012 和較新版本的 Windows 作業系統。在較舊的作業系統中,WinRM 3.0 包含在 Windows Management Framework 3.0。如果電腦沒有必要的 WinRM 或 Microsoft .NET Framework 版本,安裝便會失敗。

使用者權限

若要建立遠端工作階段和執行遠端命令,根據預設,目前使用者必須是遠端電腦上的 Administrators 群組的成員,或者要提供系統管理員的認證。否則命令會失敗。

在遠端電腦上 (或在本機電腦上的遠端工作階段) 建立工作階段和執行命令所需的權限,是由此工作階段連線之遠端電腦上的工作階段組態 (也稱為「端點」) 所設定。具體而言,工作階段組態的安全性描述元會決定誰可以存取工作階段組態,以及誰可以使用它來連線。

預設工作階段組態上的安全性描述元 Microsoft.PowerShell、Microsoft.PowerShell32 和 Microsoft.PowerShell.Workflow,只允許系統管理員群組的成員存取。

如果目前使用者沒有使用工作階段組態的權限,要執行命令 (這會使用暫時的工作階段) 或在遠端電腦上建立永續性工作階段的命令將會失敗。使用者可以使用會建立工作階段之 Cmdlet 的 ConfigurationName 參數,以選取不同的工作階段組態 (如果有的話)。

Administrators 群組的成員可以判斷誰具有遠端連線到電腦的權限,方法是變更預設工作階段組態的安全性描述元,和以不同安全性描述元建立新的工作階段組態。

如需工作階段組態的詳細資訊,請參閱 about_Session_Configurations (https://go.microsoft.com/fwlink/?LinkID=145152)。

WINDOWS 網路位置

從 Windows PowerShell 3.0 開始,Enable-PSRemoting Cmdlet 可啟用 Windows 用戶端和伺服器版本的遠端服務,用於私人、網域及公用網路。

在使用私人和網域網路之伺服器版本的 Windows 上,Enable-PSRemoting Cmdlet 會建立允許未受限制遠端存取的防火牆規則。這會針對公用網路啟用防火牆規則,只允許從位於相同本機子網路的電腦進行遠端存取。在公用網路上,伺服器版本的 Windows 預設會啟用此本機子網路防火牆規則,但萬一它已遭變更或刪除,則 Enable-PSRemoting 會重新套用本規則。

在使用私人和網域網路之用戶端版本的 Windows 上,根據預設,Enable-PSRemoting Cmdlet 會建立允許未受限制遠端存取的防火牆規則。

若要在使用公用網路之用戶端版本的 Windows 上啟用遠端服務,請使用 Enable-PSRemoting Cmdlet 的 SkipNetworkProfileCheck 參數。它會建立防火牆規則,只允許從相同本機子網路中的電腦遠端存取。

若要移除公用網路上的本機子網路限制,並允許從 Windows 用戶端和伺服器版本上的所有位置遠端存取,請使用 NetSecurity 模組中的 Set-NetFirewallRule Cmdlet。執行下列命令:

        Set-NetFirewallRule –Name "WINRM-HTTP-In-TCP-PUBLIC" –RemoteAddress Any   

在 Windows PowerShell 2.0 中,Windows 伺服器版本的 Enable-PSRemoting 會建立防火牆規則,其允許在所有網路上遠端存取。

在 Windows PowerShell 2.0 中,Windows 用戶端版本的 Enable-PSRemoting 只會在私人和網域網路上建立防火牆規則。如果網路位置是公用的,Enable-PSRemoting 便會失敗。

以系統管理員身分執行

下列遠端作業需要系統管理員權限:

  • -- 建立對本機電腦的遠端連線。這通常稱為「回送」案例。

  • -- 管理本機電腦上的工作階段組態。

  • -- 檢視和變更本機電腦上的 WS 管理設定。這些是 WSMAN: 磁碟之 LocalHost 節點中的設定。

若要執行這些工作,您必須使用 [以系統管理員身分執行] 選項來啟動 Windows PowerShell,即使您是本機 Administrators 群組成員亦同。

在 Windows 7 和 Windows Server 2008 R2 中,請使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell。

  • 1.依序按一下 [開始]、[所有程式]、[附屬應用程式],然後按一下 Windows PowerShell 資料夾。

  • 2.以滑鼠右鍵按一下 Windows PowerShell,然後再按一下「以系統管理員身分執行」。

使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell:

  • 1.依序按一下 [開始]、[所有程式],然後按一下 Windows PowerShell 資料夾。

  • 2.以滑鼠右鍵按一下 Windows PowerShell,然後再按一下「以系統管理員身分執行」。

[以系統管理員身分執行] 選項在 Windows PowerShell 的其他 Windows 檔案總管項目中也可供使用,包括捷徑。只要以滑鼠右鍵按一下此項目,然後再按一下 [以系統管理員身分執行] 即可。

當您從其他程式啟動 Windows PowerShell,例如 Cmd.exe,請使用 [以系統管理員身分執行] 選項來啟動此程式。

如何設定電腦進行遠端處理

執行所有支援之 Windows 版本的電腦可建立遠端連線至 Windows PowerShell,並在其中執行遠端命令,而不需要任何設定。不過,若要接收連線,並允許使用者建立本機和遠端使用者管理 Windows PowerShell 工作階段 ("PSSessions"),以及在本機電腦上執行命令,您必須啟用電腦上的 Windows PowerShell 遠端。

Windows Server 2012 和 Windows server 更新的版本預設啟用 Windows PowerShell 遠端。如果設定已變更,您可以執行 Enable-PSRemoting Cmdlet 來還原預設設定。

在所有其他支援的 Windows 版本上,您必須執行 Enable-PSRemoting Cmdlet 以啟用 Windows PowerShell 遠端處理。

WinRM 服務支援 Windows PowerShell 遠端功能,這是管理 Web 服務 (WS-Management) 通訊協定的 Microsoft 實作。當您啟用 Windows PowerShell 遠端時,就會變更 WS-Management 的預設設定,和加入允許使用者連線到 WS-Management 的系統設定。

設定 Windows PowerShell 以接收遠端命令:

  • 1.使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell。

  • 2.在命令提示字元中輸入:Enable-PSRemoting

若要確認已正確設定遠端處理,請執行類似下列命令的測試命令,這會在本機電腦建立遠端工作階段。

          New-PSSession

如果已正確設定遠端處理,該命令就會在本機電腦上建立工作階段,並傳回代表工作階段的物件。該輸出應該類似下列的範例輸出:

          C:\PS> new-pssession

          Id Name        ComputerName    State    ConfigurationName
          -- ----        ------------    -----    -----
          1  Session1    localhost       Opened   Microsoft.PowerShell

如果此命令失敗,如需協助,請參閱 about_Remote_Troubleshooting。

了解原則

當您在遠端工作時,您會使用兩個 Windows PowerShell 執行個體,一個在本機電腦,而另一個在遠端電腦。如此一來,您的工作會受到本機和遠端電腦上的 Windows 原則和 Windows PowerShell 原則所影響。

一般而言,在連線之前,以及當您要建立連線時,在本機電腦上的原則才會生效。當您使用連線時,遠端電腦上的原則才會生效。

另請參閱

about_Remote

about_Remote_Variables

about_PSSessions

Invoke-Command

Enter-PSSession

New-PSSession