Enable-PSRemoting
設定電腦以接收遠端命令。
語法
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdlet 會將 Enable-PSRemoting
電腦設定為接收使用 WS-Management 技術傳送的 PowerShell 遠端命令。
Windows Server 2012 預設會啟用 PowerShell 遠端功能。 您可以使用 Enable-PSRemoting
在其他支援的 Windows 版本上啟用 PowerShell 遠端功能,並在 Windows Server 2012 停用時重新啟用遠端功能。
您只需要在接收命令的每部電腦上執行此命令一次。 您不需要在只傳送命令的電腦上執行它。 因為組態會啟動接聽程式,所以請謹慎執行它,只在需要時執行它。
從 PowerShell 3.0 開始,當電腦位於公用網路上時, Enable-PSRemoting
Cmdlet 可以在 Windows 的用戶端版本上啟用 PowerShell 遠端功能。 如需詳細資訊,請參閱 SkipNetworkProfileCheck 參數的描述。
Cmdlet Enable-PSRemoting
會執行下列作業:
- 執行 Set-WSManQuickConfig Cmdlet,其會執行下列工作:
- 啟動 WinRM 服務。
- 將 WinRM 服務上的啟動類型設為 [自動]。
- 建立接聽程式,以接受有關任何 IP 位址的要求。
- 針對 WS-Management 通訊啟用防火牆例外。
- 如果尚未註冊Microsoft.PowerShell 和 Microsoft.PowerShell.Workflow 會話設定,則註冊它們。
- 如果尚未註冊,請在64位電腦上註冊 Microsoft.PowerShell32 會話組態。
- 啟用所有工作階段設定。
- 變更所有工作階段設定的安全性描述元,以允許遠端存取。
- 重新啟動 WinRM 服務,讓前述變更生效。
若要在 Windows 平台上執行此 Cmdlet,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 這不適用於Linux或MacOS版本的PowerShell。
警告
在同時具有 PowerShell 3.0 和 PowerShell 2.0 的系統上,請勿使用 PowerShell 2.0 來執行 Enable-PSRemoting
和 Disable-PSRemoting
Cmdlet。 命令可能會成功,但遠端功能未正確設定。 遠端命令和稍後嘗試啟用和停用遠端,可能會失敗。
範例
範例 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 作業系統的伺服器版本,默認允許從相同本機子網中的公用網路進行遠端訪問。
Set-NetFirewallRule
NetSecurity 模組中的 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
則不論此參數的值為何,都重新啟用它。
若要移除本機子網限制,並啟用來自公用網路上所有位置的遠端訪問,請使用 Set-NetFirewallRule
NetSecurity 模組中的 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
為 WS-Management 通訊建立下列防火牆例外狀況。
在 Windows 作業系統的伺服器版本上, Enable-PSRemoting
為允許遠端訪問的私人和網域網路建立防火牆規則,併為公用網路建立防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。
在 Windows 作業系統的用戶端版本上, Enable-PSRemoting
在 PowerShell 3.0 中,為允許不受限制的遠端訪問的私人和網域網路建立防火牆規則。 若要為允許從相同本機子網進行遠端訪問的公用網路建立防火牆規則,請使用 SkipNetworkProfileCheck 參數。
在 Windows 作業系統的用戶端或伺服器版本上,若要為公用網路建立防火牆規則,以移除本機子網限制並允許遠端訪問,請使用 Set-NetFirewallRule
NetSecurity 模組中的 Cmdlet 來執行下列命令: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
在 PowerShell 2.0 中, Enable-PSRemoting
為 WS-Management 通訊建立下列防火牆例外狀況。
在 Windows 作業系統的伺服器版本上,它會為所有允許遠端訪問的網路建立防火牆規則。
在 Windows 作業系統的用戶端版本上, Enable-PSRemoting
PowerShell 2.0 只會針對網域和專用網位置建立防火牆例外狀況。 若要將安全性風險降到最低, Enable-PSRemoting
請勿在用戶端版本的 Windows 上建立公用網路的防火牆規則。 當目前的網路位置為公用時, Enable-PSRemoting
會傳回下列訊息:無法檢查防火牆的狀態。
從 PowerShell 3.0 開始,將所有工作階段組態的 Enabled 屬性值設定為 $True
,Enable-PSRemoting
以啟用所有工作階段組態。
在 PowerShell 2.0 中, Enable-PSRemoting
從會話設定的安全性描述項中移除 Deny_All 設定。 在 PowerShell 3.0 中, Enable-PSRemoting
移除 Deny_All 和 Network_Deny_All 設定。 這可讓您遠端訪問保留供本機使用的會話組態。