使用 netsh advfirewall 防火墙而不是 netsh 防火墙来控制 Windows 防火墙行为
本文介绍如何使用 netsh advfirewall
防火墙上下文而不是 netsh firewall
上下文来控制 Windows 防火墙行为。
原始 KB 数: 947709
总结
Windows netsh advfirewall
Server 2012 R2 中提供了防火墙命令行上下文。 此上下文提供用于控制防火墙上下文提供的 netsh firewall
Windows 防火墙行为的功能。
此上下文还提供更精确的防火墙规则控制功能。 这些规则包括以下按配置文件设置:
- Domain
- 私人
- 公用
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 |