使用 netsh advfirewall firewall,而不要使用 netsh 防火牆來控制 Windows 防火牆行為

本文說明如何使用 netsh advfirewall 防火牆內容,而不是使用 netsh firewall 內容來控制 Windows 防火牆行為。

原始產品版本:   Windows Server 2012 R2
原始 KB 編號:   947709

摘要

netsh advfirewall防火牆命令列內容可在 Windows Server 2012 R2 中使用。 此內容提供控制防火牆內容所提供之 Windows 防火牆行為的功能 netsh firewall

此內容也提供更精確控制防火牆規則的功能。 這些規則包括下列每個設定檔的設定:

  • 網域
  • 私人
  • 公開

netsh firewall在未來版本的 Windows 作業系統中,可能會取代命令列內容。 建議您使用 netsh advfirewall 防火牆內容來控制防火牆行為。

重要

如果您是管理員群組的成員,且已在電腦上啟用使用者帳戶控制,請從具有提升許可權的命令提示字元中執行命令。 若要以較高的許可權啟動命令提示字元,請找到您用來啟動命令提示字元會話的圖示或「開始」功能表項目目,然後以滑鼠右鍵按一下它,然後按一下 [以 系統管理員身分執行]。

下表提供一些經常使用之命令的範例。 您可以使用這些範例,協助您從舊版內容遷移 netsh firewall 至新的 netsh advfirewall 防火牆內容。

此外,也 netsh advfirewall 提供了您可以用來取得詳細的內嵌説明的命令。

命令範例1:啟用程式

舊命令 新增命令
netsh firewall add allowedprogram C:\MyApp\MyApp.exe "My Application" ENABLE netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=Domain netsh advfirewall firewall add rule name="My Application" dir=in action=allow program= "C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=ALL 執行下列命令:
netsh advfirewall firewall add rule name="My Application" dir=in action=allow program= "C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain
netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=private

如需如何新增防火牆規則的相關資訊,請執行下列命令:

netsh advfirewall firewall add rule ?

命令範例2:啟用埠

舊命令 新增命令
netsh firewall add portopening TCP 80 "Open Port 80" netsh advfirewall firewall add rule name= "Open Port 80" dir=in action=allow protocol=TCP localport=80

如需如何新增防火牆規則的相關資訊,請執行下列命令:

netsh advfirewall firewall add rule ?

命令範例3:刪除已啟用的程式或埠

舊命令 新增命令
netsh firewall delete allowedprogram C:\MyApp\MyApp.exe netsh advfirewall firewall delete rule name= rule name program="C:\MyApp\MyApp.exe"
delete portopening protocol=UDP port=500 netsh advfirewall firewall delete rule name= rule name protocol=udp localport=500

如需如何刪除防火牆規則的相關資訊,請執行下列命令:

netsh advfirewall firewall delete rule ?

命令範例4:設定 ICMP 設定

舊命令 新增命令
netsh firewall set icmpsetting 8 netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
netsh firewall set icmpsetting type=ALL mode=enable netsh advfirewall firewall add rule name= "All ICMP V4" protocol=icmpv4:any,any dir=in action=allow
netsh firewall set icmpsetting 13 disable all netsh advfirewall firewall add rule name="Block Type 13 ICMP V4" protocol=icmpv4:13,any dir=in action=block

如需如何設定 ICMP 設定的詳細資訊,請執行下列命令:

netsh advfirewall firewall add rule ?

命令範例5:設定記錄

舊命令 新增命令
netsh firewall set logging %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 ENABLE ENABLE 執行下列命令:
netsh advfirewall set currentprofile logging filename %systemroot%\system32\LogFiles\Firewall\pfirewall.log
netsh advfirewall set currentprofile logging maxfilesize 4096
netsh advfirewall set currentprofile logging droppedconnections enable
netsh advfirewall set currentprofile logging allowedconnections enable

如需詳細資訊,請執行下列命令:

netsh advfirewall set currentprofile ?

如果您想要設定特定設定檔的記錄,請使用下列其中一個選項,而不是 currentprofile 選項:

  • Domainprofile
  • Privateprofile
  • Publicprofile

命令範例6:啟用 Windows 防火牆

舊命令 新增命令
netsh firewall set opmode ENABLE netsh advfirewall set currentprofile state on
netsh firewall set opmode mode=ENABLE exceptions=enable 執行下列命令:
Netsh advfirewall set currentprofile state on
netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
netsh firewall set opmode mode=enable exceptions=disable profile=domain 執行下列命令:
Netsh advfirewall set domainprofile state on
netsh advfirewall set domainprofile firewallpolicy blockinbound,allowoutbound
netsh firewall set opmode mode=enable profile=ALL 執行下列命令:
netsh advfirewall set domainprofile state on
netsh advfirewall set privateprofile state on

如需詳細資訊,請執行下列命令:

netsh advfirewall set currentprofile ?

如果您想要設定特定設定檔的防火牆狀態,請使用下列其中一個選項,而不是 currentprofile 選項:

  • Domainprofile
  • Privateprofile
  • Publicprofile

命令範例7:還原原則預設值

舊命令 新增命令
netsh firewall reset netsh advfirewall reset

如需詳細資訊,請執行下列命令:

netsh advfirewall reset ?

命令範例8:啟用特定服務

舊命令 新增命令
netsh firewall set service FileAndPrint netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
netsh firewall set service RemoteDesktop enable netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
netsh firewall set service RemoteDesktop enable profile=ALL 執行下列命令:

netsh advfirewall firewall set rule group="remote desktop" new enable=Yes profile=domain

netsh advfirewall firewall set rule group="remote desktop" new enable=Yes profile=private