共用方式為


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.PowerShellMicrosoft.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。

輸出

String

此 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_AllNetwork_Deny_All 設定。 這可讓您遠端訪問保留供本機使用的會話組態。