Enable-PSRemoting
設定電腦以接收遠端命令。
語法
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Enable-PSRemoting
Cmdlet 會將電腦設定為接收使用 WS-Management 技術傳送的 PowerShell 遠端命令。
Windows Server 2012 和更新版本預設會啟用 PowerShell 遠端功能。 您可以使用 Enable-PSRemoting
在其他支援的 Windows 版本上啟用 PowerShell 遠端功能,並在遠端功能停用時重新啟用遠端功能。
您只需要在接收命令的每部電腦上執行此命令一次。 您不需要在只傳送命令的電腦上執行它。 因為組態會啟動接聽程式,所以請謹慎執行它,只在需要時執行它。
從 PowerShell 3.0 開始,當電腦位於公用網路上時,Enable-PSRemoting
Cmdlet 可以在 Windows 的用戶端版本上啟用 PowerShell 遠端功能。 如需詳細資訊,請參閱 skipNetworkProfileCheck 參數 的描述。
Enable-PSRemoting
Cmdlet 會執行下列作業:
- 執行 Set-WSManQuickConfig Cmdlet,其會執行下列工作:
- 啟動 WinRM 服務。
- 將 WinRM 服務上的啟動類型設定為 [自動]。
- 建立接聽程式以接受任何IP位址上的要求。
- 啟用 WS-Management 通訊的防火牆例外狀況。
- 如果尚未註冊 Microsoft.PowerShell,Microsoft.PowerShell.Workflow 會話組態。
- 如果尚未註冊,請在64位電腦上註冊 Microsoft.PowerShell32 工作階段設定。
- 啟用所有工作階段設定。
- 變更所有會話設定的安全性描述元,以允許遠端訪問。
- 重新啟動 WinRM 服務,讓上述變更生效。
若要在 Windows 平台上執行此 Cmdlet,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。
如需使用PowerShell遠端的詳細資訊,請參閱下列文章:
範例
範例 1:設定計算機以接收遠端命令
此命令會將電腦設定為接收遠端命令。
Enable-PSRemoting
範例 2:設定計算機以接收遠端命令,而不需確認提示
此命令會將電腦設定為接收遠端命令。 Force 參數會隱藏使用者提示。
Enable-PSRemoting -Force
範例 3:允許用戶端上的遠端訪問
此範例示範如何在 Windows作系統的用戶端版本上允許從公用網路進行遠端訪問。 不同版本的 Windows 防火牆規則名稱可能不同。
使用 Get-NetFirewallRule
查看規則清單。 啟用防火牆規則之前,請先檢視規則中的安全性設定,以確認設定適合您的環境。
Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name
Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
根據預設,Enable-PSRemoting
會建立允許從私人和網域網路進行遠端訪問的網路規則。 此命令會使用 SkipNetworkProfileCheck 參數,允許從相同本機子網中的公用網路進行遠端訪問。 命令會指定 Force 參數來隱藏確認訊息。
SkipNetworkProfileCheck 參數不會影響 Windows作系統的伺服器版本,默認允許從相同本機子網中的公用網路進行遠端訪問。
NetSecurity 模組中的 Set-NetFirewallRule
Cmdlet 會新增防火牆規則,允許從任何遠端位置從公用網路進行遠端訪問。 這包括不同子網中的位置。
注意
防火牆規則的名稱可能會根據 Windows 版本而有所不同。 使用 Get-NetFirewallRule
Cmdlet 列出系統上的規則名稱。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
強制命令執行,而不要求使用者確認。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SkipNetworkProfileCheck
指出當電腦位於公用網路上時,此 Cmdlet 會在 Windows作系統的用戶端版本上啟用遠端處理。 此參數會啟用公用網路的防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。
此參數不會影響 Windows作系統的伺服器版本,預設會有公用網路的本機子網防火牆規則。 如果伺服器版本上停用本機子網防火牆規則,Enable-PSRemoting
重新啟用它,不論此參數的值為何。
若要移除本機子網限制,並從公用網路上的所有位置啟用遠端訪問,請使用 NetSecurity 模組中的 Set-NetFirewallRule
Cmdlet。
此參數是在 PowerShell 3.0 中引進的。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回描述其結果的字串。
備註
從 PowerShell 3.0 開始,Enable-PSRemoting
將所有工作階段組態的 Enabled 屬性的值設定為 $True
來啟用所有工作階段組態。
在 Windows作系統的伺服器版本上,
Enable-PSRemoting
為允許遠端訪問的私人和網域網路建立防火牆規則,併為公用網路建立防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。在 Windows作系統的用戶端版本上,PowerShell 3.0 中的
Enable-PSRemoting
會為允許不受限制遠端訪問的私人和網域網路建立防火牆規則。 若要為允許從相同本機子網進行遠端訪問的公用網路建立防火牆規則,請使用 SkipNetworkProfileCheck 參數。在 Windows作系統的用戶端或伺服器版本上,若要建立公用網路的防火牆規則,以移除本機子網限制並允許遠端訪問,請使用 NetSecurity 模組中的
Set-NetFirewallRule
Cmdlet 來執行下列命令:Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Enable-PSRemoting
將所有會話組態的 Enabled 屬性的值設定為 $True
,以啟用所有工作階段組態。
Enable-PSRemoting
會移除 Deny_All 和 Network_Deny_All 設定。 這可讓您遠端訪問保留供本機使用的會話組態。