about_Remote_Requirements
簡短描述
描述在 PowerShell 中執行遠端命令的系統需求和設定需求。
詳細描述
本主題描述在PowerShell中建立遠端連線及執行遠端命令的系統需求、使用者需求和資源需求。 它也提供設定遠端作業的指示。
注意
某些 Cmdlet 會從遠端電腦 RPC 連線或 WMI 工作階段取得物件,以進行遠端連線。 它們不會使用PowerShell遠端基礎結構。 本檔中的需求不適用於這些 Cmdlet。
若要尋找具有 ComputerName 參數但不使用 PowerShell 遠端的 Cmdlet,請閱讀 Cmdlet 的 ComputerName 參數描述。
系統需求
在 Windows 中,PowerShell 遠端處理使用 Windows 遠端管理 (WinRM),這是由 Windows Management Framework (WMF) 提供。 若要在 PowerShell 上執行遠端工作階段,本機和遠端電腦必須具有下列專案:
- Windows PowerShell 3.0 或更新版本
- Microsoft .NET Framework 4 或更高版本
- Windows 遠端管理 3.0 或更高版本
若要在 Windows PowerShell 2.0 上執行遠端工作階段,本機和遠端電腦必須具有下列專案:
- Windows PowerShell 2.0 或更新版本
- Microsoft .NET Framework 2.0 或更新版本
- Windows 遠端管理 2.0
若要完全支援,您應該使用 WMF 5.1。 如需 WMF 支援的詳細資訊,請參閱 Windows Management Framework (WMF) 。
您可以在執行 Windows PowerShell 2.0 的電腦與執行較新版本 PowerShell 的電腦之間建立遠端會話。 不過,只有在新版 PowerShell 上執行的功能,例如能夠中斷連線並重新連線到會話,只有在兩部計算機都執行 Windows PowerShell 3.0 和更新版本時才能使用。
若要尋找已安裝版本的 PowerShell 版本號碼,請使用 $PSVersionTable
自動變數。
PowerShell 7 和更新版本也支援透過 SSH 進行 PowerShell 遠端處理。 透過 SSH 的 PowerShell 遠端功能可讓您連線到任何執行 SSH 的 Windows、macOS 或 Linux 主機。 如需詳細資訊,請參閱 PowerShell透過SSH遠端處理。
使用者權限
若要建立遠端會話並執行遠端命令,根據預設,目前的用戶必須是遠端電腦上的 Administrators 群組成員,或提供系統管理員的認證。 否則,命令會失敗。
在遠端電腦上建立會話和執行命令所需的許可權是由會話組態所建立。 會話組態會定義遠端電腦上連線 端點 的組態選項。 具體來說,會話設定上的安全性描述元會決定誰可以存取會話設定,以及誰可以使用它進行連線。
默認會話設定Microsoft.PowerShell 和 Microsoft.PowerShell32 上的安全性描述項只允許存取 Administrators 群組的成員。
計算機上的 Administrators 群組成員可以藉由變更預設會話設定上的安全性描述元,或使用不同的安全性描述元建立新的會話設定,來判斷誰有權從遠端連線到計算機。 用戶可以使用 Cmdlet 的 *-PSSession
ConfigurationName 參數來連線到不同的端點。
如需工作階段設定的詳細資訊,請參閱 about_Session_Configurations。
Windows 網路位置
從 Windows PowerShell 3.0 開始, Enable-PSRemoting
Cmdlet 可以在用戶端和伺服器版本的 Windows 上啟用遠端功能。
在具有私人和網域網路的 Windows 伺服器上, Enable-PSRemoting
Cmdlet 會建立允許不受限制遠端訪問的防火牆規則。 它也會為公用網路建立防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。 此本機子網防火牆規則預設會在公用網路上的 Windows 伺服器版本上啟用,但如果 Enable-PSRemoting
規則已變更或刪除,則會重新套用規則。
在具有私人和網域網路的 Windows 用戶端版本上, Enable-PSRemoting
建立允許不受限制遠端訪問的防火牆規則。
若要在具有公用網路的 Windows 用戶端版本上啟用遠端功能,請使用 Cmdlet 的 Enable-PSRemoting
SkipNetworkProfileCheck 參數。 此選項會建立防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。
若要移除公用網路上的本機子網限制,並允許從用戶端和伺服器版本 Windows 的所有位置進行遠端訪問,請使用 Set-NetFirewallRule
NetSecurity 模組中的 Cmdlet。 執行下列命令:
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
注意
不同版本的 Windows 防火牆規則名稱可能不同。 使用 Get-NetFirewallRule
查看規則清單。 啟用防火牆規則之前,請先檢視規則中的安全性設定,以確認設定適合您的環境。
在 Windows PowerShell 2.0 的 Windows 伺服器上, Enable-PSRemoting
建立允許所有網路上遠端訪問的防火牆規則。
在 Windows PowerShell 2.0 的用戶端版本上, Enable-PSRemoting
只在私人和網域網路上建立防火牆規則。 如果網路位置是公用的,則 Enable-PSRemoting
失敗。
以系統管理員身分執行
下列遠端作業需要系統管理員權限:
- 建立與本機電腦的遠端連線。 這通常稱為「回送」案例。
- 管理本機電腦上的會話設定。
- 在本機計算機上檢視和變更 WS-Management 設定。 這些是 WSMAN: 磁碟驅動器之 LocalHost 節點中的設定。
即使您是本機電腦上的 Administrators 群組成員,您也必須使用 [以系統管理員身分執行] 選項啟動 PowerShell。
當您從其他程式啟動 Windows PowerShell 時 cmd.exe
,請使用 [ 以系統管理員 身分執行] 選項來啟動程式。
如何設定您的電腦進行遠端處理
執行任何支援的 Windows 版本的電腦可以在 PowerShell 中建立遠端連線,並在 PowerShell 中執行遠端命令,而不需要任何設定。 不過,若要接收遠端連線,您必須在計算機上啟用PowerShell遠端功能。
Windows Server 2012 和較新版本的 Windows Server 預設會啟用 PowerShell 遠端功能。 如果設定已變更,您可以執行 Enable-PSRemoting
Cmdlet 來還原預設設定。
根據預設,WinRM 服務支援 PowerShell 的遠端功能,這是管理 Web 服務 (WS-Management) 通訊協定的Microsoft實作。 當您啟用PowerShell遠端處理時,您可以變更WS-Management的預設設定,並新增系統設定,讓用戶連線到WS-Management。
若要設定 PowerShell 以接收遠端命令:
- 使用 [ 以系統管理員 身分執行] 選項啟動 PowerShell。
- 在命令提示字元中,輸入:
Enable-PSRemoting
若要確認遠端設定正確,請執行測試命令,例如下列命令,以在本機計算機上建立遠端會話。
New-PSSession
如果已正確設定遠端處理,命令會在本機計算機上建立會話,並傳回代表會話的物件。
Id Name ComputerName State ConfigurationName
-- ---- ------------ ----- -----
1 Session1 localhost Opened Microsoft.PowerShell
如果命令失敗,請參閱 about_Remote_Troubleshooting。
了解原則
當您從遠端工作時,您會使用兩個 PowerShell 實例,一個在本機電腦上,另一個在遠端電腦上。 因此,您的工作會受到本機和遠端電腦上的 Windows 和 PowerShell 原則影響。
線上之前,在建立連線時,本機計算機上的原則會生效。 當您使用連線時,遠端電腦上的原則會生效。