Enable-PSRemoting
設定電腦以接收遠端命令。
語法
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Enable-PSRemoting Cmdlet 會設定電腦接收使用 WS-Management 技術傳送的 Windows PowerShell 遠端命令。
在 Windows Server 2012 上,預設會啟用 Windows PowerShell 遠端功能。 您可以使用 Enable-PSRemoting 在其他支援的 Windows 版本上啟用 Windows PowerShell 遠端功能,並在 Windows Server 2012 停用時重新啟用遠端功能。
您只需要在接收命令的每部電腦上執行此命令一次。 您不需要在只傳送命令的電腦上執行它。 因為組態會啟動接聽程式,所以請謹慎執行它,只在需要時執行它。
從 Windows PowerShell 3.0 開始,當電腦位於公用網路上時,Enable-PSRemoting Cmdlet 可以在 Windows 的用戶端版本上啟用 Windows PowerShell 遠端功能。
如需詳細資訊,請參閱 skipNetworkProfileCheck 參數
Enable-PSRemoting Cmdlet 會執行下列作業:
- 執行 Set-WSManQuickConfig Cmdlet,其會執行下列工作:
- 啟動 WinRM 服務。
- 將 WinRM 服務上的啟動類型設定為 [自動]。
- 建立接聽程式以接受任何IP位址上的要求。
- 啟用 WS-Management 通訊的防火牆例外狀況。
- 如果尚未註冊Microsoft.PowerShell 和 Microsoft.PowerShell.Workflow 會話設定,則註冊它們。
- 如果尚未註冊,請在64位電腦上註冊 Microsoft.PowerShell32 會話組態。
- 啟用所有工作階段設定。
- 變更所有會話設定的安全性描述元,以允許遠端訪問。
- 重新啟動 WinRM 服務,讓上述變更生效。
若要執行此 Cmdlet,請使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell。
謹慎
在同時具有 Windows PowerShell 3.0 和 Windows PowerShell 2.0 引擎的系統上,請勿使用 Windows PowerShell 2.0 來執行 Enable-PSRemoting 和 Disable-PSRemoting Cmdlet。 命令可能會成功,但遠端功能未正確設定。 遠端命令,以及稍後嘗試啟用和停用遠端,可能會失敗。
範例
範例 1:設定計算機以接收遠端命令
Enable-PSRemoting
此命令會將電腦設定為接收遠端命令。
範例 2:設定計算機以接收遠端命令,而不需確認提示
Enable-PSRemoting -Force
此命令會將電腦設定為接收遠端命令。 它會使用 Force 參數來隱藏使用者提示。
範例 3:允許用戶端上的遠端訪問
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
此範例示範如何在用戶端版本的 Windows 上允許從公用網路進行遠端訪問。 使用這些命令之前,請先分析安全性設定,並確認計算機網路將安全免於傷害。
第一個命令可在 Windows PowerShell 中啟用遠端處理。 根據預設,這會建立允許從私人和網域網路進行遠端訪問的網路規則。 此命令會使用 SkipNetworkProfileCheck 參數,允許從相同本機子網中的公用網路進行遠端訪問。 此命令會使用 Force 參數來隱藏確認訊息。
SkipNetworkProfileCheck 參數不會影響伺服器版本的 Windows,默認允許從相同本機子網中的公用網路進行遠端訪問。
第二個命令會排除子網限制。 此命令會使用 NetSecurity 模組中的 Set-NetFirewallRule Cmdlet 來新增防火牆規則,以允許從任何遠端位置從公用網路遠端訪問。 這包括不同子網中的位置。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
隱藏所有使用者提示。 根據預設,系統會提示您確認每個作業。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SkipNetworkProfileCheck
當計算機位於公用網路上時,可在用戶端版本的 Windows 上啟用遠端處理。 此參數會啟用公用網路的防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。
此參數不會影響 Windows 的伺服器版本,根據預設,其具有公用網路的本機子網防火牆規則。 如果在伺服器版本的 Windows 上停用本機子網防火牆規則,則不論此參數的值為何,Enable-PSRemoting 重新啟用它。
若要移除本機子網限制,並從公用網路上的所有位置啟用遠端訪問,請使用 NetSecurity 模組中的 Set-NetFirewallRule Cmdlet。
此參數是在 Windows PowerShell 3.0 中引進的。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將輸入傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回描述其結果的字串。
備註
在 Windows PowerShell 3.0 中,Enable-PSRemoting 會為 WS-Management 通訊建立下列防火牆例外狀況。
在 Windows 的伺服器上,Enable-PSRemoting 為允許遠端訪問的私人和網域網路建立防火牆規則,併為公用網路建立防火牆規則,只允許從相同本機子網的計算機進行遠端訪問。
在 Windows 的用戶端版本上,Windows PowerShell 3.0 中的 Enable-PSRemoting 會為允許不受限制遠端訪問的私人和網域網路建立防火牆規則。 若要為允許從相同本機子網進行遠端訪問的公用網路建立防火牆規則,請使用 SkipNetworkProfileCheck 參數。
在用戶端或伺服器版本的 Windows 上,若要為公用網路建立防火牆規則,以移除本機子網限制並允許遠端訪問,請使用 NetSecurity 模組中的 Set-NetFirewallRule Cmdlet 來執行下列命令:
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
在 Windows PowerShell 2.0 中,Enable-PSRemoting 會為 WS-Management 通訊建立下列防火牆例外狀況。
在 Windows 的伺服器版本上,它會為所有允許遠端訪問的網路建立防火牆規則。
在 Windows 的用戶端版本上,Enable-PSRemoting Windows PowerShell 2.0 只會針對網域和專用網位置建立防火牆例外狀況。 為了將安全性風險降到最低,Enable-PSRemoting 不會為 Windows 用戶端版本的公用網路建立防火牆規則。 當目前的網路位置為公用時,Enable-PSRemoting 傳回下列訊息:「無法檢查防火牆的狀態」。
從 Windows PowerShell 3.0 開始,Enable-PSRemoting 將所有會話組態的 Enabled 属性值設定為 True (WSMan:\<ComputerName>\Plugin\<SessionConfigurationName>\Enabled) 設定為 True ($true)。
在 Windows PowerShell 2.0 中,Enable-PSRemoting 會從會話設定的安全性描述元中移除Deny_All設定。 在 Windows PowerShell 3.0 中,Enable-PSRemoting 會移除Deny_All和Network_Deny_All設定,藉此提供保留供本機使用的會話組態遠程訪問。